AnsweredAssumed Answered

ModifyDefinition not making changes

Question asked by Duncan M. on Sep 28, 2016
Latest reply on Sep 29, 2016 by Duncan M.

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