在编写一个小插件,用到了revcloud这个命令,但在调式的时候发现,revcloud这个命令会在程序全都走完后才开始执行,原程序如下: - (defun c:tt ( / cla la )
- (setvar "cmdecho" 0)
- (setq cla (getvar "clayer"))
- (setq la "云线")
- (if (= (tblobjname "layer" la) nil)
- (command "layer" "n" la "c" 6 la "p" "n" la "")
- )
- (command "revcloud" "a" 1000 1000 "s" "c" )
- (setvar "clayer" cla )
- (setvar "cmdecho" 1)
- )
程序本想更改一下云线所在的图层,但这个程序执行调试过程中发现,(command "revcloud" "a" 1000 1000 "s" "c" )这名命令是在程序走完所有语句后才开始返回AutoCAD界面进行画云线,为什么会出现这种情况?
如果在(command "revcloud" "a" 1000 1000 "s" "c" )这个语句之前画一个矩形后,命令更改成
(command "revcloud" "a" 1000 1000 "s" "c" "o" "l" "")这样就可以按顺序运行语句,除了这种方法外,是否有其它的解决办法?
是不是有类似的需要不断输入点取信息的cad命令在采用command命令调用时都会更改顺序?
谢谢~
|