求一个控制特定几个图层的程序!
出于更换底图以及分类查看图纸的需要,可不可以编写这样的程序,用来控制特定图层的开关?图层名称可以方便的自行添加,可以使用通配符,比如带前缀a、前缀b的一系列图层
使用时输入快捷键1,则关闭特定图层,输入快捷键2,则关闭特定图层以外的图层
来个简单的,
(defun c:Lay2 ();;关闭特定层外的
(setvar 'cmdecho 0)
(command "layer" "off" "*" "n" "")
(command ".layer" "off" (getvar "clayer") "y" "")
(command
"layer"
"on"
"图层1,图层2,图层3," "");;这里图层可以自己加
(setvar 'cmdecho 1)
(princ)
)
(defun c:Lay1 ();;关闭特定层
(setvar 'cmdecho 0)
(setvar "Expert" 1)
(command "layer" "off" "图层1,图层2,图层3," "");;这里图层可以自己加
(setvar "Expert" 0)
(setvar 'cmdecho 1)
(princ)
) 找个关闭选择图层的程序改下就可以啦! wowan1314 发表于 2013-4-29 21:48 static/image/common/back.gif
找个关闭选择图层的程序改下就可以啦!
朋友,小弟不会啊~~ 继续帮顶,楼主几个帖子我也感兴趣!! 本帖最后由 xsso 于 2013-4-30 10:48 编辑
;;输入1后,如果想只显示a为前缀的图层,输入a*,如果图层为a-,可以输入a*、也可以a-*,模糊越大范围越大
(defun c:1(/ lay)
(setq lay (GETSTRING "\n输入想独显图层的前缀: "))
(lay_iso_* lay)
)
;;这是隐藏指定前缀的图层
(defun c:2(/ lay)
(setq lay (GETSTRING "\n输入想独显图层的前缀: "))
(lay_off_* lay)
)
;;全开图层
(defun c:3(/ lay)
(lay_iso_* "*")
)
;;下面为扩展用,如果不止一种前缀应用以下两个,填入想操作的图层即可
(defun c:5(/ lay)
(lay_iso_* (list "a*" "b*"))
)
(defun c:6(/ lay)
(lay_off_* (list "a*" "b*"))
)
加载下面两个文件即可,希望楼主不是白菜 你的另一个关联图层的那个都可以通过 5、6来完成,至于图层关联就要你自己来编写 xsso 发表于 2013-4-30 00:43 static/image/common/back.gif
你的另一个关联图层的那个都可以通过 5、6来完成,至于图层关联就要你自己来编写
谢谢你的帮助!测试了下,5,6有点问题:后面添加的图层信息不管用,只认第一个
很感动你还关注了我那个关联图层的帖子,如果关联图层想通过程序5、6来实现,图层分组信息如何添加? 因为昨晚太晚了,所以没有测试清楚,现在已经重新上传 图层控制.fas,覆盖原来的就可以
用5、6来分组,如果想将a1、a2、a3、b1篇成一个组就将它们写到5或6中,因为它不一定要模糊填写图层名,你可以将你想要的图层名完整填入 xsso 发表于 2013-4-30 00:23 static/image/common/back.gif
加载下面两个文件即可,希望楼主不是白菜
刚又测试了下,程序6对于关闭当前图层来说会出现一个选择菜单,感觉不太好,如果能处理当前图层问题那就锦上添花了,希望大侠再费点心,这个东西出来之后想必会很受欢迎的
页:
[1]
2