关于对象改色的问题?
如何优化下列代码,使其能分多次选择对象改色,且中途不空格回车。(即选即显)[*](defun c:1 ()
[*](setvar "cmdecho" 0)
[*](princ "红色#: ")
[*](setq ss (ssget":s"))
[*](command "chprop" ss "" "c" "1" "")
[*](setvar "cmdecho" 1)
[*](princ)
[*])
(defun c:1 ()
(setvar "cmdecho" 0)
(princ "红色#: ")
(while (setq ss (ssget":s"))
(command "chprop" ss "" "c" "1" "")
)
(setvar "cmdecho" 1)
(princ)
)
是这个意思吧 本帖最后由 嘒彼小星 于 2024-3-25 21:57 编辑
根据楼上的代码改了下。不知道是不是你的意思。
(defun c:tt(/ i en1 en2)
(setvar "cmdecho" 0)
(setq i 1)
(while t
(princ "按ESC退出!")
(setq en1(car(entsel "\n颜色的第一个对象")))
(command "chprop" en1 "" "c" (itoa i) "")
(setq en2(car(entsel "\n颜色的第二个对象")))
(command "chprop" en2 "" "c" (itoa i) "")
(setq i (1+ i))
)
(setvar "cmdecho" 1)
(princ)
) zilong136 发表于 2024-3-26 00:15
希望改成这种效果:
1.支持框选
2.左键框选为同一颜色,包括多次框选
(defun c:tt(/ i ss)
(setvar "cmdecho" 0)
(setq i 1)
(while t
(princ "选择对象,按ESC退出!")
(setq ss(ssget))
(command "chprop" ss "" "c" (itoa i) "")
(setq i (1+ i))
)
(setvar "cmdecho" 1)
(princ)
) (ssget":s:e") 楼主最近好拼啊,凌晨还在努力撸代码 你有种再说一遍 发表于 2024-3-25 03:25
(ssget":s:e")
这样改更不好,只能点选,而且还是要回车空格。 本帖最后由 zilong136 于 2024-3-25 12:14 编辑
ssyfeng 发表于 2024-3-25 08:38
楼主最近好拼啊,凌晨还在努力撸代码
白天不懂夜的黑
今天刚好满一年
本帖最后由 咏郡 于 2024-3-25 20:25 编辑
(defun tt1 (i / ss)
(setvar "cmdecho" 0)
(princ "按ESC退出! ")
(if(setq ss (ssget":s"))
(command "chprop" ss "" "c" (itoa i) ""))
(setvar "cmdecho" 1)
(princ)
)
(defun c:2(/ i)
(setq i 1 )
(while t
(tt1 i)
(setq i (1+ i))
)
)
这个不知是不是楼主想要的 本帖最后由 zilong136 于 2024-3-25 23:57 编辑
咏郡 发表于 2024-3-25 20:22
(defun tt1 (i / ss)
(setvar "cmdecho" 0)
(princ "按ESC退出! ")
不知道能不能改成这种效果:
左键选择对象继承上一次的颜色,右键之后再去选择的话才改为下个色号。
嘒彼小星 发表于 2024-3-25 21:55
根据楼上的代码改了下。不知道是不是你的意思。
希望改成这种效果:
1.支持框选
2.左键框选为同一颜色,包括多次框选
3.右键之后才换下个色号,再用左键去框选对象。
页:
[1]
2