This lisp displays a DCL that shows what layers are off/frozen/locked
; Turn ON, Thaw ar Unlock layers
; Stefan M. - 04.06.2013
; Edited by Jonathan Norton
(defun C:LCON ( / *error* acDoc filen filew id l layers r c l_frz l_off l_lck selected_layers prop val)
(vl-load-com)
(setq acDoc (vla-get-activedocument (vlax-get-acad-object)))
(vla-startundomark acDoc)
(defun *error* (m)
(and
m
(not (wcmatch (strcase m) "*CANCEL*,*QUIT*"))
(princ (strcat "\nError: " m))
)
(vla-endundomark acDoc)
)
(defun prompt_list ()
(start_list "a_list")
(mapcar
'add_list
(setq l (cond
((= "1" *tog1*) l_off)
((= "1" *tog2*) l_frz)
((= "1" *tog3*) l_lck)
)
)
)
(end_list)
)
(vlax-for la (setq layers (vla-get-layers acDoc))
(if (eq (vla-get-LayerOn la) :vlax-false)
(setq l_off (cons (vla-get-Name la) l_off))
)
(if (eq (vla-get-Freeze la) :vlax-true)
(setq l_frz (cons (vla-get-Name la) l_frz))
)
(if (eq (vla-get-Lock la) :vlax-true)
(setq l_lck (cons (vla-get-Name la) l_lck))
)
)
(setq l_off (acad_strlsort l_off)
l_frz (acad_strlsort l_frz)
l_lck (acad_strlsort l_lck)
)
(if (or l_off l_frz l_lck)
(progn
(setq filew (open (setq filen (strcat (getvar 'dwgprefix) "temp_layer_dialog.dcl")) "w"))
(write-line
"layer_on_dialog : dialog {
label = \"Layer Control\";
: column {
: list_box { label = \"Select Layer:\"; key = \"a_list\"; width = 40; height = 15; multiple_select = true; allow_accept = true;}
: radio_column {
: radio_button { label = \"Off Layers\"; key = \"tog1\"; }
: radio_button { label = \"Frozen Layers\"; key = \"tog2\"; }
: radio_button { label = \"Locked Layers\"; key = \"tog3\"; }}
ok_cancel;}}" filew)
(close filew)
(if
(>= (setq id (load_dialog filen)) 0)
(if
(new_dialog "layer_on_dialog" id)
(progn
(or *tog1* (setq *tog1* "1"))
(or *tog2* (setq *tog2* "0"))
(or *tog3* (setq *tog3* "0"))
(prompt_list)
(action_tile "a_list" "(setq selected_layers $value)")
(action_tile "tog1" "(setq *tog1* \"1\" *tog2* \"0\" *tog3* \"0\" selected_layers nil) (prompt_list)")
(action_tile "tog2" "(setq *tog1* \"0\" *tog2* \"1\" *tog3* \"0\" selected_layers nil) (prompt_list)")
(action_tile "tog3" "(setq *tog1* \"0\" *tog2* \"0\" *tog3* \"1\" selected_layers nil) (prompt_list)")
(set_tile "tog1" *tog1*)
(set_tile "tog2" *tog2*)
(set_tile "tog3" *tog3*)
(mode_tile "tog1" (if l_off 0 1))
(mode_tile "tog2" (if l_frz 0 1))
(mode_tile "tog3" (if l_lck 0 1))
(setq r (start_dialog))
(unload_dialog id)
)
(princ "\nWrong dialog definition")
)
(princ "\nDCL file not found")
)
(if (findfile filen) (vl-file-delete filen))
(if
(and (= r 1) selected_layers)
(progn
(setq prop (cond
((= "1" *tog1*) 'LayerON)
((= "1" *tog2*) 'Freeze)
((= "1" *tog3*) 'Lock)
)
val (cond
((= "1" *tog1*) -1)
((= "1" *tog2*) 0)
((= "1" *tog3*) 0)
)
)
(foreach x (read (strcat "(" selected_layers ")"))
(vlax-put (vla-item layers (nth x l)) prop val)
)
)
)
(vla-regen acDoc acActiveViewport)
)
(Alert "All Layers On/Active")
)
(*error* nil)
(princ)
)