I am try to modify the thickness of a lofted bend.
For my example macro, I first select the lofted bend, and then run it.
I get the definition of the feature, change the thickness value, and then call ModifyDefinition.
Nothing changes in the part, and when I call getDefinition again I can see that nothing has changed in code either.
Option Explicit
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swModelDocExt As SldWorks.ModelDocExtension
Dim swSelMgr As SldWorks.SelectionMgr
Dim swFeat As SldWorks.Feature
Dim featName As String, featType As String
Sub main()
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swSelMgr = swModel.SelectionManager
Set swModelDocExt = swModel.Extension
' Get the selected feature
Set swFeat = swSelMgr.GetSelectedObject6(1, -1)
Dim lbfd As SldWorks.LoftedBendsFeatureData
Set lbfd = swFeat.GetDefinition
Debug.Print "Thickness: " & lbfd.Thickness
lbfd.Thickness = 0.01
Dim bRet As Boolean
bRet = swFeat.ModifyDefinition(lbfd, swModel, Nothing): Debug.Assert bRet
' Debug messages follow:
' This is my changed thickness:
Debug.Print "Thickness: " & lbfd.Thickness
' See what the feature sees as the thickness:
Set lbfd = swFeat.GetDefinition
' It shows the original thickness therefore modifydefinition did not work.
Debug.Print "Thickness: " & lbfd.Thickness
End Sub
SolidworksApi macros