06/07/2021
Как выполнить расчленение группы примитивов при помощи .NET API
Следующий код показывает как можно расчленить группу, заданную её именем:
Код - C#: [Выделить]
- using Autodesk.AutoCAD.ApplicationServices;
- using Autodesk.AutoCAD.DatabaseServices;
- using Autodesk.AutoCAD.EditorInput;
- using Autodesk.AutoCAD.Runtime;
- // This line is not mandatory, but improves loading performances
- [assembly: CommandClass(typeof(Rivilis.GroupUtils))]
- namespace Rivilis
- {
- public class GroupUtils
- {
- [CommandMethod("GroupExplode")]
- public void GroupExplodeHandler()
- {
- Document doc = Application.DocumentManager.MdiActiveDocument;
- Editor ed = doc.Editor;
- Database db = doc.Database;
- PromptResult rs = ed.GetString("\nИмя группы для расчленения: ");
- if (rs.Status == PromptStatus.OK)
- {
- string groupName = rs.StringResult;
- using (OpenCloseTransaction tr = new OpenCloseTransaction())
- {
- ObjectId idGroupDict = db.GroupDictionaryId;
- DBDictionary groupDict = tr.GetObject(idGroupDict, OpenMode.ForWrite) as DBDictionary;
- if (groupDict.Contains(groupName))
- {
- ObjectId idGroup = groupDict.GetAt(groupName);
- Group group = tr.GetObject(idGroup, OpenMode.ForWrite) as Group;
- if (group != null)
- {
- if (group.NumEntities > 0) group.Clear();
- group.Erase();
- }
- }
- else
- {
- ed.WriteMessage("\nВ этом чертеже нет группы '{0}'", groupName);
- }
- tr.Commit();
- }
- }
- }
- }
- }
Автор: Александр Ривилис
Опубликовано 06.07.2021
Опубликовано 06.07.2021