试试这个:
- (defun c:BU (/ *error* CE VL OV)
- (defun *error* (Msg)
- (if
- (= 8 (logand 8 (getvar "UNDOCTL")))
- (command "._undo" "_e")
- )
- (if (not (member MSG '("Function cancelled" "quit / exit abort")))
- (princ (strcat "\nError: " MSG))
- )
- (mapcar 'setvar VL OV)
- (setvar "CMDECHO" CE)
- (princ)
- )
- (setq CE (getvar "CMDECHO"))
- (setvar "CMDECHO" 0)
- (command "._undo" "_be")
- (setq VL (list "ATTDIA" "ATTREQ" "CLAYER" "DIMSCALE" "ORTHOMODE")
- OV (mapcar 'getvar VL)
- )
- (command "._layer" "_m" "DETCUT" "_c" 4 "" "")
- (setvar "ATTDIA" 1)
- (setvar "ATTREQ" 1)
- (setvar "ORTHOMODE" 1)
- (princ "\nInsertion point: ")
- (command "._insert" "BUB" "_s" (/ (getvar "DIMSCALE") 96.) "_r" pause pause)
- (while (/= (getvar "CMDNAMES") "")
- (command pause)
- )
- (command "_.ddedit" (entlast))
- (command)
- (command "._undo" "_e")
- (mapcar 'setvar VL OV)
- (setvar "CMDECHO" CE)
- (princ)
- )
- (princ)
k |