unexpected results with curve modifier

I am having some unexpected results with the curve modifier for a curve in the y-z plane.

I have a blend file attached and two screen captures.

In the first image, I have the object I want to modify and the curve modified selected. I want the curve to bend the left and right sides of the object down. The not_visible.png shows the object with the modifier not visible. The modifier does bend the object along the curve but also appears to rotate the object along the 7 axis by 90 degree. The visible.png shows what the modifier appears to be doing. In the blend file the object is tread_03 and the curve is NurbCurve_large_radius.

I also have a curve named NurbsCurve which is in the x-z plane and it modifies the object along the x axis as I would expect.

I have tried rotating the curve and then applying the rotation. I have tried avoiding the curve rotation and simply move the control points in 3d in edit mode. I’ve looked at the curve tilt but don’t really know if I can make a change that would apply. I looked at local vs global coordinates but I’m assuming that applying rotation would align the two and the experiment of not rotating the curve would mean the local coordinates wouldn’t have changed. I searched articles and the posts on the message boards but am still unable to figure out what’s happening.

Does anyone know why the curve is apparently rotating my object as the curve modifier is being applied?

Attachments



tread_sample.blend (513 KB)

Tilting the curve 90° solves the problem. (Ctrl+T > 90 on windows).
The modifier needs two directions to compute the deformation: the curve’s direction and its tilt.
The object axis you choose in the modifier (object Y in your case) will be aligned with the curves direction.
With this constraint only, it’s easy to imagine that the object could then “turn” freely around its Y axis, while still having the Y axis aligned with the curve direction. Blender needs to make some kind of parameter to block this degree of freedom.
This is done using the curve’s tilt, which is used as a secondary axis to align your object X axis. You can view the tilt axis as being perpendicular to the arrows (normals) of your curve.

The order goes this way:

  • X deformation axis : object’s X axis aligned with curve direction, object’s Z axis aligned with curve tilt
  • Y deformation axis : object’s Y axis aligned with curve direction, object’s X axis aligned with curve tilt
  • Z deformation axis : object’s Z axis aligned with curve direction, object’s Y axis aligned with curve tilt
  • -X deformation axis : object’s -X axis aligned with curve direction, object’s -Y axis aligned with curve tilt
  • -Y deformation axis : object’s -Y axis aligned with curve direction, object’s -Z axis aligned with curve tilt
  • -Z deformation axis : object’s -Z axis aligned with curve direction, object’s -X axis aligned with curve tilt