嗨,丽莎。
这取决于布局选项卡的命名是否正确:
i、 e.C001、C002等。
简要测试。
- (defun c:TabNameOn ()
- (vl-load-com)
- (if (not com:react)
- (progn
- (setq com:react
- (vlr-command-reactor nil
- '((:vlr-commandWillStart . ComReactBegin)
- (:vlr-commandEnded . ComReactEnd)
- (:vlr-commandCancelled . ComReactCancel))))
- (princ "\n<<< Command reactor Switched ON >>>")
- ); end progn
- ); end if
- (princ)
- ); end of c:TabNameOn
- (defun c:TabNameOff ()
- (if com:react
- (progn
- (vlr-Remove com:react)
- (setq com:react nil)
- (princ "\n<<< Command reactor Switched OFF >>> ")
- ); end progn
- ); end if
- ); end of c:TabNameOff
- (defun ComReactBegin (react args / layname comLst nLay)
- (setq layname (getvar 'ctab))
- (setq layname (strcase (strcat "C-ANNO-" layname "-TEXT")))
- (setq comLst '(((layname 3)
- "MTEXT"
- "DTEXT"
- "TEXT"
- "EATTEXT"
- "QLEADER"
- "MLEADER"
- "LEADER"
- "REVCLOUD"
- "TABLE"
- "DATAEXTRACTION"
- )
- ) ; end comLst
- ) ; end setq
- (foreach itm comLst
- (if (member (car args) itm)
- (progn
- (if (not (tblsearch "LAYER" layname))
- (progn
- (setq nLay (vla-Add (vla-get-Layers
- (vla-get-ActiveDocument
- (vlax-get-acad-object))) layname))
- (vla-put-Color nLay (cadar itm))
- (setq com:resFlg T)
- ); end progn
- ); end if
- (setq com:oldLay (getvar 'clayer)
- com:resFlg T)
- (setvar 'clayer layname)
- ); end progn
- ); end if
- ); end foreach
- (princ)
- ); end of ComReactBegin
- (defun ComReactEnd(react args)
- (if com:resFlg
- (progn
- (setq com:resFlg nil)
- (setvar 'clayer com:oldLay)
- ); end progn
- ); end if
- (princ)
- ); end of ComReactEnd
- (defun ComReactCancel(react args)
- (if com:resFlg
- (progn
- (setq com:resFlg nil)
- (setvar 'clayer com:oldLay)
- ); end progn
- ); end if
- (princ)
- ); end of ComReactCancel
- (princ "\nType TABNAMEON to switch-on and TABNAMEOFF switch-off command reactor! ")
- (c:TabNameOn)
|