1
$\begingroup$

I created a snail-shaped curve using Bezier curve, and a straight tube using BMesh. I hope to deform the shape of the tube, so that its long axis follows the path of the curve, but the modifer does not give me the right outcome, no matter which axis I chose (neither did the translation work). Is there anything I missed? What is the key for it to function properly?

The file is attached here:

$\endgroup$
2
$\begingroup$
  • It will simplify if you set the origin of both your objects to their geometry (right click and Set Origin to Geometry)
  • Once done, put the 2 objects at the same location (select one object, press ShiftS > Cursor to Selected, select the other object and ShiftS > Selection to Cursor)
  • Create some edge loops all along your tube if you want it to bend
  • Give it the Curve modifier with the curve as Object
$\endgroup$
1
  • $\begingroup$ Thanks very much for your response! It worked! Now I just need to find a way to script it so that it can be more efficient in future because I may need to do it quite often. $\endgroup$
    – yggthir
    Feb 9 at 15:44
2
$\begingroup$

Your object needs to be subdivided down its length to be deformed by the curve. The Curve modifier does not generate vertices, it can only move them about, and 2 vertices will always be joined by a straight edge.

Beyond that, you might want to follow the steps in this recent answer. Your scales are OK, but the other steps may help you out.

BUT...

The main point of this answer is to suggest that you may not need to deform an object down this curve at all. If your profile is circular, you can use the curve's native Bevel, accessible through its Data tab > Geometry panel. The curve can generate the circular geometry by itself, and you can convert it to a mesh whenever you like.

If you need to change the profile's radius on the way down the curve, you can AltS scale the profile at any control point. In the Active Spline panel, you can change the way the radius is interpolated between control points.

$\endgroup$
2
  • $\begingroup$ Thanks so much for your response! Yes I know about increasing the bevel to convert it into tube: I added a bit of depth to the curve so that I could see it more clearly. The problem is: 1) I am not sure how large the depth represent, so example I added 10 mm to the curve (assuming my dimension setting was correct), but it was still barely visible; in comparison, my tube was supposed to be 0.18 mm and it was already way thicker 2) I also need to create patches around the tube to be bent along the curve as well. Therefore, I thought using a curve modifier for them would be more feasible. $\endgroup$
    – yggthir
    Feb 9 at 15:42
  • 1
    $\begingroup$ @yggthir There are two ways, apart from modifiers, that the radius of the tube might not be the measurement displayed in the Geometry > Bevel > Depth field: Object-Level Scale, and the per-Control-Point (Edit mode) Radius. Both are multipliers of 'Depth'. You can always convert the curve to a mesh for further editing.. e.g duplicating parts of the surface to make features. $\endgroup$ Feb 9 at 16:27

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.