网上找到一个图层管理工具(类似layoff功能)需优化,请G版和其他高手看看,谢谢!
本帖最后由 hh0066 于 2014-1-9 11:37 编辑网上找到一个图层管理工具(类似layoff功能),但这个工具比layoff多了个最后确定的步骤,本人尝试过修改但最后还没得到解决,求助各位。
;选物关闭所在图层
(defun C:Layoff (/ ss cnt c en lay)
(setvar "CMDECHO" 0)
(setq ss (ssget))
(setq cnt (sslength ss))
(setq cnt (1- cnt))
(setq c 0)
(while (<= c cnt)
(setq en (ssname ss c))
(setq lay (cdr (assoc 8 (entget en))))
(if (= lay (getvar "CLAYER"))
(command "-LAYER" "OFF" lay "Y" "")
(progn
(command "-LAYER" "OFF" lay "")))
(setq c (1+ c)))
(princ))
本帖最后由 llsheng_73 于 2014-1-9 13:01 编辑
(defun C:Layoff (/ ss cnt c lys lay layersoff)
(defun layersoff(lys / ly);将lys表中的所有图层关闭
(foreach x lys
(vla-put-layeron(vlax-ename->vla-object (tblobjname "LAYER" x)):vlax-false)))
(setq ss(ssget))
(setq cnt(sslength ss)c 0 lys nil)
(while(< c cnt)
(setq lay(cdr (assoc 8(entget(ssname ss c))));;;(setq lay(vla-get-layer(vlax-ename->vla-object(ssname ss c))) lys(if(member lay lys)lys(cons lay lys))也行
lys(if(member lay lys)lys(cons lay lys))
c(1+ c)))
(layersoff lys)
)
llsheng_73 发表于 2014-1-9 12:48 static/image/common/back.gif
和Express的layoff比还是多了最后确认的步骤啊 本帖最后由 llsheng_73 于 2014-1-9 17:53 编辑
hh0066 发表于 2014-1-9 17:21 http://bbs.mjtd.com/static/image/common/back.gif
和Express的layoff比还是多了最后确认的步骤啊
多了最后确认的步骤,不懂
(defun C:Layoff (/ e)
(while(setq e(car(entsel"\n选择对象关闭所在图层")))
(vla-put-layeron(vlax-ename->vla-object(tblobjname "LAYER"(cdr(assoc 8(entget e))))):vlax-false))) llsheng_73 发表于 2014-1-9 17:44 static/image/common/back.gif
多了最后确认的步骤,不懂
谢谢llsheng_73,上面这个程序能实现Express的layiso功能了,如果能增加多选功能就更好了。 上边一个不就是多选的么,但你说多了个确认。。。 llsheng_73 发表于 2014-1-9 18:15 static/image/common/back.gif
上边一个不就是多选的么,但你说多了个确认。。。
我明白了,单选的才能选择了就隐藏,多选的最后必须有个确认的步骤。谢谢你的积极参与 hh0066 发表于 2014-1-10 10:02 static/image/common/back.gif
我明白了,单选的才能选择了就隐藏,多选的最后必须有个确认的步骤。谢谢你的积极参与
不是对操作关闭图层进行确认,而是你的选择要得到确认它才会结束。。 也可框选不确认就关闭,简单点就模拟框选,复杂点就模拟ssget,不过不确认也就不能对对象筛选。比如选错了,就不能去掉选择。
页:
[1]