private static void CreateLevelMark() { #if !DEBUG Statistic.SendCommandStarting(LevelMarkDescriptor.Instance.Name, ModPlusConnector.Instance.AvailProductExternalVersion); #endif try { Overrule.Overruling = false; /* Регистрация ЕСКД приложения должна запускаться при запуске * функции, т.к. регистрация происходит в текущем документе * При инициализации плагина регистрации нет! */ ExtendedDataUtils.AddRegAppTableRecord(LevelMarkDescriptor.Instance.Name); var style = StyleManager.GetCurrentStyle(typeof(LevelMark)); var levelMark = new LevelMark(); var blockReference = MainFunction.CreateBlock(levelMark); levelMark.ApplyStyle(style, true); InsertLevelMarkWithJig(levelMark, blockReference); } catch (Exception exception) { ExceptionBox.Show(exception); } finally { Overrule.Overruling = true; } }
/// <inheritdoc/> public void CreateAnalog(IntellectualEntity sourceEntity, bool copyLayer) { #if !DEBUG Statistic.SendCommandStarting(LevelMarkDescriptor.Instance.Name, ModPlusConnector.Instance.AvailProductExternalVersion); #endif try { Overrule.Overruling = false; /* Регистрация ЕСКД приложения должна запускаться при запуске * функции, т.к. регистрация происходит в текущем документе * При инициализации плагина регистрации нет! */ ExtendedDataUtils.AddRegAppTableRecord(LevelMarkDescriptor.Instance.Name); var levelMark = new LevelMark(); var blockReference = MainFunction.CreateBlock(levelMark); levelMark.SetPropertiesFromIntellectualEntity(sourceEntity, copyLayer); InsertLevelMarkWithJig(levelMark, blockReference); } catch (System.Exception exception) { ExceptionBox.Show(exception); } finally { Overrule.Overruling = true; } }
private static void CreateSection(bool isSimple) { #if !DEBUG Statistic.SendCommandStarting(SectionDescriptor.Instance.Name, ModPlusConnector.Instance.AvailProductExternalVersion); #endif try { Overrule.Overruling = false; /* Регистрация ЕСКД приложения должна запускаться при запуске * функции, т.к. регистрация происходит в текущем документе * При инициализации плагина регистрации нет! */ ExtendedDataUtils.AddRegAppTableRecord(SectionDescriptor.Instance.Name); var style = StyleManager.GetCurrentStyle(typeof(Section)); var sectionLastLetterValue = string.Empty; var sectionLastIntegerValue = string.Empty; FindLastSectionValues(ref sectionLastLetterValue, ref sectionLastIntegerValue); var section = new Section(sectionLastIntegerValue, sectionLastLetterValue); var blockReference = MainFunction.CreateBlock(section); section.ApplyStyle(style, true); InsertSectionWithJig(isSimple, section, blockReference); } catch (System.Exception exception) { ExceptionBox.Show(exception); } finally { Overrule.Overruling = true; } }
/// <inheritdoc/> public void CreateAnalog(SmartEntity sourceEntity, bool copyLayer) { #if !DEBUG Statistic.SendCommandStarting(NodalLeader.GetDescriptor().Name, ModPlusConnector.Instance.AvailProductExternalVersion); #endif try { Overrule.Overruling = false; /* Регистрация ЕСКД приложения должна запускаться при запуске * функции, т.к. регистрация происходит в текущем документе * При инициализации плагина регистрации нет! */ ExtendedDataUtils.AddRegAppTableRecord(NodalLeader.GetDescriptor()); var lastNodeNumber = FindLastNodeNumber(); var nodalLeader = new NodalLeader(lastNodeNumber); var blockReference = MainFunction.CreateBlock(nodalLeader); nodalLeader.SetPropertiesFromSmartEntity(sourceEntity, copyLayer); InsertNodalLeaderWithJig(nodalLeader, blockReference); } catch (Exception exception) { ExceptionBox.Show(exception); } finally { Overrule.Overruling = true; } }
private static void CreateBreakLine(BreakLineType breakLineType) { // send statistic Statistic.SendCommandStarting(BreakLineDescriptor.Instance.Name, ModPlusConnector.Instance.AvailProductExternalVersion); try { Overrule.Overruling = false; /* Регистрация ЕСКД приложения должна запускаться при запуске * функции, т.к. регистрация происходит в текущем документе * При инициализации плагина регистрации нет! */ ExtendedDataUtils.AddRegAppTableRecord(BreakLineDescriptor.Instance.Name); var style = StyleManager.GetCurrentStyle(typeof(BreakLine)); var breakLine = new BreakLine(); var blockReference = MainFunction.CreateBlock(breakLine); breakLine.ApplyStyle(style, true); breakLine.BreakLineType = breakLineType; InsertBreakLineWithJig(breakLine, blockReference); } catch (System.Exception exception) { ExceptionBox.Show(exception); } finally { Overrule.Overruling = true; } }
/// <inheritdoc /> public void CreateAnalog(SmartEntity sourceEntity, bool copyLayer) { #if !DEBUG ModPlusAPI.Statistic.SendCommandStarting( Axis.GetDescriptor().Name, ModPlusConnector.Instance.AvailProductExternalVersion); #endif try { Overrule.Overruling = false; /* Регистрация ЕСКД приложения должна запускаться при запуске * функции, т.к. регистрация происходит в текущем документе * При инициализации плагина регистрации нет! */ ExtendedDataUtils.AddRegAppTableRecord(Axis.GetDescriptor()); var axisLastHorizontalValue = string.Empty; var axisLastVerticalValue = string.Empty; FindLastAxisValues(ref axisLastHorizontalValue, ref axisLastVerticalValue); var axis = new Axis(axisLastHorizontalValue, axisLastVerticalValue); var blockReference = MainFunction.CreateBlock(axis); axis.SetPropertiesFromSmartEntity(sourceEntity, copyLayer); // Отключаю видимость кружков направления axis.TopOrientMarkerVisible = false; axis.BottomOrientMarkerVisible = false; InsertAxisWithJig(axis, blockReference); } catch (Exception exception) { ExceptionBox.Show(exception); } finally { Overrule.Overruling = true; } }
private static void CreateAxis() { #if !DEBUG ModPlusAPI.Statistic.SendCommandStarting( Axis.GetDescriptor().Name, ModPlusConnector.Instance.AvailProductExternalVersion); #endif try { Overrule.Overruling = false; /* Регистрация ЕСКД приложения должна запускаться при запуске * функции, т.к. регистрация происходит в текущем документе * При инициализации плагина регистрации нет! */ ExtendedDataUtils.AddRegAppTableRecord(Axis.GetDescriptor()); var style = StyleManager.GetCurrentStyle(typeof(Axis)); var axisLastHorizontalValue = string.Empty; var axisLastVerticalValue = string.Empty; FindLastAxisValues(ref axisLastHorizontalValue, ref axisLastVerticalValue); var axis = new Axis(axisLastHorizontalValue, axisLastVerticalValue); var blockReference = MainFunction.CreateBlock(axis); axis.ApplyStyle(style, true); InsertAxisWithJig(axis, blockReference); } catch (Exception exception) { ExceptionBox.Show(exception); } finally { Overrule.Overruling = true; } }
/// <summary> /// Конвертирование выбранной полилинии в линейный интеллектуальный объект /// </summary> /// <typeparam name="T">Тип линейного интеллектуального объекта</typeparam> public static void CreateFromPolyline <T>() where T : SmartEntity, ILinearEntity, new() { try { var peo = new PromptEntityOptions($"\n{Language.GetItem("msg6")}") { AllowNone = false, AllowObjectOnLockedLayer = true }; peo.SetRejectMessage($"\n{Language.GetItem("wrong")}"); peo.AddAllowedClass(typeof(Polyline), true); var per = AcadUtils.Editor.GetEntity(peo); if (per.Status != PromptStatus.OK) { return; } var style = StyleManager.GetCurrentStyle(typeof(T)); var groundLine = new T(); MainFunction.CreateBlock(groundLine); groundLine.ApplyStyle(style, true); var plineId = per.ObjectId; using (AcadUtils.Document.LockDocument(DocumentLockMode.ProtectedAutoWrite, null, null, true)) { using (var tr = AcadUtils.Document.TransactionManager.StartOpenCloseTransaction()) { var dbObj = tr.GetObject(plineId, OpenMode.ForRead); if (dbObj is Polyline pline) { for (int i = 0; i < pline.NumberOfVertices; i++) { if (i == 0) { groundLine.InsertionPoint = pline.GetPoint3dAt(i); } else if (i == pline.NumberOfVertices - 1) { groundLine.EndPoint = pline.GetPoint3dAt(i); } else { groundLine.MiddlePoints.Add(pline.GetPoint3dAt(i)); } } groundLine.UpdateEntities(); groundLine.BlockRecord.UpdateAnonymousBlocks(); var ent = (BlockReference)tr.GetObject(groundLine.BlockId, OpenMode.ForWrite, true, true); ent.Position = pline.GetPoint3dAt(0); ent.XData = groundLine.GetDataForXData(); } tr.Commit(); } AcadUtils.Document.TransactionManager.QueueForGraphicsFlush(); AcadUtils.Document.TransactionManager.FlushGraphics(); // "Удалить исходную полилинию?" if (MessageBox.ShowYesNo(Language.GetItem("msg7"), MessageBoxIcon.Question)) { using (var tr = AcadUtils.Document.TransactionManager.StartTransaction()) { var dbObj = tr.GetObject(plineId, OpenMode.ForWrite, true, true); dbObj.Erase(true); tr.Commit(); } } } } catch (Exception exception) { ExceptionBox.Show(exception); } }
private void CreateGroundLineFromPolyline() { #if !DEBUG Statistic.SendCommandStarting("mpGroundLineFromPolyline", ModPlusConnector.Instance.AvailProductExternalVersion); #endif try { var peo = new PromptEntityOptions($"\n{Language.GetItem(Invariables.LangItem, "msg6")}") { AllowNone = false, AllowObjectOnLockedLayer = true }; peo.SetRejectMessage($"\n{Language.GetItem(Invariables.LangItem, "wrong")}"); peo.AddAllowedClass(typeof(Polyline), true); var per = AcadUtils.Editor.GetEntity(peo); if (per.Status != PromptStatus.OK) { return; } /* Регистрация ЕСКД приложения должна запускаться при запуске * функции, т.к. регистрация происходит в текущем документе * При инициализации плагина регистрации нет! */ ExtendedDataUtils.AddRegAppTableRecord(GroundLineDescriptor.Instance.Name); // style var style = StyleManager.GetCurrentStyle(typeof(GroundLine)); var groundLine = new GroundLine(); MainFunction.CreateBlock(groundLine); groundLine.ApplyStyle(style, true); var plineId = per.ObjectId; using (AcadUtils.Document.LockDocument(DocumentLockMode.ProtectedAutoWrite, null, null, true)) { using (var tr = AcadUtils.Document.TransactionManager.StartOpenCloseTransaction()) { var dbObj = tr.GetObject(plineId, OpenMode.ForRead); if (dbObj is Polyline pline) { for (int i = 0; i < pline.NumberOfVertices; i++) { if (i == 0) { groundLine.InsertionPoint = pline.GetPoint3dAt(i); } else if (i == pline.NumberOfVertices - 1) { groundLine.EndPoint = pline.GetPoint3dAt(i); } else { groundLine.MiddlePoints.Add(pline.GetPoint3dAt(i)); } } groundLine.UpdateEntities(); groundLine.BlockRecord.UpdateAnonymousBlocks(); var ent = (BlockReference)tr.GetObject(groundLine.BlockId, OpenMode.ForWrite, true, true); ent.Position = pline.GetPoint3dAt(0); ent.XData = groundLine.GetDataForXData(); } tr.Commit(); } AcadUtils.Document.TransactionManager.QueueForGraphicsFlush(); AcadUtils.Document.TransactionManager.FlushGraphics(); // "Удалить исходную полилинию?" if (MessageBox.ShowYesNo(Language.GetItem(Invariables.LangItem, "msg7"), MessageBoxIcon.Question)) { using (var tr = AcadUtils.Document.TransactionManager.StartTransaction()) { var dbObj = tr.GetObject(plineId, OpenMode.ForWrite, true, true); dbObj.Erase(true); tr.Commit(); } } } } catch (System.Exception exception) { ExceptionBox.Show(exception); } }