曙光一号 发表于 2002-11-2 07:29:00

[求助]请问,如何改变一个实体的颜色。

我的意思是,当选中一个实体后,改变它的颜色,以作为于其它未选中实体的区别,
对实体编辑完成后还要把颜色该回去。
我用改变数据列表的方法
(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下面的程序就无法进行了,请问还有其它的方法么?

林岸生 发表于 2002-11-2 09:45:00

试用(command "chprop" "c" ...)

改颜色时试用(command "chprop" "c" ...), 也许方便一些。在得到图元颜色时,如果是随层,可以用tblsearch找到改图层颜色。如果是随块62号码的颜色像是0。
如果要编辑的图元嵌在块里,情况还要麻烦些。

陈伯雄 发表于 2002-11-2 11:03:00

这样做,效果与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);正常显示

曙光一号 发表于 2002-11-3 10:48:00

如果确实要改变实体颜色的话,就只能这样了

但是不是也得先获得实体的颜色号,如果(setq a (assoc 62 (entget (car (entsel)))))
返回为nil时,在用tblsearch搜索该层的颜色号,然后在用chprop改变实体颜色对么?

曙光一号 发表于 2002-11-3 10:50:00

谢谢陈老师,我试了,非常好用,真的和CAD自己的一样

页: [1]
查看完整版本: [求助]请问,如何改变一个实体的颜色。