Type 01
(defun C:LL () ( c:LAYER_UP ))
(defun c:LAYER_UP ()
(command "layer" "m" "LAYER NAME1" "lt" "continuous" "" "c" "1" "" "") ; 1 RED
(command "layer" "m" "LAYER NAME2" "lt" "continuous" "" "c" "2" "" "") ; 2 YELLOW
(command "layer" "m" "LAYER NAME3" "lt" "continuous" "" "c" "3" "" "") ; 3 GREE COLOR
(command "layer" "m" "LAYER NAME4" "lt" "continuous" "" "c" "4" "" "") ; 3 CYAN COLOR
(command "layer" "m" "LAYER NAME5....N+1NAME" "lt" "continuous" "" "c" "5" "" "") ; 3 BLUE COLOR
(princ)
)
Type 02
(defun c:NL ( / *error* check_name acdoc ss fname op_file dcl name r i la col)
(if (setq ss (ssget "_I")) (setq ss (ssget ":L")))
(setq acDoc (vla-get-activedocument (vlax-get-acad-object)))
(if (= 8 (logand (getvar 'undoctl) 8)) (vla-endundomark acDoc))
(vla-startundomark acDoc)
(defun *error* (msg)
(and
msg
(not (wcmatch (strcase msg) "*CANCEL*,*EXIT*,*QUIT*,*BREAK*"))
(princ (strcat "\nError: " msg))
)
(if fname (vl-catch-all-apply 'vl-file-delete (list fname)))
(vla-endundomark acDoc)
(princ)
)
(setq
fname (vl-filename-mktemp "newlayer" (getvar 'dwgprefix) ".dcl")
op_file (open fname "w")
)
(foreach x
'("newlayer : dialog {"
": edit_box {alignment = left; key = \"name\"; edit_width = 50;}"
": text { alignment =right; label = \"ADDLAYER/COLOR\";}"
"ok_cancel;"
"errtile;}"
)
(write-line x op_file)
)
(close op_file)
(defun check_name (str)
(if
(wcmatch str "*<*,*>*,*/*,*\\*,*:*,*;*,*`?*,*`**,*|*,*`,*,*=*,*``*")
(progn
(set_tile "error" "Caracter Invalido, Não Use <>/\\\":;?*|,=`")
(mode_tile "name" 2)
)
(set_tile "error" "")
)
)
(if
(and
(> (setq dcl (load_dialog fname)) 0)
(new_dialog "newlayer" dcl)
)
(progn
(set_tile "name" (setq name (cond (ss (cdr (assoc 8 (entget (ssname ss 0))))) (""))))
(action_tile "name" "(setq name $value) (check_name name)")
(setq r (start_dialog))
(unload_dialog dcl)
)
)
(if
(and
(= r 1)
(/= name "")
)
(progn
(if
(not (tblsearch "layer" name))
(progn
(setq la (vla-add (vla-get-layers acdoc) name))
(if
(setq col (acad_colordlg 7))
(vla-put-color la col)
)
T
)
(setq la (vla-item (vla-get-layers acdoc) name))
)
(if
(/= name (getvar 'clayer))
(progn
(vla-put-freeze la :vlax-false)
(setvar 'clayer name)
)
)
(if ss
(repeat (setq i (sslength ss))
(vla-put-layer (vlax-ename->vla-object (ssname ss (setq i (1- i)))) name)
)
)
)
)
(*error* nil)
(princ)
)