Exemplo n.º 1
0
        /// <summary>
        /// Отчеты по всем точкам
        /// </summary>
        public void InsPointReportsAll()
        {
            var doc = Application.DocumentManager.MdiActiveDocument;

            if (doc == null)
            {
                return;
            }
            var db = doc.Database;

            using (doc.LockDocument())
            {
                var tables = new List <Entity>();
                foreach (var item in Points)
                {
                    var report = new InsPointReport(item, doc.Database);
                    report.CalcRows();
                    var table = report.Create();
                    tables.Add(table);
                }
                // вставка таблиц
                doc.Editor.Drag(tables, 150);
                PluginStatisticsHelper.AddStatistic();
            }
        }
Exemplo n.º 2
0
        public void AKR_AutoGenerateMountPlans()
        {
            doc = Application.DocumentManager.MdiActiveDocument;
            db  = doc.Database;
            ed  = doc.Editor;

            PluginStatisticsHelper.AddStatistic();

            // Проверка - не должно быть определено блоков монтажек в файле
            CheckFileHasAnyMountBlock();

            List <Workspace> wsList;
            List <Axis>      axisList;
            List <ObjectId>  elemList;
            RTree <object>   treeElementsInWs;

            // Определение блоков - раб областей, панелей, осей
            DefineBlocks(out wsList, out axisList, out elemList, out treeElementsInWs);

            // Распределение элементов по рабочим областям
            DefineElemInWS(ref wsList, treeElementsInWs);

            // Проверка уникальности рабочих областей
            CheckUniqueWS(wsList);

            // Создание блоков монтажных планов
            var idsMountFloorsBlRefs = CreateMountingPlanBlocks(wsList);

            // Создание сборок монтажек
            UtilsPlanBlocksTogether.AKR_CollectMountPlansTogether(idsMountFloorsBlRefs);
        }
Exemplo n.º 3
0
 private static void LogRestoreTabs(List <string> tabsRestore)
 {
     Task.Run(() =>
     {
         PluginStatisticsHelper.PluginStart("RestoreTabsOpen");
         Logger.Log.Info($"RestoreTabsOpen: {tabsRestore.JoinToString()}");
     });
 }
Exemplo n.º 4
0
 public static void StartLisp(string commandName, string file)
 {
     Logger.Log.StartLisp(commandName, file);
     PluginStatisticsHelper.PluginStart(new CommandStart(commandName, null)
     {
         Doc = file, Plugin = "Lisp"
     });
 }
Exemplo n.º 5
0
 private void SendStartAutocadStatistic()
 {
     try
     {
         PluginStatisticsHelper.StartAutoCAD();
     }
     catch (Exception ex)
     {
         ex.LogError();
     }
 }
Exemplo n.º 6
0
        public static void Insert([CanBeNull] IVisualBlock block, bool explode = false)
        {
            if (block == null)
            {
                return;
            }
            var doc = Application.DocumentManager.MdiActiveDocument;
            var db  = doc.Database;

            GetInsertBtr(block.Name, block.File, db);
            BlockInsert.Insert(block.Name, _layer, explode);
            PluginStatisticsHelper.PluginStart(new CommandStart($"Вставка блока {block.Name}", Assembly.GetCallingAssembly()));
        }
Exemplo n.º 7
0
        /// <summary>
        /// Отчет по точке - вставка таблицы отчета
        /// </summary>
        public void InsPointReport()
        {
            var doc = Application.DocumentManager.MdiActiveDocument;

            if (doc == null)
            {
                return;
            }
            using (doc.LockDocument())
            {
                var report = new InsPointReport(this, doc.Database);
                report.CalcRows();
                var table = report.Create();
                report.Insert(table, doc);
                PluginStatisticsHelper.AddStatistic();
            }
        }
Exemplo n.º 8
0
 /// <summary>
 /// Добавление новой площадки
 /// </summary>
 private void InsAddPlaceExecute()
 {
     try
     {
         var selPlace = new SelectPlace();
         var placeId  = selPlace.Select();
         if (!placeId.IsValidEx())
         {
             return;
         }
         var place = Place.AddPlace(placeId);
         if (place != null)
         {
             place.IsVisualPlaceOn = true;
         }
         // Запись статистики
         PluginStatisticsHelper.AddStatistic();
     }
     catch (Exception ex)
     {
         InsService.ShowMessage(ex, "Ошибка");
     }
 }
