fire9527
发表于 2013-5-4 21:58:20
xsso 发表于 2013-5-3 22:44 static/image/common/back.gif
高手!参考一下有什么可以学习
选择物; 错误: AutoCAD 变量设置被拒绝
fire9527
发表于 2013-5-4 22:10:20
夏生生 发表于 2013-5-3 00:54 static/image/common/back.gif
写的还是不够好,缺点是命名图层组的时候要用单字符,最好是1~9和非A英文字母,楼主的要求是基本达到了,请 ...
看起来好复杂~~~我只想要个定义好的图层组~~~可能各位有点误会我的意思了,我希望程序大致结构是这样的:
图层组1包含图层(既有通配符又有具体图层名):A*,AA*,图层1,图层2……
图层组2包含图层(既有通配符又有具体图层名):B*,BB*,图层3,图层4……
图层组3包含图层(既有通配符又有具体图层名):C*,CC*,图层5,图层6……
图层组n(可以定义若干图层组)……
然后程序运行效果是:随便选取一个图元,程序判断图元属于哪个图层组,然后将这个图层组全部图层关闭!(也可以增加独显图层组、锁定图层组等选项,但默认模式是关闭图层组),最近着急使用这个功能,非常需要,希望能朋友们能继续关注,朋友xsso 的答案已经很接近了!
xsso
发表于 2013-5-4 22:39:09
fire9527 发表于 2013-5-4 22:10 static/image/common/back.gif
看起来好复杂~~~我只想要个定义好的图层组~~~可能各位有点误会我的意思了,我希望程序大致结构是这样的: ...
通配符用了A*再写AA*有什么意义,A*已经包含了AA*,如果你想用通配符来正确选择你还是看看http://okok.org/lisp/lisp243.htm
可能你不会看表功能
(setq la1 (lay_wcmatch "E*,F*,A,B")
la2 (lay_wcmatch "D*")
la3 (lay_wcmatch "P*")
layers (list
(append '("abc") la1 la2 ) ;_ 组1 这个组包含了 D、E、F前缀的所有图层,还有A1、A2、A3图层,B前缀a-z的图层,还有abc这个图层
la3;_ 组2 P前缀的所有图层
)
ent (entget (car (entsel "\n选择物")))
lay (cdr (assoc 8 ent))
) ;_ 结束setq
这个和上次回复是一样的,只是换了行加了注释,你所说的条件完全可以达到
fire9527
发表于 2013-5-4 23:13:23
xsso 发表于 2013-5-4 22:39 static/image/common/back.gif
通配符用了A*再写AA*有什么意义,A*已经包含了AA*,如果你想用通配符来正确选择你还是看看http://okok.or ...
哈哈,搞懂明白了!就是这个效果,
layers (list
(append '("abc") la1 la2 ) ;_ 这一段可以不要的吧?因为la1、la2、la3已经分别可以定义很多图层了,另外您的程序里面是3个组,如果我要增加第四、第五各组(la4、la5)怎么增加?不好意思,我太菜了~~
fire9527
发表于 2013-5-4 23:25:57
本帖最后由 fire9527 于 2013-5-5 00:04 编辑
xsso 发表于 2013-5-4 22:39 http://bbs.mjtd.com/static/image/common/back.gif
通配符用了A*再写AA*有什么意义,A*已经包含了AA*,如果你想用通配符来正确选择你还是看看http://okok.or ...
再一看,小弟已经看明白了~~~惭愧啊,隔离效果非常好!关闭效果会延迟2~3秒,
还有个问题:选择物: 错误: AutoCAD 变量设置被拒绝: "clayer" "WINDOW_TEXT"怎么回事呢?