(defun c:layerxls (/ dirname, file,
count, f, row,
LayerName, layercolornum, LayerLineType,
layerstatnum, LayerStatus, LayerColor
)
(setq
dirname (getfiled "Select a location to save the layer list..."
"layers.csv"
"csv"
1
)
)
(setq file (open dirname "w"))
(write-line
(strcat "Layer List for "
(getvar "dwgprefix")
(getvar
"dwgname"
)
)
file
)
(write-line "" file)
(write-line "NAME, COLOR, LINETYPE, STATUS" file)
(setq count 0)
(setq f 1)
(while (setq row (tblnext "LAYER" f))
(setq f nil)
(setq LayerName (cdr (assoc 2 row)))
(setq layercolornum (cdr (assoc 62 row)))
(setq LayerLineType (cdr (assoc 6 row)))
(setq layerstatnum (cdr (assoc 70 row)))
(if (= layerstatnum 1)
(setq LayerStatus "FROZEN")
(setq LayerStatus "THAWED")
)
(if (< layercolornum 8)
(cond
((= layercolornum 1) (setq LayerColor "RED"))
((= layercolornum 2) (setq LayerColor "YELLOW"))
((= layercolornum 3) (setq LayerColor "GREEN"))
((= layercolornum 4) (setq LayerColor "CYAN"))
((= layercolornum 5) (setq LayerColor "BLUE"))
((= layercolornum 6) (setq LayerColor "MAGENTA"))
((= layercolornum 7) (setq LayerColor "WHITE"))
)
(setq LayerColor (rtos layercolornum 2 0))
)
(setq txt (strcat LayerName "," LayerColor
"," LayerLineType
"," LayerStatus
)
)
(write-line txt file)
(setq count (+ count 1))
)
(close file)
(princ count)
(princ (strcat " layers have been written to "
dirname
"."
)
)
(princ
"\nDouble-click on this file to open in Microsoft Excel."
)
(princ)
)
(princ
"\nType LAYERXLS to generate a listing of the current drawing's layer
set."
)