请问我这个颜色选择为什么不能默认先选择的物体啊
请问我这个颜色选择为什么不能默认先选择的物体啊,还有为什么执行命令后,princ的内容会重复2次啊,有高手帮我改改么;---------- 颜色切换 123 开始
(defun CC_chyanse (CC_yanse / CC_S)
(setvar "cmdecho" 0)
(setq CC_S (cadr (ssgetfirst)))
(while (or CC_S (setq CC_S (ssget ":s")))
(command "CHPROP" CC_S"" "C" CC_yanse "")
(setq CC_S nil)
)
(princ)
)
(defun c:y1 ()
(CC_chyanse "1")
(princ "\n---选择物体颜色变成 1#(红色)")
)
(defun c:y2 ()
(CC_chyanse "2")
(princ "\n---选择物体颜色变成 2#(黄色)")
)
(defun c:y0 ()
(CC_chyanse "bylayer")
(princ "\n---选择物体颜色变成bylayer(随层)")
)
(defun c:y0 ()
(CC_chyanse "bylayer")
(princ "\n---选择物体颜色变成bylayer(随层)")
(princ);这样就不会出现两次了,只能帮你这么多了
) ;---------- 颜色切换 123 开始
(defun CC_chyanse (CC_yanse / CC_S)
(setvar "cmdecho" 0)
(setq CC_S (cadr (ssgetfirst)))
(while (or CC_S (setq CC_S (ssget "i")))
(command "CHPROP" CC_S"" "C" CC_yanse "")
(setq CC_S nil)
)
(princ)
)
(defun c:y1 ()
(CC_chyanse "1")
(princ "\n---选择物体颜色变成 1#(红色)")
(princ)
)
(defun c:y2 ()
(CC_chyanse "2")
(princ "\n---选择物体颜色变成 2#(黄色)")
(princ)
)
(defun c:y0 ()
(CC_chyanse "bylayer")
(princ "\n---选择物体颜色变成bylayer(随层)")
(princ)
)
帮你改全了,看是不是你想要的效果了,要先选择对象了 琴剑江山_10184 发表于 2014-10-7 15:00 static/image/common/back.gif
;---------- 颜色切换 123 开始
(defun CC_chyanse (CC_yanse / CC_S)
(setvar "cmdecho" 0)
谢谢哥,但是还没完全达到我要的效果,我要的效果是,选择开始选择物体,那么就选择物体变色,并且可以继续选择变色的物体,如果开始没选择物体,那么就直接变成选择需要变色的物体
现在居然是命令: y1
窗口说明无效。
; 错误: 函数被取消
指定第一个角点:
窗口说明无效。
(while (or CC_S (setq CC_S (ssget "i")))改成
(while (or CC_S (setq CC_S (ssget ":s"))) 琴剑江山_10184 发表于 2014-10-7 15:31 static/image/common/back.gif
(while (or CC_S (setq CC_S (ssget "i")))改成
(while (or CC_S (setq CC_S (ssget ":s")))
还是不行,不能先选择物体,选择物体后执行命令出错 我感觉我没明白你的意思
能再说明白点不 我这里如果是先选择物体,直接报错 谢谢,已经解决了,换了chang 命令后达到了要求了 对了,贴一下代码希望大伙喜欢,最初的代码是
(defun C:y0 (/ &SS)
(setvar "CMDECHO" 0)
(princ "选择的物体颜色将变成 BYLAYER: ")
(setq &SS (ssget))
(vl-cmdf "CHPROP" &SS "" "C" "BYLAYER""")
(setvar "CMDECHO" 1)
(princ)
)
(defun C:yb (/ &SS)
(setvar "CMDECHO" 0)
(princ "选择的物体颜色将变成 Byblock: ")
(setq &SS (ssget))
(vl-cmdf "CHPROP" &SS "" "C" "Byblock" "")
(setvar "CMDECHO" 1)
(princ)
)
(defun c:y1 ()
(setvar "CMDECHO" 0)
(princ "选择的物体颜色将变成1#(红色): ")
(setq ss (ssget))
(command "CHANGE" ss "" "PROPERTIES" "C" "1" "")
(setvar "CMDECHO" 1)
(princ)
)
(defun c:y2 ()
(setvar "CMDECHO" 0)
(princ "选择的物体颜色将变成2#(黄色): ")
(setq ss (ssget))
(command "CHPROP" ss "" "C" "2" "")
(setvar "CMDECHO" 1)
(princ)
)
(defun c:y3 ()
(setvar "CMDECHO" 0)
(princ "选择的物体颜色将变成3#(绿色): ")
(setq ss (ssget))
(command "CHPROP" ss "" "C" "3" "")
(setvar "CMDECHO" 1)
(princ)
)
(defun c:y4 ()
(setvar "CMDECHO" 0)
(princ "选择的物体颜色将变成4#(兰色): ")
(setq ss (ssget))
(command "CHPROP" ss "" "C" "4" "")
(setvar "CMDECHO" 1)
(princ)
)
(defun c:y5 ()
(setvar "CMDECHO" 0)
(princ "选择的物体颜色将变成5#(蓝色): ")
(setq ss (ssget))
(command "CHPROP" ss "" "C" "5" "")
(setvar "CMDECHO" 1)
(princ)
)
(defun c:y6 ()
(setvar "CMDECHO" 0)
(princ "选择的物体颜色将变成6#(紫色): ")
(setq ss (ssget))
(command "CHPROP" ss "" "C" "6" "")
(setvar "CMDECHO" 1)
(princ)
)
(defun c:y7 ()
(setvar "CMDECHO" 0)
(princ "选择的物体颜色将变成7#(白色): ")
(setq ss (ssget))
(command "CHPROP" ss "" "C" "7" "")
(setvar "CMDECHO" 1)
(princ)
)
(defun c:y8 ()
(setvar "CMDECHO" 0)
(princ "选择的物体颜色将变成8#(灰色): ")
(setq ss (ssget))
(command "CHPROP" ss "" "C" "8" "")
(setvar "CMDECHO" 1)
(princ)
)
(defun c:y9 ()
(setvar "CMDECHO" 0)
(princ "选择的物体颜色将变成9#(浅色): ")
(setq ss (ssget))
(command "CHPROP" ss "" "C" "9" "")
(setvar "CMDECHO" 1)
(princ)
)
修改后的代码是
;通用修改颜色代码 开始
(defun CC_chyanse (CC_yanse / CC_S)
(setvar "cmdecho" 0)
(cond
((= CC_yanse "1") (princ "\n---选择物体颜色变成 1#(红色)"))
((= CC_yanse "2") (princ "\n---选择物体颜色变成 2#(黄色)"))
((= CC_yanse "3") (princ "\n---选择物体颜色变成 3#(绿色)"))
((= CC_yanse "4") (princ "\n---选择物体颜色变成 4#(兰色)"))
((= CC_yanse "5") (princ "\n---选择物体颜色变成 5#(蓝色)"))
((= CC_yanse "6") (princ "\n---选择物体颜色变成 6#(紫色)"))
((= CC_yanse "7") (princ "\n---选择物体颜色变成 7#(白色)"))
((= CC_yanse "8") (princ "\n---选择物体颜色变成 8#(灰色)"))
((= CC_yanse "9") (princ "\n---选择物体颜色变成 9#(灰白)"))
((= CC_yanse "bylayer") (princ "\n---选择物体颜色变成 bylayer (随层)"))
((= CC_yanse "byblock") (princ "\n---选择物体颜色变成 byblock (随块)"))
)
(while (setq CC_S (ssget))
(command "change" CC_S "" "p" "c" CC_yanse "")
)
(princ)
)
(defun c:y1 ()(CC_chyanse "1"))
(defun c:y2 ()(CC_chyanse "2"))
(defun c:y3 ()(CC_chyanse "3"))
(defun c:y4 ()(CC_chyanse "4"))
(defun c:y5 ()(CC_chyanse "5"))
(defun c:y6 ()(CC_chyanse "6"))
(defun c:y7 ()(CC_chyanse "7"))
(defun c:y8 ()(CC_chyanse "8"))
(defun c:y9 ()(CC_chyanse "9"))
(defun c:y0 ()(CC_chyanse "bylayer"))
(defun c:yb ()(CC_chyanse "byblock"))
;通用修改颜色代码 结束
页:
[1]
2