9
$\begingroup$

I modelled a part of a bicycle chain added an Array and a Curve Modifier enter image description here

everything worked nicely until I added cogs and translated and scaled the chain parts to fit the cogs.

I tried to apply transformations, re-added the Curve Modifier but had no success, it still deforms the chain that strange:

enter image description here

Before I messed it up it looked like this:

enter image description here

How could it be fixed?

.blend

$\endgroup$
  • $\begingroup$ Try moving the chain object up on the Z-axis. There is some distortion of the chain links, but I'm not sure if that is part of your question or not.. $\endgroup$ – gandalf3 Apr 2 '14 at 6:57
  • $\begingroup$ Thanks moving the z-axis aligns the array to the curve again. And yes I would like to know why the chain-links get distorted shouldn't they preserve their length? $\endgroup$ – stacker Apr 2 '14 at 7:05
  • $\begingroup$ It's not their length being stretched, but their height. I can't think of any way around this except manually scaling to compensate.. Anyway, see this post for possible techniques to array an object along a curve without distortion. $\endgroup$ – gandalf3 Apr 2 '14 at 8:02
12
$\begingroup$

enter image description here

If you want the chain to follow the curve, move it to the origin of the curve (they need a common center).

Select the curve, press Shift-S and select Cursor to Selected select the chain, press Shift-S and select Selection to Cursor

Then apply your curve modifier and the chain will follow the curve correctly.

The deformation is fixed scaling the object

$\endgroup$
  • $\begingroup$ Did you add a driver to the chain's scale just to highlight it in the image? $\endgroup$ – David Sep 18 '14 at 18:46
  • $\begingroup$ @David I can't remember, It might be a leftover form a previous version of the answer where I changed the scale on X $\endgroup$ – cegaton Sep 18 '14 at 18:59
2
$\begingroup$

OK, this is a few years old, but I found this recently so I suspect other will to. I think it's incomplete and thought I'd share.

The question was: "Why is the Curve Modifier deforming strangely?" The short answer is: It obeys exactly what has been done to the curve.

Clarification: If you reached the current state of the curve using transforms like, Scale, rotate and Location, this will be done to the object you apply the curve to. Take a look at the Transform properties [CTRL-N] and look at the Scale and Rotate. If this is not (1;1;1) and (0;0;0) respectively, that modification will be applied to your object/array. To avoid this, apply every aspect of Transform using Apply Object Transform [CTRL-A] + Rotation & Scale before adding the curve modifier.

Bad state when adding modifier][1

Apply Object Transform [CTRL-A] + Rotation & Scale

Good state when adding modifier][1]] [1] state when adding modifier][1

NOTE! If you got of to a bad start, remove the modifier before applying transform [CTRL-A]. It get's confusing when trying to adjust with the modifier in place (mute or not!). If you did it all correctly and something is still mirrored or turned inside out, fix it with clean set of factor -1 transforms and Apply transform before doing anything else.

I recently tried to apply a circular curve to an array but found it following the inside of the curve instead of the expected outside. Fixed it with a set of Scale -1 on two of the axis and Apply Scale. I think it got the result from the order in which I mirrored the object before applying the array. Aka, if you mirror from negative side of the coordinate space to the positive, it will give different result compared to starting with all positive vectors and mirror to negative side. (Applies to X, Y Z respectively with different result). This is basically an observation of previous answers "Honor the predominant axis and direction" answers I have seen.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.