我不久前写了这篇文章,它可能会帮助你:
- (defun c:DoLayers (/ MkLay LtLoad cm)
- (vl-load-com)
- (setq cm (getvar "CMDECHO"))
- (setvar "CMDECHO" 0)
- (vl-cmdf "_.-purge" "_LA" "*" "_N")
- (setq *doc* (vla-get-ActiveDocument (vlax-get-acad-object)))
- (defun MkLay (Nme Col lTyp lWgt Plt / lay)
- (setq lay (vla-add (vla-get-layers *doc*) Nme))
-
- (and Col (vla-put-Color lay Col))
- (and lTyp (lTload lTyp) (vla-put-Linetype lay lTyp))
- (and lWgt (vla-put-LineWeight lay (eval (read (strcat "acLnWt" lWgt)))))
- (and (not Plt) (vla-put-Plottable lay :vlax-false)))
- (defun lTload (lTyp)
- (or (tblsearch "LTYPE" lTyp)
- (vla-load (vla-get-Linetypes *doc*) lTyp "acad.lin")) t)
-
- (mapcar 'MkLay
-
- '( "CEN" "DIMS" "HAT" "HID" "LOGO" "OBJ" "PAPER" "PHAN" "TITLE" "TXT") ; Name [str]
- '( 6 1 3 4 176 2 5 6 176 7 ) ; Colours [int]
- '("CENTER" nil nil "HIDDEN" nil nil "PHANTOM" "PHANTOM" nil nil ) ; LineType [str]
- '( "018" "018" "018" "015" "009" "040" nil "018" nil nil ) ; LineWeight [str] 0.18 = "018"
- '( T T T T T T nil T T T )) ; Plottable (T or nil)
-
- (setvar "CMDECHO" cm)
- (princ))
只要根据需要更改“表”。 |