/// <summary> /// Создает листы с картами инструмента /// </summary> /// <param name="ds"></param> private void CreateToolDrawings(DrawingsSetup ds) { _operationNumber = ds.OperationNumber; if (ds.DrawingsType != 1) { throw new Exception("Ошибка вызова метода создания листа для типа " + ds.DrawingsType); } if (ds.AdditionalTools == null) { throw new Exception("Не удалось получить выделенные объекты из навигатора операций!"); } var groups = ds.AdditionalTools.OfType <NCGroup>().ToList(); var operations = ds.AdditionalTools.OfType <Operation>().ToList(); if (!groups.Any() && !operations.Any()) { throw new Exception("Ошибка вызова метода создания листа. Выбраный объект не является операцией или группой"); } bool answer; ufs.Cam.IsSessionInitialized(out answer); if (!answer) { ufs.Cam.InitSession(); } var objects = groups.Cast <TaggedObject>().ToList(); // если ни одна из групп операций не содержит выделенную операцию, добавим ее к группам objects.AddRange(operations.Where(op => !groups.Any(gr => gr.GetMembers().Contains(op)))); var i = 0; IEnumerable <List <string[]> > descriptions = objects .Select(o => new List <TaggedObject> { o }) .Select(l => new NxOperationGroup(l, ds.AdditionalToolName)) .Select(op => op.GetOperationDescriptions(ref i)); foreach (var description in descriptions) { AddDescriptionsToSheets(description, ds.DrawingsFormats); } // //var group = new NxOperationGroup(ds.AdditionalTools.Tag, ds.AdditionalToolName); // var group = // new NxOperationGroup(ds.AdditionalTools, ds.AdditionalToolName); // // if(!group.NxOperations.Any()) // throw new Exception("Не узалось получить операции, содержащие инструменты!"); // // var operationDescriptions = @group.GetOperationDescriptions(); // if (operationDescriptions == null) // throw new Exception("Не удалось получить информацию ни об одном инструменте!"); // // AddDescriptionsToSheets(operationDescriptions, ds.DrawingsFormats); }
/// <summary> /// Создает листы с картами наладки /// </summary> /// <param name="ds"></param> public void CreateSetupDrawnings(DrawingsSetup ds) { _operationNumber = ds.OperationNumber; for (var i = 0; i < ds.SheetNums; i++) { var sheet = _currentSheetNumber == 0 ? CreateSheet(_part, ds.DrawingsFormats.FirstOrDefault(df => df.DrawingType == 2 && df.IsFirstSheet)) : CreateSheet(_part, ds.DrawingsFormats.FirstOrDefault(df => df.DrawingType == 2 && !df.IsFirstSheet)); if (sheet != null) { SetSheetNotes(sheet); } if (!string.IsNullOrEmpty(ds.AdditionalFile)) { AddTechNotes(ds.AdditionalFile, ds.DrawingsFormatName); } } }
/// <summary> /// Создает листы с картами эскизов /// </summary> /// <param name="ds"></param> public void CreateSketchDrawnings(DrawingsSetup ds) { _operationNumber = ds.OperationNumber; for (var i = 0; i < ds.SheetNums; i++) { var sheet = i == 0 ? CreateSheet(_part, ds.DrawingsFormats.FirstOrDefault(df => df.DrawingType == 3 && df.IsFirstSheet)) : CreateSheet(_part, ds.DrawingsFormats.FirstOrDefault(df => df.DrawingType == 3 && !df.IsFirstSheet)); if (sheet != null) { SetSheetNotes(sheet); } if (!string.IsNullOrEmpty(ds.AdditionalFile)) { AddTechNotes(ds.AdditionalFile, ds.DrawingsFormatName); } // Сразу обозначим кол-во листов эскизов SetFirstSheetNotes(sheet, ds.SheetNums); } }