По сути, мне нужна функция, которая просматривает рисунок и ищет текст определения атрибута, я могу сделать это как обычно, но если я создам блок с указанным текстом атрибута, функция больше не сможет их найти. Я не знаю, возможно ли это сделать.
Есть ли способ получить доступ к информации о тексте атрибута внутри блочного объекта? (Автолисп)
Ответы (1)
Чтобы выполнить свою задачу, вам нужно посмотреть на значение (свойство Textstring) атрибута references, а не на атрибут definitions.
Ссылки на атрибуты хранятся в ссылке на блок, и их значения могут различаться между несколькими ссылками на один и тот же блок, в то время как определения атрибутов находятся внутри определения одного блока (т. е. схемы для block) и удерживайте необязательное значение по умолчанию.
Доступ к ссылкам на атрибуты можно получить либо через Vanilla AutoLISP, используя функцию entnext
для итерации по субобъектам ссылок на атрибуты, которые следуют за объектом ссылки на блок в базе данных чертежа (example) или через Visual LISP, вызвав метод ActiveX getattributes
(пример).
Моя существующая программа Подсчет значений атрибутов должна дать некоторое представление о том, как это сделать. необходимо различать ссылки по имени блока в дополнение к значению атрибута.