我建议用反应堆作为解决方案
我不确定快速扑救是否有效,需要一点尝试和错误。
下面是一个示例,任何dim都可以转到dim层
- (vl-load-com)
- (vlr-command-reactor nil '
- ((:vlr-commandWillStart . startCommand)
- (:vlr-commandEnded . endcancelCommand)
- (:vlr-commandCancelled . endcancelCommand))
- ); end vlr-command-reactor
- ;******************************************************
- (defun startCommand (calling-reactor startcommandInfo)
- (if (= 1 (getvar "dimlfac"))
- (setvar "dimclrt" 2)
- (setvar "dimclrt" 3)
- )
- (if (wcmatch (car startcommandInfo) "DIM*")
- (progn
- (setq dimOldLayer (getvar "CLAYER"))
- (setvar "CLAYER" "dim"))
- ); end if
- (princ)
- );defun
- ;****************************************************
- (defun endcancelCommand (calling-reactor endcommandInfo)
- (if(wcmatch (car endcommandInfo)"DIM*")
- (progn
- (if (= dimoldlayer "dim")
- (setvar "CLAYER" "yellow")
- (setvar "CLAYER" dimoldlayer)
- )
- (setvar "dimclrt" 2)
- )
- ); end if
- (princ)
- );defun
|