szx025 发表于 2014-2-27 13:57:28

关闭除某一图层外的所有图层

请教一个问题,关闭除某一图层外的所有图层(知道要关闭图层名)。这个用lisp程序如何实现

434939575 发表于 2014-2-27 14:31:23

(defun C:ON (/ ss cnt c en lay);关闭除了选中的物体所在层
(setvar "CMDECHO" 0)

(setq ss (ssget))
(setq cnt (sslength ss))
(setq cnt (1- cnt))
(command "LAYER" "OFF" "*" "Y" "")
(setq c 0)
(while (<= c cnt)
    (setq en (ssname ss c))
    (setq lay (cdr (assoc 8 (entget en))))
    (command "-LAYER" "ON" lay "")
    (setq c (1+ c))
)
(princ)
)

Gu_xl 发表于 2014-2-27 14:41:29

(command "_layer" "off" (strcat "~" lay) "")

szx025 发表于 2014-2-27 14:43:18

我想要的是关闭除指定图层名外的所有层,不是关闭除了选中的物体所在层
你的程序是先要选一个物体,然后关闭除了选中的物体所有层
我想直接指定图层名,然后关闭除指定图层名外的所有层

zyhandw 发表于 2014-2-27 14:52:09

szx025 发表于 2014-2-27 14:43 static/image/common/back.gif
我想要的是关闭除指定图层名外的所有层,不是关闭除了选中的物体所在层
你的程序是先要选一个物体,然后关 ...

就用G版的不就挺好吗?
(setq lay "你想要关闭的图层名")
(command "_layer" "off" (strcat "~" lay) "")

szx025 发表于 2014-2-27 15:48:33

(setq lay "你想要关闭的图层名")
不是要关闭指定图层,而是关闭指定图层之外的所有图层

kwok 发表于 2014-2-27 16:23:35

本帖最后由 kwok 于 2014-2-27 16:27 编辑

把所有图都关了,然后指定层打开,目的达到,我是这样简单弄的,呵呵.
(vl-cmdf "_.layer" "off" "*" "n" "")
(vl-cmdf "_.layer" "off" (getvar "clayer") "y" "") ;关闭当层图
(setq lay "你想要显示的图层名")
(command "_layer" "on"lay "")

坐等高人弄一个不是我这土办法的.

casd 发表于 2014-2-28 17:43:35

http://bbs.mjtd.com/thread-102154-1-1.html
选层不关 cgylaynotoff

mijiulokl 发表于 2014-11-20 16:01:30

顶一个........
页: [1]
查看完整版本: 关闭除某一图层外的所有图层