С помощью функции setpropertyvalue в AutoLISP можн...

Criado em: 11 de novembro de 2026

Respondido usando GPT-6 Thinking por Chat01

Pergunta

С помощью функции setpropertyvalue в AutoLISP можно изменить свойство Annotative на No, не удаляя объекты.
Код на LISP=>
(setpropertyvalue (car (entsel "\nSelect object: ")) "Annotative" 0)
удаляет аннотативность только одного выбранного объекта текста или размера или мультивыноски
Нужно добавить в код возможность выбрать несколько объектов.

Pensamento

Writing AutoLISP routine

Я подготавливаю команду, которая выбирает TEXT, MTEXT, DIMENSION и MULTILEADER, затем устанавливает свойство Annotative в 0. Я добавлю обработку ошибок, чтобы неподдерживаемые объекты не прерывали выполнение.

Refining selection logic

I’m using a filtered selection for TEXT, MTEXT, DIMENSION, and MULTILEADER. I’ll loop through every chosen object and set Annotative to 0, while safely ignoring unsupported cases.

Wrote AutoLISP routine and refined selection logic

Worked for 23s

Resposta

Text version

Для выбора нескольких объектов вместо entsel нужно использовать ssget, а затем в цикле применить setpropertyvalue к каждому выбранному объекту.

Готовый код AutoLISP

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) )

Как работает программа

  1. Введите команду NOANNO.
  2. Выберите несколько объектов рамкой или по одному.
  3. Нажмите Enter.
  4. У всех выбранных объектов свойство Annotative изменится на No.

Фильтр позволяет выбирать:

  • TEXT — однострочный текст.
  • MTEXT — многострочный текст.
  • DIMENSION — размеры.
  • MULTILEADER — мультивыноски.

Объекты не удаляются и не создаются заново. Изменяется только свойство Annotative.

Если нужно, чтобы программа обрабатывала любые выбранные объекты, поддерживающие Annotative, а не только текст, размеры и мультивыноски, можно убрать фильтр и добавить проверку свойства.

Compartilhar esta Q&A