1

我有一个可能相当简单地解决(自动)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 的新手,我错过了什么,它在过滤的项目上不能按预期工作?

4

1 回答 1

0

您需要将过滤器添加到您的选择集中。简单地在不同的实体类型之间添加一个逗号只会给你一个格式错误的实体。

在这里查看一些信息以帮助您入门:http ://www.afralisp.net/autolisp/tutorials/selection-set-filters.php

于 2014-12-08T22:39:20.387 回答