11
AutoCAD .NET API / Re: Оффтопик. Изучаем C#
« Последний ответ от Electric 08-02-2026, 14:35:25 »Другой вопрос.
В python при работе через win32com я достаточно просто получал имена блока, выделенного мышью:
Как в одну строку получить EffectiveName блока на C# ?
Я попробовал такой код:
но похоже, он все время возвращает обычное имя:
В python при работе через win32com я достаточно просто получал имена блока, выделенного мышью:
Код - Python [Выбрать]
- realName = block.Name
- effectiveName = block.EffectiveName
Как в одну строку получить EffectiveName блока на C# ?
Я попробовал такой код:
Код - C# [Выбрать]
- // БЛОКИ
- else if (entity is BlockReference block)
- {
- // Получаем EffectiveName в одну строку
- string effectiveName = ((BlockTableRecord)tr.GetObject(block.DynamicBlockTableRecord, OpenMode.ForRead)).Name;
- data.BlockData = new BlockData
- {
- Name = block.Name, // Оригинальное имя
- BlockName = effectiveName, // EffectiveName
- InsertionPoint = new Point3dData
- {
- X = Math.Round(block.Position.X, 3),
- Y = Math.Round(block.Position.Y, 3),
- Z = Math.Round(block.Position.Z, 3)
- },
- Rotation = Math.Round(block.Rotation, 6),
- XScaleFactor = Math.Round(block.ScaleFactors.X, 3),
- YScaleFactor = Math.Round(block.ScaleFactors.Y, 3),
- Attributes = new List<AttributeData>(),
- InternalObjects = new List<InternalObjectData>()
- };
но похоже, он все время возвращает обычное имя:
Цитировать
"Name": "*T1150",
"BlockName": "*T1150",
Последние сообщения