对不起,我一定是从旅行途中的某个地方捡到的。我已将其放入lisp中,它运行良好,但在完成所有操作后,命令行显示:
命令:DOERVER未知命令“DOERVER”。按F1键获取帮助。
-
- (defun c:DoerVer (/ *error* Make_Layer Layers obj ss tag)
- (vl-load-com)
-
-
- (setq Layers
- ; Old Color ; New Layer ; Layer Color ; Layer Lineweight
- '((5 . ("CCC_DOER_LA0001" 253 "000"))
- (6 . ("CCC_DOER_LA0002" 7 "000"))
- (3 . ("CCC_DOER_LA0003" 84 "030"))
- (1 . ("CCC_DOER_LA0004" 1 "030"))
- (2 . ("CCC_DOER_LA0005" 2 "000"))
- (nil . ("CCC_DOER_LA0006" 7 "000")))
- )
- (setq *doc* (cond (*doc*) ((vla-get-ActiveDocument
- (vlax-get-acad-object)))))
- (defun *error* (msg)
- (or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")
- (princ (strcat "\n** Error: " msg " **")))
- (princ))
- (defun Make_Layer (lay Col LnW)
- (cond ( (tblsearch "LAYER" lay))
-
- ( (setq lObj (vla-add (vla-get-Layers *doc*) lay))
- (vla-put-color lObj Col)
- (vla-put-lineweight lObj
- (eval (read (strcat "acLnWt" LnW)))))))
- (mapcar
- (function
- (lambda (x) (apply (function Make_Layer) (cdr x)))) Layers)
- (if (ssget "_X")
- (progn
- (vlax-for obj (setq ss (vla-get-ActiveSelectionSet *doc*))
-
- (if (setq tag (assoc (vla-get-color obj) Layers))
- (mapcar
- (function
- (lambda (x y) (vlax-put-property obj x y))) '(color layer)
- (list acByLayer (cadr tag))))
- (if (eq "TEXT" (vla-get-layer obj))
- (vla-put-color obj acByLayer)))
- (vla-delete ss)))
- (command "_.-layer" "F" "CCC_DOER_LA0005" "F" "LA0000" "")
- (command "-style" "CCC_Doer" "verdana" "0" "1" "0" "N" "N" "")
- (setq sset (ssget "_X" '((0 . "TEXT"))) i 0)
- (repeat (sslength sset)
- (setq ent (ssname sset i))
- (setq lst (entget ent))
- (setq newlst (subst (cons 7 "CCC_Doer")(assoc 7 lst) lst))
- (entmod newlst)
- (setq i (1+ i))
- (princ)
- )
- (princ)
- )
这可能是一个括号或什么东西,我没有发现,但任何想法。我包括dxf来测试它。
DOER0002.DXF |