明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 875|回复: 9

[提问] 如何用ssget过滤颜色

[复制链接]
发表于 2018-7-15 17:50 | 显示全部楼层 |阅读模式
本帖最后由 13816600495 于 2018-7-15 17:52 编辑

请问群里大能之人,在用SSGET过滤颜色时,随层的对象组码62均为隐藏状态,无法获取,导致(setq ss (ssget '((62 . "1"))))这样的语句失效,请问何解?
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2018-7-15 18:42 | 显示全部楼层
"1"应该是1吧?
 楼主| 发表于 2018-7-15 18:47 | 显示全部楼层

是的,但还是无效呢,其它随层的不显示62组码
发表于 2018-7-16 09:36 | 显示全部楼层
对象颜色随层62组码值应为256,默认省略,随块62组码值为0,所以你想用ssget选择随层颜色为1的对象,无法直接做到!需要多步筛选才可以!
 楼主| 发表于 2018-7-16 11:05 | 显示全部楼层
Gu_xl 发表于 2018-7-16 09:36
对象颜色随层62组码值应为256,默认省略,随块62组码值为0,所以你想用ssget选择随层颜色为1的对象,无法直 ...

是的,用ssget筛选比较困难,我现在改用vlax-ename->vla-object方法筛选实现了,谢谢。
发表于 2018-7-16 11:35 | 显示全部楼层
ssget可以做到,分二种情况,一种就是颜色就是1,一种就是颜色随层并且图层颜色为1
第一种简单了,62组码值为1,第二种提供思路,先获取所有图层中图层颜色为1的图层的字符串,形如"图层1,图层2",然后根据图层名及62组码值为256过滤即可。
发表于 2018-7-16 13:04 | 显示全部楼层
坛内早有讨论
发表于 2018-7-17 16:32 | 显示全部楼层
;|code 6,62,370等因为随层不出现的组任意组合f"or"或"and"或者当code为nil时任意字符串,dxf当code为nil时可任意,否则不应含code里边组和-4组
(SELECTBYLAYER'((0 . "circle")) '((62 . 1)(370 . 100))"or")
(sslength(SELECTBYLAYER'((0 . "circle")) nil""))
|;
(defun Selectbylayer(dxf code f / ly)
  (setq ly(mapcar'(lambda(x)(cons(assoc 370(entget(tblobjname"layer"(cdadr x))))x))(STB"Layer"nil)))
  (ssget"X"(if code(append dxf(list(cons -4(strcat"<"f)))
                          (vl-remove'nil(apply'append(mapcar'(lambda(x)(list'(-4 . "<or")x
                                                              '(-4 . "<and")(assoc(car x)'((62 . 256)(6 . "Bylayer")))
                                                              (cons 8(apply'strcat(mapcar'(lambda(x)(strcat(cdaddr x)","))
                                                                                         (vl-remove-if-not'(lambda(y)(member x y))ly))))
                                                              '(-4 . "and>")'(-4 . "or>")))code)))
                          (list(cons -4(strcat f">"))))
            dxf)))
发表于 2018-7-18 07:19 | 显示全部楼层
说得太好了,学习了。
发表于 2018-7-18 10:59 | 显示全部楼层
感谢 llsheng_73 分享程序!!!!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-4-16 23:06 , Processed in 0.233079 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表