Get Layers Example (VBA)
This example shows how to get the layers in a drawing document.
'-----------------------------------------------
Option Explicit
Public Enum swLineStyles_e
swLineCONTINUOUS
= 0
swLineHIDDEN
= 1
swLinePHANTOM
= 2
swLineCHAIN
= 3
swLineCENTER
= 4
swLineSTITCH
= 5
swLineCHAINTHICK
= 6
swLineDEFAULT
= 7
End Enum
Public Enum swLineWeights_e
swLW_NONE
= -1
swLW_THIN
= 0
swLW_NORMAL
= 1
swLW_THICK
= 2
swLW_THICK2
= 3
swLW_THICK3
= 4
swLW_THICK4
= 5
swLW_THICK5
= 6
swLW_THICK6
= 7
swLW_NUMBER
= 8
swLW_LAYER
= 9
End Enum
Sub main()
Dim
swApp As
SldWorks.SldWorks
Dim
swModel As
SldWorks.ModelDoc2
Dim
swLayerMgr As
SldWorks.LayerMgr
Dim
vLayerArr As
Variant
Dim
vLayer As
Variant
Dim
swLayer As
SldWorks.Layer
Set
swApp = Application.SldWorks
Set
swModel = swApp.ActiveDoc
Set
swLayerMgr = swModel.GetLayerManager
Debug.Print
"File = " & swModel.GetPathName
Debug.Print
" Current
Layer = " & swLayerMgr.GetCurrentLayer
Debug.Print
""
vLayerArr
= swLayerMgr.GetLayerList
For
Each vLayer In vLayerArr
Set
swLayer = swLayerMgr.GetLayer(vLayer)
Debug.Print
" "
& swLayer.Name
Debug.Print
" Color
=
" & swLayer.Color
Debug.Print
" Description
=
" & swLayer.Description
Debug.Print
" GetId
=
" & swLayer.GetId
Debug.Print
" Style
=
" & swLayer.Style
Debug.Print
" Visible
=
" & swLayer.Visible
Debug.Print
" Width
=
" & swLayer.Width
Next
End Sub
'-----------------------------------------------