Применение автоматической (скриптовой) операции без участия пользователя
Я, вероятно, довольно просто решить (Авто)LISP проблему, чтобы решить. У меня есть скрипт, который работает в принципе нормально, но он требует от меня, чтобы вручную выбрать объекты (текст в моем случае) и нажмите Enter.
Я хочу выделить все текстовые объекты из всех слоев и применить одну и ту же операцию TCIRCLE ко всем из них. Впоследствии эту команду следует применять со сценарием для автоматизации импорта, поэтому ручного взаимодействия не должно быть.
Это рабочий базовый скрипт, который требует ручного выбора:
(defun c:MyTcircle ( / ss)
(if (not bns_tcircle) (load "acettxt.lsp"))
(if (setq ss (ssget '((0 . "TEXT,MTEXT,ATTDEF"))))
(bns_tcircle ss "Variable" "Rectangles" "" 0.35)
)
(princ)
)
Я попытался создать коллекцию фильтров с помощью setq sset для фильтров того же типа, что и выше. Но это ничего не делает (без ошибок, но и без изменений). Так что либо моя коллекция пуста, либо команда не называется правильной.
Я новичок в AutoLisp, что мне не хватает, что он не работает должным образом на отфильтрованных элементах?
1 ответ
Вам нужно добавить фильтр в ваш набор выбора. Простое добавление запятой между различными типами сущностей просто дает вам искаженную сущность.
Посмотрите здесь некоторую информацию, чтобы начать работу: http://www.afralisp.net/autolisp/tutorials/selection-set-filters.php