就像我在这里的最后几篇帖子中提到的,我对整个lisp都是新手。我仍在努力弄清楚它在做什么和/或意味着什么。所以我想知道是否有人可以看一下我拼凑的Lisp程序程序。这绝对不是我一个人写的。此lisp是我们从其他承包商处收到的图纸的清理程序。这似乎是正确的工作,但你们可能会有一些好的建议,像我这样的新手。
-
- (defun c:scrubdwg (/ *error* uFlag)
- (vl-load-com)
- (defun *error* (msg)
- (and uFlag (vla-EndUndoMark *doc))
- (or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")
- (princ (strcat "\n** Error: " msg " **")))
- (princ))
- (setq *doc (cond (*doc)((vla-get-ActiveDocument
- (vlax-get-acad-object)))))
- ;;; Set UCS to world
- (command "setvar" "cmdecho" 0)(command "ucsfollow" "1")
- (command "setvar" "cmdecho" 0)(command "ucs" "w")
- (command "setvar" "cmdecho" 0)(command "ucsfollow" "0")
- ;;; Detach all xrefs
- (command "setvar" "cmdecho" 0)(command "-xref" "D" "*")
- ;;; Delete all layout tabs
- (vlax-for lay (vla-get-layouts *doc)
- (if (not (eq "MODEL" (strcase (vla-get-Name lay))))
- (vla-delete lay)))
- ;;; Changes all layers to thaw, on, unlock, and .25mm lineweight. Set current layer to 0.
- (command "setvar" "cmdecho" 0)(command "-layer" "t" "*" "on" "*" "u" "*" "s" "0" "lw" "0.25" "*" "")
- ;;; Delete all layer filters
- (vl-catch-all-apply
- '(lambda ()
- (vla-remove
- (vla-getextensiondictionary
- (vla-get-layers
- (vla-get-activedocument (vlax-get-acad-object))
- ) ;_ end of vla-Get-Layers
- ) ;_ end of vla-GetExtensionDictionary
- "AcLyDictionary"
- ) ;_ end of vla-Remove
- ) ;_ end of lambda
- ) ;_ end of vl-Catch-All-Apply
- ;;; Delete all layer states
- (if (setq states (layerstate-getnames t t))
- (mapcar (function layerstate-delete) states))
- ;;; Delete all named views
- (command "setvar" "cmdecho" 0)(command "-view" "s" "junk")(command "-view" "d" "*")
- ;;; Set insertion basepoint to 0,0,0
- (command "setvar" "cmdecho" 0)(command "insbase" "0,0,0")
- ;;; Set overall, modelspace, and paperspace linetype scales to 1
- (command "setvar" "cmdecho" 0)(command "ltscale" 1)(command "msltscale" 1)(command "psltscale" 1)
- ;;; Set annotation scale to 1/4" = 1'-0"
- (command "setvar" "cmdecho" 0)(command "_CANNOSCALE" "1/4\042 = 1'-0\042")
- ;;; Delete unused scales
- (command "setvar" "cmdecho" 0)(command "-SCALELISTEDIT" "d" "*" "e")
- ;;; Erase x data
- (command "setvar" "cmdecho" 0)(command "erase" (ssget"x") "r")(princ))
- ;---------------------------------------------------------------------------------------------------------
- (defun c:scrubdwg2 ()
- ;;; Set all object colors to bylayer
- (command "setvar" "cmdecho" 0)(command "setbylayermode" "1")
- (command "setvar" "cmdecho" 0)(command "setbylayer" "all" "" "y" "y")
- ;;; Delete all regapps
- (command "setvar" "cmdecho" 0)(command "-purge" "r" "" "n")
- ;;; Run an audit on the drawing file
- (command "setvar" "cmdecho" 0)(command "audit" "y")
- ;;; Purge all unused items
- (command "setvar" "cmdecho" 0)(command "-purge" "a" "*" "n")
- ;;; Zoom extents
- (command "setvar" "cmdecho" 0)(command "zoom" "e")(princ))
|