|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
03.03.2022, 10:01 | #1 | |
Как узнать имя блока из которого сделан массив на VBA?
Регистрация: 14.12.2008
Сообщений: 1,079
|
||
Просмотров: 2098
|
|
||||
собственно свойство Name - это имя блока.
Name="*U2388" - это анонимный блок и нам а это намекает символ * Как показал следственный эксперимент, "массив" это анонимный блок состоящий из анонимных блоков. Таким образом, надо по имени блока массива найти его описание. Из него выцарапать внутренний анонимный блок и по его имени найти описание. И уже оттуда получим окончательное содержимое. С другой стороны, если мы априори знаем что внутри этого массива, может хватить и свойства Count верхнего описания. Но если надо проверять содержимое то копаем на этаж ниже. 1. взял пустой чертеж, нарисовал линю, создал массив 2. (vlax-dump-object (vlax-ename->vla-object (car (entsel))) t) показал мне что это ObjectName (RO) = "AcDbBlockReference" с Name = "*U2" нашел его описание (vlax-dump-object (vla-item (vla-get-blocks (vla-get-ActiveDocument (vlax-get-Acad-Object))) "*U2") t) , увидел Count (RO) = 12 3. пошел ковырять первое вхождение (vlax-dump-object (vla-item (vla-item (vla-get-blocks (vla-get-ActiveDocument (vlax-get-Acad-Object))) "*U2") 0) t) и нашел там еще один ObjectName (RO) = "AcDbBlockReference" с Name = "*U1"... при перестановке индексов в item будет один тот же анонимный блок 4. ищем описание (vlax-dump-object (vla-item (vla-get-blocks (vla-get-ActiveDocument (vlax-get-Acad-Object))) "*U1") t) и там уже Count (RO) = 1 - та самая исходная линия
__________________
Не труд сделал из обезьяны человека, а лень и жажда халявы... |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Как бы я делал (без кода):
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
тут не хватает того что "первый элемент" окажется так же анонимным блоком и надо копать еще на этаж вниз до нормального блока
__________________
Не труд сделал из обезьяны человека, а лень и жажда халявы... |
||||
|
Опции темы | Поиск в этой теме |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Нарушается видимость атрибутов при вставке вхождения блока в чертеж | Joann88 | AutoCAD | 7 | 28.03.2021 14:52 |
Vba при попытке скопировать один массив в другой того же типа ошибка 13: type mismatched | zenija2007 | Программирование | 5 | 07.07.2016 12:00 |
Как добавить в блок запись, доступную из всех экземпляров блока? | valerik88 | LISP | 0 | 02.07.2016 17:36 |
C# .net переопределение динамического блока из внешнего файла | bargool | .NET | 35 | 18.10.2011 16:03 |
Как программно узнать точку пересеч. линии с подприм. блока? | kp+ | AutoCAD | 3 | 21.10.2005 10:46 |