微笑忘记过去 发表于 2013-10-13 21:53:02

求助:怎么用宏实现判断和执行

    大家都知道CAD里的CTRL+1,可以判断执行“properties”和“propertiesclose”两个命令,CAD里面的快捷键“CTRL+1”对应的宏是$M=$(if,$(and,$(>,$(getvar,opmstate),0)),^C^C_propertiesclose,^C^C_properties) ,由于我是个菜鸟,看不太懂,但我感觉应该是通过判断系统变量来执行不同的命令。
      最近在制作一些CAD工具条时,也想模拟“CTRL+1”,想让一个工具条的按钮的宏实现两个命令的判断执行,比如我想制作一个工具按钮实现执行判断CAD是否已经加载老虎板王(结构专业绘图用的一个插件),如果已加载就执行命令“BWQ”,如何没有加载就执行命令“BW”。各位大神给点指导吧?我是菜鸟,谢谢!

ZZXXQQ 发表于 2013-10-13 22:48:24

(if (= (type C:BWQ) 'SUBR) (C:BWQ) (C:BW))

微笑忘记过去 发表于 2013-10-14 09:30:16

ZZXXQQ 发表于 2013-10-13 22:48 static/image/common/back.gif
(if (= (type C:BWQ) 'SUBR) (C:BWQ) (C:BW))

谢谢ZZXXQQ指导,我尝试你给的意见,但是好像有问题,命令行提示:
(if (= (type C:BWQ) 'SUBR) (C:BWQ) (C:BW)) ; 错误: no function definition: C:BW
不知为什么

ZZXXQQ 发表于 2013-10-14 23:02:55

微笑忘记过去 发表于 2013-10-14 09:30 static/image/common/back.gif
谢谢ZZXXQQ指导,我尝试你给的意见,但是好像有问题,命令行提示:
(if (= (type C:BWQ) 'SUBR) (C:BWQ) ...

就是没定义这个函数。

微笑忘记过去 发表于 2013-10-15 13:16:23

ZZXXQQ 发表于 2013-10-14 23:02 static/image/common/back.gif
就是没定义这个函数。

但是在CAD命令行里直接输入BW是可以加载老虎板王(结构专业的一个插件)的啊

微笑忘记过去 发表于 2013-10-15 19:32:09

谁能给点意见呢?我是菜鸟,见笑了

微笑忘记过去 发表于 2013-10-16 19:35:06

顶起啊,怎么没人指导一下呢

ZZXXQQ 发表于 2013-10-16 23:17:47

微笑忘记过去 发表于 2013-10-15 13:16 static/image/common/back.gif
但是在CAD命令行里直接输入BW是可以加载老虎板王(结构专业的一个插件)的啊

那就先加载试试
(if ((if (= (type C:BWQ) 'SUBR) (C:BWQ) (progn (load "bw") (c:bw)))
页: [1]
查看完整版本: 求助:怎么用宏实现判断和执行