/// <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(); } }
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); }
private static void LogRestoreTabs(List <string> tabsRestore) { Task.Run(() => { PluginStatisticsHelper.PluginStart("RestoreTabsOpen"); Logger.Log.Info($"RestoreTabsOpen: {tabsRestore.JoinToString()}"); }); }
public static void StartLisp(string commandName, string file) { Logger.Log.StartLisp(commandName, file); PluginStatisticsHelper.PluginStart(new CommandStart(commandName, null) { Doc = file, Plugin = "Lisp" }); }
private void SendStartAutocadStatistic() { try { PluginStatisticsHelper.StartAutoCAD(); } catch (Exception ex) { ex.LogError(); } }
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())); }
/// <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(); } }
/// <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, "Ошибка"); } }
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, "Ошибка"); } }
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, "Ошибка при создании группы фронтонов."); } }
/// <summary> /// Рисование визуализации в чертеже /// </summary> private void InsFrontDrawVisuals() { Front.DrawVisuals(); PluginStatisticsHelper.AddStatistic(); }
/// <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(); } }
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."); } }
private void InsPlaceDrawVisuals() { Place.DrawVisuals(); PluginStatisticsHelper.AddStatistic(); }
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(); }
private void InsFrontExportExecute() { // Экспорт фронтов инсоляции Front.Export(); PluginStatisticsHelper.AddStatistic(); }