Delete a Smart Feature Example (VB.NET)
This example shows how to delete a feature from a Smart Component.
'----------------------------------------------------------------------------
' Preconditions:
' 1. Open:
' install_dir\samples\tutorial\api\holeCube.sldprt.
' 2. The Features folder of the Smart Feature contains two extrusion
features.
'
' Postconditions: One extrusion feature is deleted from the Features folder
' of the Smart Feature.
'
' NOTE: Because the model is used elsewhere,
' do not save changes when closing it.
'
---------------------------------------------------------------------------
Imports
SolidWorks.Interop.sldworks
Imports
SolidWorks.Interop.swconst
Imports
System.Runtime.InteropServices
Imports
System
Imports
System.Diagnostics
Partial
Class
SolidWorksMacro
Dim
featMgr As
FeatureManager
Dim
myFeature As
Feature
Dim
swTrainAss As
ModelDoc2
Dim
swSmartPart As
ModelDoc2
Dim
swSCFD As
SmartComponentFeatureData
Dim
selMgr As
SelectionMgr
Dim
feat As
Feature
Dim
feats As
Object
Dim
obj As
Object
Dim
i As
Long
Dim
count As
Long
Dim
boolstatus As
Boolean
Sub
main()
swSmartPart = swApp.ActiveDoc
featMgr = swSmartPart.FeatureManager
feats = featMgr.GetFeatures(True)
count = featMgr.GetFeatureCount(True)
For
i = 0 To
count - 1
myFeature = feats(i)
If
myFeature.Name = "Smart Feature"
Then
Debug.Print(myFeature.Name)
swSCFD = myFeature.GetDefinition
' Open the training
assembly of the Smart Component
'
Open the SmartComponent PropertyManager page to access its selection lists
boolstatus = swSCFD.AccessSelections(True)
swTrainAss = swApp.ActiveDoc
selMgr = swTrainAss.SelectionManager
Debug.Print("Number of
features: " & selMgr.GetSelectedObjectCount2(swSmartComponentSelectionTypes_e.swSmartComponentFeatures))
Debug.Print("Number of
components: " & selMgr.GetSelectedObjectCount2(swSmartComponentSelectionTypes_e.swSmartComponentComponents))
' Get the first extrusion
from the features selection list
obj = selMgr.GetSelectedObject6(1,
swSmartComponentSelectionTypes_e.swSmartComponentFeatures)
feat = obj
' To delete an extrusion
feature from a Smart Component,
'
re-select it in the Smart Features selection list
boolstatus = feat.Select2(True,
swSmartComponentSelectionTypes_e.swSmartComponentFeatures)
' Modify the definition of
the Smart Feature,
'
close the training assembly, and rebuild the Smart Component
boolstatus = myFeature.ModifyDefinition(swSCFD,
swSmartPart, Nothing)
End
If
Next
End
Sub
Public
swApp As
SldWorks
End
Class