Traverse Assembly at Component Level Example (VBA)
This example shows how to traverse an assembly at the component level.
It is assumed that you have an active assembly.
'------------------------------------------------------------------
Option Explicit
Sub TraverseComponent _
( _
swComp
As SldWorks.Component2, _
nLevel
As Long _
)
Dim
vChildComp As
Variant
Dim
swChildComp As
SldWorks.Component2
Dim
swCompConfig As
SldWorks.Configuration
Dim
sPadStr As
String
Dim
i As
Long
For
i = 0 To nLevel - 1
sPadStr
= sPadStr + " "
Next
i
vChildComp
= swComp.GetChildren
For
i = 0 To UBound(vChildComp)
Set
swChildComp = vChildComp(i)
TraverseComponent
swChildComp, nLevel + 1
Debug.Print
sPadStr & swChildComp.Name2
& " <" & swChildComp.ReferencedConfiguration
& ">"
Next
i
End Sub
Sub main()
Dim
swApp As
SldWorks.SldWorks
Dim
swModel As
SldWorks.ModelDoc2
Dim
swAssy As
SldWorks.AssemblyDoc
Dim
swConf As
SldWorks.configuration
Dim
swRootComp As
SldWorks.Component2
Dim
bRet As
Boolean
Set
swApp = CreateObject("SldWorks.Application")
Set
swModel = swApp.ActiveDoc
Set
swConf = swModel.GetActiveConfiguration
Set
swRootComp = swConf.GetRootComponent3(true)
Debug.Print
"File = " & swModel.GetPathName
TraverseComponent
swRootComp, 1
End Sub
'---------------------------------------