Hide Table of Contents

Get Component from Feature Example (VBA)

This example shows how to get a component in an assembly from a feature.

 

'-----------------------------------------------

'

' Preconditions: Assembly document with at least on component

'                is open.

'

' Postconditions: None

'

'-----------------------------------------------

Option Explicit

 

Dim swApp As SldWorks.SldWorks

 

Sub Main()

 

    Dim swModel      As SldWorks.ModelDoc2

    Dim swFeature    As SldWorks.Feature

    Dim swEntity     As SldWorks.Entity

    Dim bValue       As Boolean

    Dim swComponent  As SldWorks.Component2

    

    ' Connect to SolidWorks

    Set swApp = Application.SldWorks

    ' Get active document

    Set swModel = swApp.ActiveDoc

    

    

    ' Check the document is an assembly

    If (swModel.GetType <> swDocASSEMBLY) Then  

        Exit Sub        

    End If

    

    ' Clear the selection

    swModel.ClearSelection2 True

    

    ' Select a feature in a part document

    Stop

    

    ' Get the feature

    Set swFeature = swModel.SelectionManager.GetSelectedObject6(1, -1)

    

    ' Cast the feature to an entity

    Set swEntity = swFeature

    

    ' Assert the cast succeeded

    Debug.Assert (Not (swEntity Is Nothing))    

    

    Debug.Print

    

    ' Get type through entity interface

    Debug.Print "Entity type = " & swEntity.GetType

    Debug.Assert (swEntity.GetType = swSelectType_e.swSelBODYFEATURES)

    

    ' Get type through feature interface:

    ' Feature inherits from Entity, this will actually call Entity::GetType

    Debug.Print "Entity type = " & swFeature.GetType

    Debug.Assert (swFeature.GetType = swSelectType_e.swSelBODYFEATURES)

    

    ' Get the component for the entity

    Set swComponent = swEntity.GetComponent

    

    ' Print component details

    Debug.Print swComponent.Name2

    Debug.Print "  " & swComponent.GetPathName

    

    ' Clear the selection

    swModel.ClearSelection2 True

        

    ' Select the feature through the Entity interface

    bValue = swEntity.Select4(False, Nothing)

    

    ' Print the type of the selected object

    Debug.Print swModel.SelectionManager.GetSelectedObjectType3(1, -1)

    Debug.Assert (swModel.SelectionManager.GetSelectedObjectType3(1, -1) = swSelectType_e.swSelBODYFEATURES)

    

    ' Clear the selection

    swModel.ClearSelection2 True

        

    ' Select the feature through the Feature interface

    bValue = swFeature.Select2(False, 0)

  

    ' Print the type of the selected object

    Debug.Print swModel.SelectionManager.GetSelectedObjectType3(1, -1)

    Debug.Assert (swModel.SelectionManager.GetSelectedObjectType3(1, -1) = swSelectType_e.swSelBODYFEATURES)

    

End Sub



Provide feedback on this topic

SOLIDWORKS welcomes your feedback concerning the presentation, accuracy, and thoroughness of the documentation. Use the form below to send your comments and suggestions about this topic directly to our documentation team. The documentation team cannot answer technical support questions. Click here for information about technical support.

* Required

 
*Email:  
Subject:   Feedback on Help Topics
Page:   Get Component from Feature Example (VBA)
*Comment:  
*   I acknowledge I have read and I hereby accept the privacy policy under which my Personal Data will be used by Dassault Systèmes

Print Topic

Select the scope of content to print:

x

We have detected you are using a browser version older than Internet Explorer 7. For optimized display, we suggest upgrading your browser to Internet Explorer 7 or newer.

 Never show this message again
x

Web Help Content Version: API Help (English only) 2010 SP05

To disable Web help from within SOLIDWORKS and use local help instead, click Help > Use SOLIDWORKS Web Help.

To report problems encountered with the Web help interface and search, contact your local support representative. To provide feedback on individual help topics, use the “Feedback on this topic” link on the individual topic page.