zlq1318 发表于 2015-1-28 17:56:58

一个修改线型的lisp怎么才能针对所有的线型

很简单的一个lisp将选定的线改为HIDDEN线型,但是下面这个lisp只能针对line线,怎么让它能针对各种线譬如多义线弧线 PL线样条曲线等,拜托论坛里的兄弟姐妹稍微指点下,如何才能针对所有的线型?
(defun c:R5( )
(setq ss (ssget '((0 . "*line"))))
(setq ssnum(sslength ss))
(setq nb 0)
(while (< nb ssnum)
(progn (setq en (entget (ssname ss nb)))
(setq oli (assoc 6 en))
(setq nli (cons 6 "hidden"))
(if (= oli nil)
(setq en(append en(list nli)))
    (setq en (subst nli oli en))
    );endif
(entmod en)
   (setq nb (1+ nb))
)
))

zlq1318 发表于 2015-1-28 18:48:44

这个问题好像不难啊
怎么没有人答复偶啊

chg 发表于 2015-1-28 19:09:35

本帖最后由 chg 于 2015-1-28 19:12 编辑

(setq ss (ssget '((0 . "*line"))))这句改成(setq ss (ssget))不就可以了吗?如果指定要选择特定的对象,用与表达式作为过滤条件,因为最近很少写程序,具体的格式忘记了,这个在autolisp帮助文件里可以查到,你自己看看。

cjjh8301 发表于 2020-3-16 15:02:14

chg 发表于 2015-1-28 19:09
(setq ss (ssget '((0 . "*line"))))这句改成(setq ss (ssget))不就可以了吗?如果指定要选择特定的对象, ...

(defun c:R5( )
(setq ss (ssget))
(setq ssnum(sslength ss))
(setq nb 0)
(while (< nb ssnum)
(progn (setq en (entget (ssname ss nb)))
(setq oli (assoc 6 en))
(setq nli (cons 6 "hidden"))
(if (= oli nil)
(setq en(append en(list nli)))
    (setq en (subst nli oli en))
    );endif
(entmod en)
   (setq nb (1+ nb))
)
))

上面的可以用,再价格颜色设定可以吗?比如转虚线颜色为8
页: [1]
查看完整版本: 一个修改线型的lisp怎么才能针对所有的线型