Open Part from Assembly Example (VBA)
This example shows how to open a part document from an assembly document.
'---------------------------------------------------
'
' Preconditions:
' (1)
Assembly document is open.
' (2)
Vertex, face, or an edge of a component is selected.
'
' Postconditions: The part document that the selected
vertex, face, or edge
' belongs,
is opened.
'
'---------------------------------------------------
Option Explicit
Public Enum swActivateDocError_e
swGenericActivateError
= &H1
swDocNeedsRebuildWarning
= &H2
End Enum
Sub main()
Dim
swApp As
SldWorks.SldWorks
Dim
swModel As
SldWorks.ModelDoc2
Dim
swModelDocExt As
SldWorks.ModelDocExtension
Dim
swSelMgr As
SldWorks.SelectionMgr
Dim
swCompEnt As
SldWorks.Entity
Dim
swPartFeat As
SldWorks.feature
Dim
swComp As
SldWorks.Component2
Dim
swCompModel As
SldWorks.ModelDoc2
Dim
swPart As
SldWorks.PartDoc
Dim
swPartEnt As
SldWorks.Entity
Dim
swConfigMgr As
SldWorks.ConfigurationManager
Dim
swCompModelConfig As
Configuration
Dim
nRetval As
Long
Dim
bRet As
Boolean
Set
swApp = Application.SldWorks
Set
swModel = swApp.ActiveDoc
Set
swSelMgr = swModel.SelectionManager
Set
swCompEnt = swSelMgr.GetSelectedObject6(1,
0)
Set
swComp = swSelMgr.GetSelectedObjectsComponent3(1,
0)
Set
swCompModel = swComp.GetModelDoc:
Debug.Assert Not swCompModel Is Nothing
Set
swConfigMgr = swCompModel.ConfigurationManager
Set
swCompModelConfig = swConfigMgr.ActiveConfiguration
Set
swModelDocExt = swCompModel.Extension
Set
swPartEnt = swModelDocExt.GetCorrespondingEntity(swCompEnt):
Debug.Assert Not swPartEnt Is Nothing
Set
swCompModel = swApp.ActivateDoc2(swCompModel.GetPathName, True, nRetval): Debug.Assert
0 = nRetval
bRet
= swPartEnt.Select4(False, Nothing):
Debug.Assert bRet
Debug.Print
"File = " + swModel.GetPathName
Debug.Print
" Comp
=
" + swComp.Name2 + "
<" + swComp.ReferencedConfiguration
+ ">" + " [" + swComp.GetPathName
+ "]"
Debug.Print
" Model
=
" + swCompModel.GetPathName
+ " <" + swCompModelConfig.Name
+ ">"
End Sub
'---------------------------------------------------