Exemplo n.º 9
0
 private void InsAddPointExecute()
 {
     try
     {
         // Выбор точки на чертеже и задание параметров окна
         var      selPt = new SelectPoint();
         InsPoint p     = selPt.SelectNewPoint(Tree.Model);
         if (p != null)
         {
             // Расчет и добавление точки
             Tree.AddPoint(p);
             // Включение зон инсоляции точки
             p.IsVisualIllumsOn = true;
             // Сохранение точки
             p.SaveInsPoint();
             // Запись статистики
             PluginStatisticsHelper.AddStatistic();
         }
     }
     catch (Exception ex)
     {
         InsService.ShowMessage(ex, "Ошибка");
     }
 }
Exemplo n.º 10
0
        private void InsAddFrontExecute()
        {
            // Выбор области на чертеже
            var       selectGroup = new SelectGroup(Front.Model.Doc);
            Extents3d selReg;

            try
            {
                selReg = selectGroup.Select();
            }
            catch
            {
                return;
            }

            // Проверка, что в указанной области есть свободные дома
            if (!Front.Model.Map.Houses.GetHousesInExtents(selReg).Any(h => h.FrontGroup == null))
            {
                // В области новой группы не должно быть домов из других групп
                InsService.ShowMessage($"В выбранной области нет домов не входящих в другие группы.", System.Windows.MessageBoxImage.Error);
                return;
            }

            // Создание группы фронтонов
            try
            {
                var frontGroup = FrontGroup.New(selReg, Front);
                Front.AddGroup(frontGroup);
                // Запись статистики
                PluginStatisticsHelper.AddStatistic();
            }
            catch (Exception ex)
            {
                InsService.ShowMessage(ex, "Ошибка при создании группы фронтонов.");
            }
        }
Exemplo n.º 11
0
 /// <summary>
 /// Рисование визуализации в чертеже
 /// </summary>
 private void InsFrontDrawVisuals()
 {
     Front.DrawVisuals();
     PluginStatisticsHelper.AddStatistic();
 }
Exemplo n.º 12
0
 /// <summary>
 /// Рисование визуализации в чертеже
 /// </summary>
 private void InsTreesDrawVisuals()
 {
     Tree.DrawVisuals();
     PluginStatisticsHelper.AddStatistic();
 }
        public static void AKR_CollectMountPlansTogether(IEnumerable <ObjectId> ids = null)
        {
            Document doc = Application.DocumentManager.MdiActiveDocument;
            Database db  = doc.Database;
            Editor   ed  = doc.Editor;

            // Выбор блоков
            if (ids == null)
            {
                ids = ed.SelectBlRefs("\nВыбор блоков:").ToArray();
                PluginStatisticsHelper.AddStatistic();
            }
            //// Точка соединения всех блоков (точка вставки).
            //var ptInsert = ed.GetPointWCS("\nТочка вставки:");

            using (var t = db.TransactionManager.StartTransaction())
            {
                var cs = db.CurrentSpaceId.GetObject(OpenMode.ForWrite) as BlockTableRecord;
                var mountBlRefsBySections = new List <FloorMounting>();
                AcadLib.Layers.LayerExt.CheckLayerState(SymbolUtilityServices.LayerZeroName);
                foreach (var idBlRef in ids)
                {
                    if (!idBlRef.IsValidEx())
                    {
                        continue;
                    }
                    var blRef = idBlRef.GetObject(OpenMode.ForRead, false, true) as BlockReference;
                    if (blRef == null)
                    {
                        continue;
                    }
                    if (blRef.Name.StartsWith(Settings.Default.BlockPlaneMountingPrefixName))
                    {
                        var floorMount = new FloorMounting(blRef, null);
                        floorMount.DefineStorey(null);
                        mountBlRefsBySections.Add(floorMount);
                    }
                }

                // Группировка монтажных планов по x
                var idsBlRefMount      = new List <ObjectId>();
                var groupMountPlansByX = mountBlRefsBySections.GroupBy(g => g.PosBlMounting.X, new AcadLib.Comparers.DoubleEqualityComparer(30000));
                var pt = Point3d.Origin;
                foreach (var mountsByX in groupMountPlansByX)
                {
                    foreach (var mount in mountsByX)
                    {
                        // вставка нового вхождения этого блока
                        var blRefNew = new BlockReference(pt, mount.IdBtrMounting);
                        blRefNew.Layer = SymbolUtilityServices.LayerZeroName;
                        cs.AppendEntity(blRefNew);
                        t.AddNewlyCreatedDBObject(blRefNew, true);
                        idsBlRefMount.Add(blRefNew.Id);
                    }
                    pt = new Point3d(pt.X + mountsByX.Max(m => m.Extents.Diagonal()) + 50000, pt.Y, pt.Z);
                }
                ed.Drag(idsBlRefMount.ToArray(), Point3d.Origin);

                t.Commit();
            }
        }
