/// <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 (!string.IsNullOrEmpty(ds.AdditionalFile)) { AddTechNotes(ds.AdditionalFile, ds.DrawingsFormatName); } if (_sparkToolGroupNotes != null) { AddSparkToolGroupNotes(_sparkToolGroupNotes, ds.DrawingsFormatName); } if (sheet != null) { SetSheetNotes(sheet); } } }
/// <summary> /// Создает листы с картами инструмента /// </summary> /// <param name="ds"></param> private void CreateToolDrawings(DrawingsSetup ds) { _operationNumber = ds.OperationNumber; bool answer; ufs.Cam.IsSessionInitialized(out answer); if (!answer) { ufs.Cam.InitSession(); } if (ds.DrawingsType != 1) { throw new Exception("Ошибка вызова метода создания листа для типа " + ds.DrawingsType); } if (!ds.NxOperationGroups.Any()) { 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("Ошибка вызова метода создания листа. Выбраный объект не является операцией или группой"); // // // сначала получим все родительские выделенные группы операций // var ncGroups = groups // .Where(gr => // !groups.Any(g => // g.GetMembers().Contains(gr))); // // // если ни одна из групп операций не содержит выделенную операцию, добавим ее к группам // var taggedObjects = ncGroups // .Concat(operations // .Where(op => // !groups.Any(gr => gr.GetMembers().Contains(op))) // .Cast<TaggedObject>()); // // var operationGroups = taggedObjects // .Select(o => new NxOperationGroup(o, _additionalToolName)); var descriptionsService = new NxOperationDescriptionsService(); var descriptions = descriptionsService.GetDescriptions(ds.NxOperationGroups); AddDescriptionsToSheets(descriptions.ToList(), ds.DrawingsFormats); //ВНИМАНИЕ!!! Создаём КИ! }
/// <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 (!string.IsNullOrEmpty(ds.AdditionalFile)) { AddTechNotes(ds.AdditionalFile, ds.DrawingsFormatName); } if (sheet != null) { SetSheetNotes(sheet); } // Сразу обозначим кол-во листов эскизов SetFirstSheetNotes(sheet, ds.SheetNums); } }