예제 #1
0
        /// <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);
        }
예제 #2
0
        /// <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);
                }
            }
        }
예제 #3
0
        /// <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);
            }
        }