使用autolisp如何判断同一图层有不同类型的实体?

 我来答
朱06CAD
2015-01-10 · 知道合伙人软件行家
朱06CAD
知道合伙人软件行家
采纳数:4172 获赞数:18070
高中,熟悉AutoCAD。会autolisp及VBA程序。

向TA提问 私信TA
展开全部

需要循环判断才可以。

(defun C:ZX90 ( / &k1 &kw1 @k1 i ss1 tc ty1 ty2)
 (setq TC (entsel "\n请选择参考图层"))
 (if (/= TC nil)
  (progn
   (setq TC (cdr (assoc 8 (entget (car TC)))));得到图层
   (setq &kw1 (ssget "X" (list (cons 8 TC))));选择这个图层所有对象
   (setq ss1 '() &k1 (ssname &kw1 0) TY1 (cdr (assoc 0 (entget &k1))) ss1 (cons TY1 ss1));取得图元名
   (while &k1;进行判断
    (setq &kw1 (ssdel &k1 &kw1) i 0 @k1 "N1");判断变量为@k1
    (setq TY1 (cdr (assoc 0 (entget &k1))));取得图元名
    (repeat (length ss1);开始判断
     (setq TY2 (nth i ss1));提取图元名列表的数据
     (if (= TY1 TY2) (setq @k1 "Y1"));如果图元名相同就对变量@k1进行改变
     (setq i (+ i 1))
    )
    (if (= @k1 "N1") (setq ss1 (cons TY1 ss1)) );如果没有改变变量@k1,那么没有这个图元名所以图元名加入
    (setq &k1 (ssname &kw1 0));下一个对象
   )
   (princ "\n一共有") (princ (length ss1)) (princ "个类型");命令行显示类型个数
  )
 )
 (prin1)
)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式