多个选择片段nee
你好,有人能帮我在普通autolisp中将其更改为多选吗?提前谢谢你。
(setq entlist (entget (car (entsel "\nSelect an object: "))))
(setq nlay (cdr (assoc 8 entlist)))
(command "-layer" "off" "Layer-Name*" "on" nlay "") 试试这个,不要测试:
(setq ss (ssget))
(repeat (setq i (sslength ss))
(setq entlist (entget (ssname ss (setq i (1- i))))
nlay (cdr (assoc 8 entlist))
)
(command "-layer" "off" "Layer-Name*" "on" nlay "")
)
不理解“图层名*”的来源,
但多重选择应该有效。
将所有图层名称放在一个列表中也是一个好主意
只处理唯一的一个。
ymg公司
我同意ymg,我也不理解“层名称*”。。。
如果您的目标是将tha层与选定对象隔离,那么这样做可能会奏效
(defun c:demo (/ ent i lay laylst lays ss)
(if (setq ss (ssget))
(progn
(repeat (setq i (sslength ss))
(setq ent (entget (ssname ss (setq i (1- i))))
lay (cdr (assoc 8 ent))
)
(if (not (member lay laylst))
(setq laylst (cons lay laylst))
)
)
(setq lays "")
(foreach l laylst
(if (/= l (last laylst))
(setq lays (strcat lays l ","))
(setq lays (strcat lays l))
)
)
(setvar 'CLAYER (car laylst))
(command "-layer" "off" "*" "" "on" lays "")
)
)
(princ)
)
HTH
亨里克 非常感谢ymg3和HTH的投入。顺便说一句,“图层名”只是一个过滤器-很抱歉显示了这一点。我得到了完成其余代码所需的内容,再次感谢。 请阅读代码发布指南并编辑您的帖子以使用代码标签。
页:
[1]