cad二次开发 改变线的颜色 LISP

改变线的颜色LISP

(defun C:1 ( / gp)
(setvar "cmdecho" 0)
(princ "\n★改变对象颜色为红色★")
(setq gp (ssget))
(if (/= gp nil) (command ".change" gp "" "p" "c" "1" ""))
(princ "\nOK")
(princ)
);end

这个只能改为红色,

哪位高手帮我把其他的颜色也加进去,谢谢。

2黄色,3绿色 4青色 5蓝色 6洋红 7白色……

第1个回答  2012-03-08
(defun colorchange (colornum0 colorname0 / gp)
(setvar "cmdecho" 0)
(princ (strcat "\n★改变对象颜色为" colorname0 "★"))
(setq gp (ssget))
(if (/= gp nil)
(command ".change" gp "" "p" "c" colornum0 "")
)
(princ "\nOK")
)
(setq colorlist (list '(1 "红色")
'(2 "黄色")
'(3 "绿色")
'(4 "青色")
'(5 "蓝色")
'(6
"洋红色"
)
'(7 "白色")
'(8 "灰色")
)
)
(foreach color colorlist
(setq colornum (car color)
colorname (cadr color)
)
(set 'defunname (read (strcat "C:" (itoa colornum))))
(eval
(cons 'defun
(list defunname
()
(read (strcat "(colorchange "
(itoa colornum)
"\""
colorname
"\")"
)
)
)
)
)
)
第2个回答  2012-02-26
(defun C:123 ( / gp)
(setvar "cmdecho" 0)
(setq n (getstring "\n 输入你改变的颜色值: "))
(setq gp (ssget))
(if (/= gp nil) (command ".change" gp "" "p" "c" n ""))
(princ "\nOK")
(princ)
);end本回答被提问者采纳
第3个回答  2012-03-06
(if (/= gp nil) (command ".change" gp "" "p" "c" "1" ""))
把上面这行代码最后一个“1”修改成你想要的颜色值,不知道什么颜色对应什么值,
在CAD中去手动修改一下,然后在对象管理器中查看一下。
第4个回答  2012-02-26
(defun c:ccc()
(setq cm (getvar "cmdecho"))
(setvar "cmdecho" 0)
(command "_undo" "be")
(setq col (acad_colordlg 3))
(if (setq ssa (ssget))
(command "_chprop" ssa "" "c" col "")
)
(command "_undo" "e")
(setvar "cmdecho" cm)
(princ)
)
第5个回答  2012-02-25
CAD本身就自带啦,你一个命令就可以解决了 何必呢? change 命令搞掂一切!