Ejemplo n.º 1
0
 public SheetsContent(SheetsSet sheetsSet)
 {
     _sheetsSet = sheetsSet;
      _album = sheetsSet.Album;
      _sheetsMarkSB = sheetsSet.SheetsMarkSB;
 }
Ejemplo n.º 2
0
 public SheetsContent(SheetsSet sheetsSet)
 {
     _sheetsSet    = sheetsSet;
     _album        = sheetsSet.Album;
     _sheetsMarkSB = sheetsSet.SheetsMarkSB;
 }
Ejemplo n.º 3
0
 // Сброс данных расчета панелей
 public void ResetData()
 {
     // Набор цветов используемых в альбоме.
     Inspector.Clear();
     _colors = null;
     _colorAreas = null;
     ObjectId _idLayerMarks = ObjectId.Null;
     _marksSB = null;
     _sheetsSet = null;
 }
Ejemplo n.º 4
0
        // Создание файла марки СБ и листов с панелями марок АР
        public void CreateSheetMarkSB(SheetsSet sheetSet, int count)
        {
            // Создание файла панели Марки СБ и создание в нем листов с панелями Марки АР
            _fileMarkSB = CreateFileMarkSB(_markSB, sheetSet.Album.AlbumDir, sheetSet.SheetTemplateFileMarkSB, count);

            // Создание листов Марок АР
            using (Database dbMarkSB = new Database(false, true))
            {
                //Database dbOrig = _markSB.IdBtr.Database;
                dbMarkSB.ReadDwgFile(_fileMarkSB, FileShare.ReadWrite, false, "");
                dbMarkSB.CloseInput(true);

                using (new AcadLib.WorkingDatabaseSwitcher(dbMarkSB))
                {
                    using (var t = dbMarkSB.TransactionManager.StartTransaction())
                    {
                        // Для нового режима работы - добавление описания панели
                        // Пока оно одинаковое для всех листов с одной маркой СБ
                        // Поэтому добавлю текст описания на первый лист, потом лист будет копироваться уже вместе с этим тестом.
                        //if (_markSB.Album.StartOptions.NewMode)
                        //{
                        var panelDesc = new PanelDescription(_markSB, dbMarkSB);
                        try
                        {
                            panelDesc.CreateDescription(t);
                        }
                        catch (Exception ex)
                        {
                            Logger.Log.Error(ex, "panelDesc.CreateDescription();");
                        }
                        //}

                        // Замена блока рамки
                        sheetSet?.Album?.AlbumInfo?.Frame?.ChangeBlockFrame(dbMarkSB, true);

                        // Копирование всех определений блоков марки АР в файл Марки СБ
                        CopyBtrMarksARToSheetMarkSB(dbMarkSB);

                        // Слои для заморозки на видовых экранах панелей (Окна, Размеры в форме и на фасаде)
                        // А так же включение и разморозка всех слоев.
                        List <ObjectId> layersToFreezeOnFacadeSheet;
                        List <ObjectId> layersToFreezeOnFormSheet;
                        GetLayersToFreezeOnSheetsPanel(dbMarkSB, out layersToFreezeOnFacadeSheet, out layersToFreezeOnFormSheet);

                        // Создание листов Марок АР
                        Point3d pt = Point3d.Origin;
                        foreach (var sheetMarkAR in _sheetsMarkAR)
                        {
                            sheetMarkAR.CreateLayout(dbMarkSB, pt, layersToFreezeOnFacadeSheet, layersToFreezeOnFormSheet);
                            // Точка для вставки следующего блока Марки АР
                            pt = new Point3d(pt.X + 15000, pt.Y, 0);
                        }
                        t.Commit();
                    }

                    ////// Удаление шаблона листа из фала Марки СБ
                    HostApplicationServices.WorkingDatabase = dbMarkSB;
                    LayoutManager lm = LayoutManager.Current;
                    //lm.CurrentLayout = _sheetsMarkAR[0].LayoutName;
                    //lm.CurrentLayout = Settings.Default.SheetTemplateLayoutNameForMarkAR;
                    lm.DeleteLayout(Settings.Default.SheetTemplateLayoutNameForMarkAR);
                }
                //HostApplicationServices.WorkingDatabase = dbOrig;
                dbMarkSB.SaveAs(_fileMarkSB, DwgVersion.Current);
            }
        }
Ejemplo n.º 5
0
        // Создание альбома панелей
        public void CreateAlbum()
        {
            ChangeJob.ChangeJobService.Init();

            // Пока не нужны XML панели для создания альбома.
            //if (StartOptions.NewMode)
            //{
            //   BasePanelsService = new BaseService();
            //   BasePanelsService.ReadPanelsFromBase();
            //}

            // Определение включен ли артикул подписи в плитке (по состоянию замороженности слоя - Артикул пдлитки)
            IsTileArticleOn = GetTileArticleState();

            // Подсчет общего кол плитки на альбом
            TotalTilesCalc = TileCalc.CalcAlbum(this);

            // Создание папки альбома панелей
            _sheetsSet = new SheetsSet(this);
            _sheetsSet.CreateAlbum();

            // Заполнение атрибутов марок покраски в блоках монтажек
            try
            {
                var libService = new PanelLibrary.PanelLibraryLoadService();
                libService.FillMarkPainting(this);
                this.LibLoadService = libService;
            }
            catch (System.Exception ex)
            {
                string errMsg = "Ошибка заполнения марок покраски в монтажки - libService.FillMarkPainting(_album);";
                this.Doc.Editor.WriteMessage($"\n{errMsg} - {ex.Message}");
                Logger.Log.Error(ex, errMsg);
            }

            //// Проверка новых панелей, которых нет в библиотеке
            //try
            //{
            //   PanelLibrarySaveService.CheckNewPanels();
            //}
            //catch (Exception ex)
            //{
            //   Logger.Log.Error(ex, "Не удалось проверить есть ли новые панели в чертеже фасада, которых нет в библиотеке.");
            //}

            // Если есть панели с изменениями - создание задания.
            try
            {
                ChangeJob.ChangeJobService.CreateJob(this);
            }
            catch (System.Exception ex)
            {
                Inspector.AddError($"Ошибка при создании Задания на Изменение марок покраски - {ex.Message}");
            }

            // Еспорт списка панелей в ексель.
            try
            {
                ExportToExcel.Export(this);
            }
            catch (System.Exception ex)
            {
                Logger.Log.Error(ex, "Не удалось экспортировать панели в Excel.");
            }

            // вставка итоговой таблицы по плитке
            try
            {
                TotalTileTable tableTileTotal = new TotalTileTable(this);
                tableTileTotal.InsertTableTotalTile();
            }
            catch (System.Exception ex)
            {
                Logger.Log.Error(ex, "Не удалось вставить итоговую таблицу плитки на альбом.");
            }
        }