Aftertouch 发表于 2022-7-5 16:29:11

命令反应堆不工作

大家好,
 
我在互联网上找到了下面的代码,
它将文字和图案填充对象强制放置到某个图层。
(更改图层,生成对象,再更改回来)。
出于某种原因,XATTACH命令确实会将外部参照放置在所需的图层上,但不会将当前图层设置回以前的设置。。。为什么XATTACH的行为不同于文本命令???
 

(prompt " \nLoad Only....Do NOT Run...")
(vl-load-com)

;****************************************
(vlr-command-reactor
nil '((:vlr-commandWillStart . startCommand)))
(vlr-command-reactor
nil '((:vlr-commandEnded . endCommand)))
(vlr-command-reactor
nil '((:vlr-commandCancelled . cancelCommand)))
;******************************************************
(defun startCommand (calling-reactor startcommandInfo /
             thecommandstart)
(setq OldLayer (getvar "CLAYER"))
(setq thecommandstart (nth 0 startcommandInfo))
(cond
((= thecommandstart "XATTACH") (setvar "CLAYER" "4"))
((= thecommandstart "MTEXT") (setvar "CLAYER" "4"))
((= thecommandstart "DTEXT") (setvar "CLAYER" "4"))

((= thecommandstart "HATCH") (setvar "CLAYER" "6"))
((= thecommandstart "BHATCH") (setvar "CLAYER" "6"))
);cond
(princ)
);defun
;****************************************************

(defun endCommand (calling-reactor endcommandInfo /
           thecommandend)
(setq thecommandend (nth 0 endcommandInfo))
(cond
((= thecommandend "XATTACH") (setvar "CLAYER" OldLayer))
((= thecommandend "MTEXT") (setvar "CLAYER" OldLayer))
((= thecommandend "DTEXT") (setvar "CLAYER" OldLayer))
((= thecommandend "HATCH") (setvar "CLAYER" OldLayer))
((= thecommandend "BHATCH") (setvar "CLAYER" OldLayer))

);cond
(princ)
);defun
;********************************************************
(defun cancelCommand (calling-reactor cancelcommandInfo /
              thecommandcancel)
(setq thecommandcancel (nth 0 cancelcommandInfo))
(cond
((= thecommandcancel "XATTACH") (setvar "CLAYER" OldLayer))
((= thecommandcancel "MTEXT") (setvar "CLAYER" OldLayer))
((= thecommandcancel "DTEXT") (setvar "CLAYER" OldLayer))
((= thecommandcancel "HATCH") (setvar "CLAYER" OldLayer))
((= thecommandcancel "BHATCH") (setvar "CLAYER" OldLayer))
);cond
(princ)
);defun
;*********************************************************
(princ)
页: [1]
查看完整版本: 命令反应堆不工作