zilong136 发表于 2024-3-25 02:15:31

关于对象改色的问题?

如何优化下列代码,使其能分多次选择对象改色,且中途不空格回车。(即选即显)


[*](defun c:1 ()
[*](setvar "cmdecho" 0)
[*](princ "红色#: ")
[*](setq ss (ssget":s"))
[*](command "chprop" ss "" "c" "1" "")
[*](setvar "cmdecho" 1)
[*](princ)
[*])

xiaocainiao 发表于 2024-3-25 07:46:19

(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:55:51

本帖最后由 嘒彼小星 于 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)
)

嘒彼小星 发表于 2024-3-26 10:24:10

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)
)

你有种再说一遍 发表于 2024-3-25 03:25:39

(ssget":s:e")

ssyfeng 发表于 2024-3-25 08:38:54

楼主最近好拼啊,凌晨还在努力撸代码

zilong136 发表于 2024-3-25 09:03:41

你有种再说一遍 发表于 2024-3-25 03:25
(ssget":s:e")

这样改更不好,只能点选,而且还是要回车空格。

zilong136 发表于 2024-3-25 09:08:04

本帖最后由 zilong136 于 2024-3-25 12:14 编辑

ssyfeng 发表于 2024-3-25 08:38
楼主最近好拼啊,凌晨还在努力撸代码
白天不懂夜的黑
今天刚好满一年

咏郡 发表于 2024-3-25 20:22:42

本帖最后由 咏郡 于 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:29:58

本帖最后由 zilong136 于 2024-3-25 23:57 编辑

咏郡 发表于 2024-3-25 20:22
(defun tt1 (i / ss)
(setvar "cmdecho" 0)
(princ "按ESC退出! ")

不知道能不能改成这种效果:
左键选择对象继承上一次的颜色,右键之后再去选择的话才改为下个色号。

zilong136 发表于 2024-3-26 00:15:10

嘒彼小星 发表于 2024-3-25 21:55
根据楼上的代码改了下。不知道是不是你的意思。

希望改成这种效果:
1.支持框选
2.左键框选为同一颜色,包括多次框选
3.右键之后才换下个色号,再用左键去框选对象。
页: [1] 2
查看完整版本: 关于对象改色的问题?