Есть ли способ получить доступ к информации о тексте атрибута внутри блочного объекта? (Автолисп)

По сути, мне нужна функция, которая просматривает рисунок и ищет текст определения атрибута, я могу сделать это как обычно, но если я создам блок с указанным текстом атрибута, функция больше не сможет их найти. Я не знаю, возможно ли это сделать.


person Gevezo    schedule 11.08.2020    source источник
comment
Наверняка есть способ сделать это (если я понимаю, что Вы хотите сделать). Но обычно его можно понимать по-разному. Покажите нам код.   -  person CAD Developer    schedule 12.08.2020
comment
Я использую счетчик блоков мистера Ли (lee-mac.com/blockcounter.html ), и я планирую модифицировать эту функцию таким образом, чтобы подсчет различал похожие блоки с разным текстом атрибутов на них.   -  person Gevezo    schedule 13.08.2020


Ответы (1)


Чтобы выполнить свою задачу, вам нужно посмотреть на значение (свойство Textstring) атрибута references, а не на атрибут definitions.

Ссылки на атрибуты хранятся в ссылке на блок, и их значения могут различаться между несколькими ссылками на один и тот же блок, в то время как определения атрибутов находятся внутри определения одного блока (т. е. схемы для block) и удерживайте необязательное значение по умолчанию.

Доступ к ссылкам на атрибуты можно получить либо через Vanilla AutoLISP, используя функцию entnext для итерации по субобъектам ссылок на атрибуты, которые следуют за объектом ссылки на блок в базе данных чертежа (example) или через Visual LISP, вызвав метод ActiveX getattributes (пример).

Моя существующая программа Подсчет значений атрибутов должна дать некоторое представление о том, как это сделать. необходимо различать ссылки по имени блока в дополнение к значению атрибута.

person Lee Mac    schedule 07.09.2020