Files
Lesson 4.2c - modify features with traversal
Code
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swPart As SldWorks.PartDoc
Dim swFeat As SldWorks.Feature
Dim swExtrudeFeatData As SldWorks.ExtrudeFeatureData2
Dim swFilletFeatData As SldWorks.SimpleFilletFeatureData2
Sub main()
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swPart = swModel
'modify boss extrude
'########## REPLACES FEATUREBYNAME ##########
Set swFeat = swModel.FirstFeature
Do While Not swFeat Is Nothing
If swFeat.GetTypeName = "Extrusion" Then Exit Do
Set swFeat = swFeat.GetNextFeature
Loop
swFeat.Select2 False, 0
'##########################################
Set swExtrudeFeatData = swFeat.GetDefinition
swExtrudeFeatData.SetDepth True, swExtrudeFeatData.GetDepth(True) * 1.2
swFeat.ModifyDefinition swExtrudeFeatData, swModel, Nothing
'modify fillet
'########## REPLACES FEATUREBYNAME ##########
Set swFeat = swModel.FirstFeature
Do While Not swFeat Is Nothing
If swFeat.GetTypeName = "Fillet" Then Exit Do
Set swFeat = swFeat.GetNextFeature
Loop
swFeat.Select2 False, 0
'##########################################
Set swFilletFeatData = swFeat.GetDefinition
swFilletFeatData.AccessSelections swModel, Nothing
Dim swBody As SldWorks.Body2
Dim vBodies As Variant
vBodies = swPart.GetBodies2(swSolidBody, False)
Set swBody = vBodies(0) 'assume only one solid body
swFilletFeatData.Edges = swBody.GetEdges
swFeat.ModifyDefinition swFilletFeatData, swModel, Nothing
End Sub