明经CAD社区

 找回密码
 注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 259|回复: 9

[源码] 求助快速选择颜色

[复制链接]
发表于 2019-7-10 16:37 | 显示全部楼层 |阅读模式
如题 文件中很多带颜色的线条曲线圆弧和圆等各种属性 并在不同的图层里面  求大神帮忙弄个快速选择颜色的 点一种颜色的所有的这种颜色被全部选中  本人菜鸟 求大神指点一下 万分感谢
发表于 2019-7-11 09:43 | 显示全部楼层
本帖最后由 1291500406 于 2019-7-12 10:24 编辑

你的这一句误导了我
--->很多带颜色的线条曲线圆弧和圆等各种属性
并在不同的图层里面
我认为你的颜色是随层色
(defun c:bb( / ls co b bb bb1 co1)(vl-load-com)
(setq ls(vla-get-layers (vla-get-ActiveDocument (vlax-get-Acad-object)))
co(vla-get-color(vla-item ls(vla-get-layer (vlax-ename->vla-object
(car(entsel "\n必强提示,请点一种颜色")))))))
(setq bb(ssget "x" ' ((0 . "SPLINE,ARC,CIRCLE")(62 . 256))) b -1  bb1 (ssadd))
(repeat (sslength bb)(setq b (1+ b)  bb2(ssname bb b) co1
(vla-get-color(vla-item ls (vla-get-layer (vlax-ename->vla-object  bb2)))))
(if(= co co1)(setq ss (ssadd bb2  bb1))))(sssetfirst nil ss)(princ))

发表于 2019-7-11 09:53 | 显示全部楼层
这是个老题目,包括 '随层'
在内都有讨论过
发表于 2019-7-11 10:15 | 显示全部楼层
不理解为什么要做这样的选择?是什么样的需求?选中后你要做什么呢?
 楼主| 发表于 2019-7-11 20:01 | 显示全部楼层
1291500406 发表于 2019-7-11 09:43
(defun c:bb( / ls co b bb bb1 co1)(vl-load-com)
(setq ls(vla-get-layers (vla-get-ActiveDocument (vl ...

这个好像不行 选中一种颜色不会显示一样的颜色都会被选中

点评

善用搜寻即有以前的资料可供参考 程序是时间磨出来的  发表于 2019-7-12 14:55
发表于 2019-7-12 10:05 | 显示全部楼层
本帖最后由 1291500406 于 2019-7-12 10:36 编辑
wjlddh 发表于 2019-7-11 20:01
这个好像不行 选中一种颜色不会显示一样的颜色都会被选中

颜色分为三种 bylayer  byblock  还有 1 ~ 255  
其中256随层色是最难的,ssget 搜索不到,
需要进一步解析随层的图层颜色
(defun c:bb( / sst obj cc  ls co b bb bb1 co1)(vl-load-com)
(if (setq sst (ssget ":E:S" '((0 . "SPLINE,ARC,CIRCLE"))))
(progn(setq obj (vlax-ename->vla-object (ssname sst 0)))
(setq cc(vla-get-color obj))(if (> cc 255)(progn
(setq ls(vla-get-layers (vla-get-ActiveDocument (vlax-get-Acad-object)))
co(vla-get-color(vla-item ls(vla-get-layer obj))))
(setq bb(ssget "x" ' ((0 . "SPLINE,ARC,CIRCLE")(62 . 256)))
b -1  bb1 (ssadd))(repeat (sslength bb)(setq b (1+ b)  
bb2(ssname bb b) co1(vla-get-color(vla-item ls
(vla-get-layer (vlax-ename->vla-object  bb2)))))
(if(= co co1)(setq ss (ssadd bb2  bb1)))))(progn
(setq ss(ssget "x"  (list '(0 . "SPLINE,ARC,CIRCLE")
(cons 62  cc))))))(vl-cmdf "REGEN")(if ss (sssetfirst nil ss)))
(alert "\n请选取样条曲线,圆或者圆弧"))(princ))

发表于 2019-7-12 10:10 | 显示全部楼层
可以使用常青藤的快速选择功能
发表于 2019-7-12 10:21 | 显示全部楼层
20060510412 发表于 2019-7-12 10:10
可以使用常青藤的快速选择功能

别人写的的工具,永远不如自己写的用起来适合,要学会自己写
发表于 2019-7-15 12:41 | 显示全部楼层
小菜版选择易,你值得拥有
http://bbs.mjtd.com/forum.php?mo ... =%D1%A1%D4%F1%D2%D7
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2019-7-22 13:37 , Processed in 0.190164 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.3

© 2001-2013 Comsenz Inc.

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