Leolaputa 发表于 2019-3-27 18:46:47

[菜鸡求助]如何用宏命令更改颜色

请教大佬们一个问题,在此拜谢。
我想通过CAD自带的宏命令制作按钮,目前已经有了两个按钮,如下
第一个是 ^C^C_-COLOR 1更改目前的颜色为红色

第二个是 ^C^C_-CHPROP C 1 更改目标的颜色为红色
但是我想统合两个命令为一个,就是没选中东西的时候,执行第一个。选择东西的时候,执行第二个更改目标的颜色。
因为我不会宏命令和lisp语句,所以只能求助大佬了。lisp语句应该更为简单。

1291500406 发表于 2019-3-28 16:34:22

本帖最后由 1291500406 于 2019-3-28 16:52 编辑

(defun c:bb(/ a a1 b c d)(setvar "cmdecho" 0)(setq a (getstring "\n必强提示请输入1~255色号"))(setq a1 (ssget))(setq b (sslength a1))(setq c 0)
(while (/= 0 b)(setq d (ssname a1 c))(command "chprop" d "" "c" a "")(setq b (- b 1))(setq c (+ c 1)))(princ))





ZZXXQQ 发表于 2019-3-28 10:47:41

(if (setq ss (ssget))
(command "_.CHPROP" ss "" "C" "1" "")
(command "_.COLOR" "1")
)

Leolaputa 发表于 2019-4-3 12:00:11

ZZXXQQ 发表于 2019-3-28 10:47
(if (setq ss (ssget))
(command "_.CHPROP" ss "" "C" "1" "")
(command "_.COLOR" "1")


我研究了一下官方命令宏教程。然后把你的if去掉了,完美运行,谢谢大佬。有if的好像没办法在那边运行

Leolaputa 发表于 2019-4-3 14:17:50

ZZXXQQ 发表于 2019-3-28 10:47
(if (setq ss (ssget))
(command "_.CHPROP" ss "" "C" "1" "")
(command "_.COLOR" "1")


搞了半天终于明白了。论坛复制的代码会有隐形的代码存在,复制到cad里面也看不出来。所以命令会无法运行,难怪一直会出现一些奇怪的符号出来。
页: [1]
查看完整版本: [菜鸡求助]如何用宏命令更改颜色