Get Component Name From Selected Entity Example (VBA)
This example shows how to get the name of a component to possibly use
with a future call to IModelDocExtension::SelectByID2,
when selectively opening the assembly document and specific components
using ISldWorks::OpenDoc7
and IDocumentSpecification,
etc. This example also shows how to set and get a component reference.
'---------------------------------------------------------------------------
' Preconditions:
' 1. An assembly document, with components, is open and active.
' 2. An entity (face, edge, vertex, or loop) on any component is selected.
'
' Postconditions: A component reference is added to the
component to which
' the
entity belongs.
'---------------------------------------------------------------------------
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swSelectionMgr As SldWorks.SelectionMgr
Dim swEntity As SldWorks.Entity
Dim swComponent As SldWorks.Component2
Sub main()
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
' Get the selected entity (i.e., face, edge, vertex, or
loop)
' and get the name of its component
Set swSelectionMgr = swModel.SelectionManager
Set swEntity = swSelectionMgr.GetSelectedObject6(1,
-1)
Set swComponent = swEntity.GetComponent
' Print the name of the component to which the
' the selected entity belongs
Debug.Print "Name of component to which the selected
entity belongs: " & swComponent.GetSelectByIDString
' Set a component reference to this component
swComponent.ComponentReference
= "TestComponentReference"
Debug.Print "Component reference
added to the component to which the selected entity belongs: " &
swComponent.ComponentReference
' Rebuild the assembly to see the component
reference
' beside the name of the component in
the FeatureManager design
' tree
swModel.ForceRebuild3
True
End Sub