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

Erstellt am: 11. November 2026

Beantwortet mit GPT-6 Thinking von Chat01

Frage

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

Gedanke

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

Antwort

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, а не только текст, размеры и мультивыноски, можно убрать фильтр и добавить проверку свойства.

Diesen Q&A teilen