Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 03/31/2019 in all areas

  1. 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) )
    1 point
  2. Another way: (vlax-get Obj 'InsertionPoint)
    1 point
  3. Thanks that is ideal. I tried this method earlier without the variant value and it didn't work
    1 point
×
×
  • Create New...