0 Members and 1 Guest are viewing this topic.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; This original Copyrighted routine has been modified...;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; AUTHOR of original code: exp-layer-info.lsp;;; Copyright© 2004 Mark S. Thomas;;; mark@theswamp.org(defun mk-file-name (/ dwg_name) (setq dwg_name (vla-get-fullname (vla-get-activedocument (vlax-get-acad-object))) ) (strcat (vl-filename-directory dwg_name) "\\" (vl-filename-base dwg_name) "-LyrList.txt" ))(defun pad (word len) (if (< len 1) ; no pad word (progn (setq spaces "") (repeat len (setq spaces (strcat spaces " "))) (strcat word (substr spaces (1+ (strlen word)))) ) ))(defun get-lw (num) (cond ((= num -3) (getenv "LWDEFAULT")) (t (itoa num)) ))(defun true-false (sym) (cond ((= sym :vlax-true) "True") ((= sym :vlax-false) "False") ))(defun arch:layersnapshot (/ act_doc layer_obj fn fo layerlist tmp header lst idx line maxcol maxltype maxname) (setq act_doc (vla-get-activedocument (vlax-get-acad-object)) layer_obj (vla-get-layers act_doc) ) (setq fn (mk-file-name)) (setq fo (open fn "w")) ;; gather up layer info (vlax-for lay layer_obj (setq layerlist (cons (list (vla-get-name lay) (true-false (vla-get-layeron lay)) (true-false (vla-get-freeze lay)) (true-false (vla-get-lock lay)) (vla-get-linetype lay) (itoa (vla-get-color lay)) (get-lw (vla-get-lineweight lay)) (vla-get-plotstylename lay) (if (vlax-property-available-p lay 'description) (vla-get-description lay) ) ) layerlist ) ) ) ;; sort on layer name (setq layerlist (vl-sort layerlist '(lambda (e1 e2) (< (car e1) (car e2))))) ;; get max length of strings (setq maxname 0 maxltype 0 ) (foreach itm layerlist (setq maxname (max maxname (strlen (car itm))) maxltype (max maxltype (strlen (nth 4 itm))) ) ) ;; list of column widths (setq maxcol (list (+ maxname 3) 8 8 8 (+ maxltype 3) 10 8 8 0)) ;; pad out the header (setq idx 0 tmp "" ) (foreach itm '("Layer Name" "On" "Frozen" "Locked" "Linetype" "Color" "LW" "Plot" "Description" ) (setq header (if header (strcat header (pad itm (nth idx maxcol))) (pad itm (nth idx maxcol)) ) idx (1+ idx) ) ) ;; write the header (write-line header fo) (write-line (repeat (strlen header) (setq tmp (strcat "-" tmp))) fo) ;; write eaCH LAYER line (foreach itm layerlist (setq line "" idx -1 ) (write-line (foreach str (vl-remove nil itm) (setq idx (1+ idx) line (strcat line (pad str (nth idx maxcol))) ) ) fo ) ) (close fo) (princ))(arch:layersnapshot);;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;(princ)
"The more I learn, the more I change my mind."