Layer Macro

Good Morning All,

I found this sample in the API help. I would like to use this macrobut I cannot get it to work. Could someone please lead me in theright direction for it to work.

Option Explicit



Public Enum swLineStyles_e

swLineCONTINUOUS = 0

swLineHIDDEN = 1

swLinePHANTOM = 2

swLineCHAIN = 3

swLineCENTER = 4

swLineSTITCH = 5

swLineCHAINTHICK = 6

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



Private Sub ChangeComponentLayer _

( _

swApp As SldWorks.SldWorks, _

swDraw As SldWorks.DrawingDoc, _

swDrawComp As SldWorks.DrawingComponent, _

sLayerName As String _

)

Dim bRet As Boolean



' Form a legal layer name by replacing backslash (/) and at sign(@) symbols

' with underscores

sLayerName = Replace(sLayerName, "/", "_")

sLayerName = Replace(sLayerName, "@", "_")



bRet = swDraw.CreateLayer( _

sLayerName, _

"layer for " & sLayerName, _

0, swLineCONTINUOUS, swLW_NORMAL, True): Debug.Assert bRet



swDrawComp.Layer = sLayerName

End Sub



Sub ProcessDrawingComponent _

( _

swApp As SldWorks.SldWorks, _

swDraw As SldWorks.DrawingDoc, _

swDrawComp As SldWorks.DrawingComponent, _

sPadStr As String _

)

Dim vDrawCompChildArr As Variant

Dim vDrawCompChild As Variant

Dim swDrawCompChild As SldWorks.DrawingComponent



Debug.Print sPadStr & swDrawComp.Name



ChangeComponentLayer swApp, swDraw, swDrawComp, swDrawComp.Name



vDrawCompChildArr = swDrawComp.GetChildren

If Not IsEmpty(vDrawCompChildArr) Then

For Each vDrawCompChild In vDrawCompChildArr

Set swDrawCompChild = vDrawCompChild



ProcessDrawingComponent swApp, swDraw, swDrawCompChild, sPadStr +" "

Next

End If

End Sub



Sub main()

Dim swApp As SldWorks.SldWorks

Dim swModel As SldWorks.ModelDoc2

Dim swDraw As SldWorks.DrawingDoc

Dim swSelMgr As SldWorks.SelectionMgr

Dim swView As SldWorks.View

Dim swDrawComp As SldWorks.DrawingComponent

Dim bRet As Boolean

Set swApp = Application.SldWorks

Set swModel = swApp.ActiveDoc

Set swDraw = swModel

Set swSelMgr = swModel.SelectionManager

Set swView = swSelMgr.GetSelectedObject5(1)

Set swDrawComp = swView.RootDrawingComponent



Debug.Print "File = " & swModel.GetPathName

Debug.Print " " & swView.Name & " [" & swView.Type& "]"



ProcessDrawingComponent swApp, swDraw, swDrawComp, " "

End Sub

'--------------------------------------------
SolidworksApi macros