С помощью функции setpropertyvalue в AutoLISP можн...
Criado em: 11 de novembro de 2026
Respondido usando GPT-6 Thinking por Chat01
Criado em: 11 de novembro de 2026
Respondido usando GPT-6 Thinking por Chat01
С помощью функции setpropertyvalue в AutoLISP можно изменить свойство Annotative на No, не удаляя объекты.
Код на LISP=>
(setpropertyvalue (car (entsel "\nSelect object: ")) "Annotative" 0)
удаляет аннотативность только одного выбранного объекта текста или размера или мультивыноски
Нужно добавить в код возможность выбрать несколько объектов.
Для выбора нескольких объектов вместо entsel нужно использовать ssget, а затем в цикле применить setpropertyvalue к каждому выбранному объекту.
lisp(defun c:NOANNO (/ ss i) (if (setq ss (ssget '((0 . "TEXT,MTEXT,DIMENSION,MULTILEADER")))) (progn (setq i 0) (repeat (sslength ss) (setpropertyvalue (ssname ss i) "Annotative" 0) (setq i (1+ i)) ) (princ (strcat "\nОбработано объектов: " (itoa i))) ) ) (princ) )
NOANNO.Enter.Фильтр позволяет выбирать:
TEXT — однострочный текст.MTEXT — многострочный текст.DIMENSION — размеры.MULTILEADER — мультивыноски.Объекты не удаляются и не создаются заново. Изменяется только свойство Annotative.
Если нужно, чтобы программа обрабатывала любые выбранные объекты, поддерживающие Annotative, а не только текст, размеры и мультивыноски, можно убрать фильтр и добавить проверку свойства.