ds-blue-logo
Preview  |  SOLIDWORKS USER FORUM
Use your SOLIDWORKS ID or 3DEXPERIENCE ID to log in.
JRJ. R.09/03/2018

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?