[求助]请问,如何改变一个实体的颜色。
我的意思是,当选中一个实体后,改变它的颜色,以作为于其它未选中实体的区别,对实体编辑完成后还要把颜色该回去。
我用改变数据列表的方法
(setq name (car (entsel)))
(setq a (cdr (assoc 62 (entget name))))
(setq b (+ a 1))
(entmod (substr (cons '62 b) (assoc 62 (entget name)) (entget name)))
但是,如果实体的颜色是随层或随块的话,在数据列表中就没有(62.*)这一项,
这是,a的值为nil下面的程序就无法进行了,请问还有其它的方法么?
试用(command "chprop" "c" ...)
改颜色时试用(command "chprop" "c" ...), 也许方便一些。在得到图元颜色时,如果是随层,可以用tblsearch找到改图层颜色。如果是随块62号码的颜色像是0。如果要编辑的图元嵌在块里,情况还要麻烦些。
这样做,效果与AutoCAD自己的情况一致...
(Defun HDisp (hs hc)(SetQ hn 0)
(While (SetQ he (SSName hs hn))
(ReDraw he hc)
(SetQ hn (1+ hn))
)
)
(SetQ ss (SSGet));取出选择集
(HDisp ss 3);醒目显示
(GetInt);回车继续
(HDisp ss 4);正常显示
如果确实要改变实体颜色的话,就只能这样了
但是不是也得先获得实体的颜色号,如果(setq a (assoc 62 (entget (car (entsel)))))返回为nil时,在用tblsearch搜索该层的颜色号,然后在用chprop改变实体颜色对么?
谢谢陈老师,我试了,非常好用,真的和CAD自己的一样
页:
[1]