Get Faces Affected by Draft Feature Example (VB.NET)
This example shows how to get the faces affected by a draft feature.
'---------------------------------------------------------------------------
' Problem:
' In SolidWorks, a feature is a collection of faces.
' The faces created by a feature can be retrieved using
' IFeature::GetFaces. However, certain types of features
' only affect existing faces and do not create any new faces.
' Examples of these types of features are draft and scale features.
' For these features, IFeature::GetFaces returns an
' empty array (no faces).
'
' This sample code shows how to use
IDraftFeatureData2::GetDraftedEntities
' to get the faces affected by a draft feature.
'
' Preconditions:
' 1. Open a part or assembly with a draft feature.
' 2. Fully resolve the assembly.
' 3. Select a draft feature.
'
' Postconditions:
' 1. Draft feature is deselected.
' 2. Faces affected by the draft feature are selected.
' 3. The type of draft feature as defined in swDraftFeature_e
' is printed to the Immediate window.
'----------------------------------------------------------------------------
Imports
SolidWorks.Interop.sldworks
Imports
SolidWorks.Interop.swconst
Imports
System.Runtime.InteropServices
Imports
System
Imports
System.Diagnostics
Partial
Class
SolidWorksMacro
Sub
main()
Dim
swModel As
ModelDoc2
Dim
swSelMgr As
SelectionMgr
Dim
swSelData As
SelectData
Dim
swFeat As
Feature
Dim
swDraftFeat As
DraftFeatureData2
Dim
vEnt As
Object
Dim
vEntArr As
Object
Dim
swEnt As
Entity
Dim
bRet As
Boolean
swModel = swApp.ActiveDoc
swSelMgr = swModel.SelectionManager
swSelData = swSelMgr.CreateSelectData
swFeat = swSelMgr.GetSelectedObject6(1, -1)
swDraftFeat = swFeat.GetDefinition
' Type as defined in swDraftType_e
Debug.Print(swDraftFeat.Type)
swModel.ClearSelection2(True)
' No need to roll back to get
affected faces
vEntArr =
swDraftFeat.GetDraftedEntities
For
Each vEnt
In vEntArr
swEnt = vEnt
bRet = swEnt.Select4(True,
swSelData)
Next
End
Sub
Public
swApp As
SldWorks
End
Class