Применение автоматической (скриптовой) операции без участия пользователя

Я, вероятно, довольно просто решить (Авто)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

Другие вопросы по тегам