Originally Posted by
jeffl.63037
or any other file format that can be printed and submitted. I used to use a routine from DotSoft.com called layerhtm, but it doesn't include the description column.
Try this. It will output to a CSV file.
Code:
Sub Layerlist()
Dim fn As String
Dim ff As Integer
Dim item As IAcadLayer2
Dim color As AcadAcCmColor
Dim myLayer As AcadLayer
Dim xStr As String
fn = "c:\layerlist.csv"
Open fn For Output As #1
Print #1, "Name,On,Freeze,Lock,Color,Linetype,Lineweight,Plot,Description"
For Each myLayer In ThisDrawing.Layers
xStr = myLayer.name & Chr(44)
If myLayer.LayerOn = True Then
xStr = xStr & "ON" & Chr(44)
Else
xStr = xStr & "OFF" & Chr(44)
End If
If myLayer.Freeze = True Then
xStr = xStr & "FROZEN" & Chr(44)
Else
xStr = xStr & "THAWED" & Chr(44)
End If
If myLayer.Lock = True Then
xStr = xStr & "LOCKED" & Chr(44)
Else
xStr = xStr & "UNLOCKED" & Chr(44)
End If
Dim tmp As String
Dim colidx As String
Dim R As Integer, g As Integer, b As Integer
Set col = myLayer.TrueColor
If col.ColorMethod = acColorMethodByACI Then
colidx = col.ColorIndex
Else
colidx = col.red & "/" & col.green & "/" & col.blue
End If
xStr = xStr & colidx & Chr(44)
xStr = xStr & myLayer.Linetype & Chr(44)
xStr = xStr & Format((myLayer.Lineweight * 0.001), "0.000") & Chr(44)
If myLayer.Plottable = True Then
xStr = xStr & "PLOT" & Chr(44)
Else
xStr = xStr & "NOPLOT" & Chr(44)
End If
xStr = xStr & myLayer.Description
Print #1, xStr
Next myLayer
Close #1
End Sub