自动修改图层颜色(索引颜色)
我希望实现的功能:预先设定,名字为"a"的图层,颜色为“1”;名字为"b"的图层,颜色为“2”……
依次类推。
当然,可以让我自由修改这些初始设定的图层名字及其对应的颜色(这里指索引颜色,不是真彩色)。
当调用程序后,直接把现有图纸上的图层,按我设定的规则,全部处理完。
这个功能一般用于建筑设计里面,非建筑专业套用建筑底图的时候,可以快速处理建筑图的颜色。
当然,需要使用者自己按喜好预先设定好各种对应值。
这里附上一个能够改为真彩色的lisp,仅供参考!
(defun c:tc()
(vl-load-com)
(setq acmCol (vla-getinterfaceobject
(vlax-get-acad-object)(strcat "AutoCAD.AcCmColor." (substr (getvar "ACADVER") 1 2))))
(vlax-for x (vla-get-layers (vla-get-activedocument (vlax-get-acad-object)))
(cond
((= (vla-get-name x) "DOTE") (vla-setrgb acmCol 0 114 153) (vla-put-TrueColor x acmCol))
((= (vla-get-name x) "dote") (vla-setrgb acmCol 0 114 153) (vla-put-TrueColor x acmCol))
((= (vla-get-name x) "wall") (vla-setrgb acmCol 0 153 114) (vla-put-TrueColor x acmCol))
((= (vla-get-name x) "WALL") (vla-setrgb acmCol 0 153 114) (vla-put-TrueColor x acmCol))
((= (vla-get-name x) "window") (vla-setrgb acmCol 0 153 204) (vla-put-TrueColor x acmCol))
((= (vla-get-name x) "WINDOW") (vla-setrgb acmCol 0 153 204) (vla-put-TrueColor x acmCol))
)
)
)
本帖最后由 开心无惧 于 2024-8-23 12:01 编辑
【KAIXIN】 发表于 2012-5-31 14:17
附件里面含:
通用函数介绍,
含输入层名改层和层对象的颜色
请问下 批量修改图层颜色时
当前操作的结果是把已存在的图形对象颜色也修改了;
但当使用其它命令把图形切换图层时(经常使用), 图形的图层已转换但是颜色未变 ,还是刚刚修改后的对象颜色;
如何在批量修改图层颜色时仅修改图层本身的颜色, 截图中特性工具栏的颜色211改为bylayer;
attach://67609.rar
学习一下,感谢大神! attach://67609.rar
学习一下,感谢大神! 没这么深吧,把图层颜色设成参数,写个自定义函数把参数传过来就行
实用(含通用函数)更新(加上错误判断)
本帖最后由 【KAIXIN】 于 2012-6-1 10:04 编辑附件里面含:
通用函数介绍,
含输入层名改层和层对象的颜色
含选取对象改层和层对象的颜色
**** Hidden Message *****
有贴必顶,好贴必顶。 看看开心老大的大作,谢了 学习中 网上找过,对我没太大作用! 我也想看一下 開心老大的源碼!!
只能看看,没币了,呵呵