Get Components in Drawing View Example (VBA)
This example shows how to get the components in a drawing view.
'----------------------------------------------
'
' Preconditions:
' (1)
Drawing document is open.
' (2)
Drawing view is selected.
'
' Postconditions: None
'
'----------------------------------------------
Option Explicit
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
swRootDrawComp As
SldWorks.DrawingComponent
Dim
vDrawChildCompArr As
Variant
Dim
vDrawChildComp As
Variant
Dim
swDrawComp As
SldWorks.DrawingComponent
Dim
swComp As
SldWorks.Component2
Dim
swCompModel As
SldWorks.ModelDoc2
Dim
i As
Long
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
swRootDrawComp = swView.RootDrawingComponent
Debug.Print
"File = " & swModel.GetPathName
Debug.Print
" View
= " & swView.Name
vDrawChildCompArr
= swRootDrawComp.GetChildren
For
Each vDrawChildComp In vDrawChildCompArr
Set
swDrawComp = vDrawChildComp
'
Returns NULL if underlying model is open in a different configuration
Set
swComp = swDrawComp.component
If
Not Nothing Is swComp Then
'
Returns NULL if drawing is lightweight
Set
swCompModel = swComp.GetModelDoc
Debug.Print
" "
Debug.Print
" Component
=
" & swComp.Name2
Debug.Print
" Configuration
=
" & swComp.ReferencedConfiguration
If
Not Nothing Is swCompModel Then
Debug.Print
" File
=
" & swCompModel.GetPathName
Debug.Print
" "
End
If
End
If
Next
End Sub
'-----------------------------