这应该可以做到:
- (defun c:ea () (c:erase_all)) ; Program Shortcut
- (defun c:erase_all (/ *error* varlist oldvars laylist ss)
- (defun *error* (msg) ; Error Trap
- (mapcar 'setvar varlist oldvars)
- (if (= msg "")
- (princ "\nFunction Complete.")
- (princ "\nError or Esc Pressed...")
- ) ;_ end if
- (princ)
- ) ;_ end defun
- (setq varlist (list "CMDECHO" "CTAB" "CLAYER")
- oldvars (mapcar 'getvar varlist)
- ) ;_ end setq
- (setvar "cmdecho" 0)
- (if (not (tblsearch "LAYER" "LINTEL"))
- (command "-layer" "M" "LINTEL" "")
- ) ;_ end if
- (setq laylist (layoutlist))
- (foreach x laylist
- (command "-layout" "D" x)
- ) ;_ end foreach
- (setvar "ctab" "MODEL")
- (command "-layer" "LO" "LINTEL" "")
- (setq ss (ssget "X" (list (cons 410 "MODEL"))))
- (command "_erase" ss "")
- (command "-purge" "A" "*" "N")
- (command "_audit" "Y")
- (*error* "") ; Force error to reset variables.
- (princ)
- ) ;_ end defun
|