AnsweredAssumed Answered

Modifying Move-Copy feature doesn't work

Question asked by J. R. on Mar 9, 2018
Latest reply on Mar 9, 2018 by J. R.

Hello,

 

I've run into a strange problem. A sub in my macro has to modify a rotation angle of the Z axis of a move-copy feature that exists in the model. The code looks like this:

 

Sub SetHeelAngle(angle)
    Dim swMoveCopyBodyFeatureData As SldWorks.MoveCopyBodyFeatureData
    Dim swFeature As SldWorks.Feature

    boolstatus = swModel.Extension.SelectByID2("Heel_Trim", "BODYFEATURE", 0, 0, 0, False, 0, Nothing, 0)
    Set myFeature = swModel.SelectionManager.GetSelectedObject6(1, -1)
    Set swMoveCopyBodyFeatureData = myFeature.GetDefinition
    swMoveCopyBodyFeatureData.TransformType = swMoveCopyBodyFeatureTransformType_e.swTransformType_Rotation
    swMoveCopyBodyFeatureData.TransformZ = (angle * PI / 180)
    myFeature.ModifyDefinition swMoveCopyBodyFeatureData, swModel, Nothing
    
    swModel.ClearSelection2 True
End Sub

 

Weird thing is, after this sub is called, it actually modifies the Z axis value, but the body is not rotated. If I manually open the feature, I can see that the rotation value is applied, but the model doesn't react. Here's a screenshot:

 

8ZbZhfF.jpg

 

As you can see, the Z value is 45 degrees, yet the model is not rotated. If I try to click OK, I get a message saying "Please define either a translation or a rotation", which kind of implies that Solidworks doesn't recognize that value. I tried rebuilding, force-rebuilding, but it's still won't rotate the model.

Interestingly enough, if I use the exact same code to define translation (skipping the swMoveCopyBodyFeatureTransformType_e.swTransformType_Rotation), then everything updates perfectly.

 

I'm sure I'm missing something obvious here, but I can't figure it out. Could anyone help, please?

Outcomes