也许是这样?
- (defun c:bd (/ *error* vlst ovar)
- (defun *error* (msg)
- (if ovar (mapcar 'setvar vlst ovar))
- (princ (strcat "\nError: " (strcase msg)))
- (princ))
- (setq vlst '("CMDECHO" "CLAYER" "FILLETRAD")
- ovar (mapcar 'getvar vlst))
- (setvar "CMDECHO" 0) (setvar "FILLETRAD" 2.0)
- (if (or (tblsearch "BLOCK" "Demo")
- (and (findfile "Demo.dwg")
- (command "_.INSERT" "Demo") (command)))
- (progn
- (if (not (tblsearch "LAYER" "Duct"))
- (command "-layer" "M" "Duct" "_C" "6" "Duct" "")
- (setvar "CLAYER" "Duct"))
- (princ "\nConstruct Duct Line...")
- (command "_pline")
- (while (> (getvar "CMDACTIVE") 0) (command pause))
- (command "_fillet" "_P" (entlast))
- (command "_measure" (entlast) "_B" "Demo" "Y" "1.5"))
- (princ "\n<!> Block Not Found <!>"))
- (mapcar 'setvar vlst ovar)
- (princ))
|