Exemplo n.º 14
0
        public void Initialize()
        {
#if DEBUG
            // Отключение отладочных сообщений биндинга (тормозит сильно)
            PresentationTraceSources.DataBindingSource.Switch.Level = SourceLevels.Off;
#endif
            try
            {
                AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve;
                Logger.Log.Info("start Initialize AcadLib");
                StatusBarEx.AddPaneUserGroup();
                PluginStatisticsHelper.StartAutoCAD();
                if (PikSettings.IsDisabledSettings)
                {
                    Logger.Log.Info("Настройки отключены (PikSettings.IsDisabledSettings) - загрузка прервана.");
                    return;
                }

                Notify.SetScreenSettings(new NotifyOptions(with: 400));

                CheckUpdates.Start();
                if (Settings.Default.UpgradeRequired)
                {
                    Settings.Default.Upgrade();
                    Settings.Default.UpgradeRequired = false;
                    Settings.Default.Save();
                }

                PaletteSetCommands.Init();
                AllCommandsCommon();

                // Автослоиtest
                AutoLayersService.Init();

                // Загрузка сборок из папки ../Script/Net - без вложенных папок
                LoadService.LoadFromFolder(Path.Combine(PikSettings.LocalSettingsFolder, @"Script\NET"), 1);

                // Обработка чертежей
                DocAuto.Start();

                // Лента
                RibbonBuilder.InitRibbon();
                Logger.Log.Info("end Initialize AcadLib");
                AcadLibAssembly.AcadLoadInfo();
                if (AutocadUserService.User == null)
                {
                    Logger.Log.Warn("Настройки группы пользователя не заданы - открытие окна настроек пользователя.");
                    UserSettingsService.Show();
                }

                // Восстановление вкладок чCheckUpdatesNotifyертежей
                //Utils.Tabs.RestoreTabs.Init(); // Фаталит у Черновой
                ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
                Logger.Log.Info("AcadLib Initialize end success.");
            }
            catch (Exception ex)
            {
                $"PIK. Ошибка загрузки AcadLib, версия:{AcadLibVersion} - {ex.Message}.".WriteToCommandLine();
                Logger.Log.Error(ex, "AcadLib Initialize.");
            }
        }
Exemplo n.º 15
0
 private void InsPlaceDrawVisuals()
 {
     Place.DrawVisuals();
     PluginStatisticsHelper.AddStatistic();
 }
Exemplo n.º 16
0
        private static void StartCommand(Action <Document> action, MethodBase caller, string commandName, bool woStatistic = false)
        {
            var doc = Application.DocumentManager.MdiActiveDocument;

            if (doc == null)
            {
                return;
            }
            CommandStart commandStart = null;

            try
            {
                commandStart = GetCallerCommand(caller, commandName);
                if (!woStatistic)
                {
                    Logger.Log.StartCommand(commandStart);
                    Logger.Log.Info($"Document={doc.Name}");
                    PluginStatisticsHelper.PluginStart(commandStart);
                }
            }
            catch (Exception ex)
            {
                Logger.Log.Error(ex, "CommandStart");
            }

            try
            {
                // Проверка блокировки команды
                if (commandStart != null && !CommandLockService.CanStartCommand(commandStart.CommandName))
                {
                    Logger.Log.Info($"Команда заблокирована - {commandStart.CommandName}");
                    return;
                }
            }
            catch (Exception ex)
            {
                Logger.Log.Error(ex, "Проверка блокировки команды");
            }

            try
            {
                Inspector.Clear();
                action(doc);
            }
            catch (OperationCanceledException ex)
            {
                if (!doc.IsDisposed)
                {
                    doc.Editor.WriteMessage(ex.Message);
                }
            }
            catch (Exceptions.ErrorException error)
            {
                Inspector.AddError(error.Error);
            }
            catch (Exception ex)
            {
                Logger.Log.Error(ex, CurrentCommand);
                Inspector.AddError($"Ошибка в программе. {ex.Message}", System.Drawing.SystemIcons.Error);

                if (!doc.IsDisposed)
                {
                    doc.Editor.WriteMessage(ex.Message);
                }
            }

            Inspector.Show();
        }
Exemplo n.º 17
0
 private void InsFrontExportExecute()
 {
     // Экспорт фронтов инсоляции
     Front.Export();
     PluginStatisticsHelper.AddStatistic();
 }