Modeling a spiral hose [Question]

Hi Blender friends!

I’m having issues modeling a spiral hose. I want to achieve this kind of hose:

image

My aproach is have a circle and a screw modifier, then a curve modifier to achieve different shapes.

The problem is the preservation of the section of the tube. As you can see, the tube stretches where the shape is more curved:

Is there any way to avoid this? Or maybe another approach to model assets like this?

Thank you all! :slight_smile:

To bend the object I don’t think so. Unfortunately the curve modifier also deforms geometry as well. I wish it did have some sort of volume preservation. Hopefully you find an answer, because I am curios as well.

What about using just a single vertex instead of the circle as the initial mesh. You will get a spiral just as a single chain of vertices. Then add a skin modifier.

Maybe like this :

how about like this using array

flex_hose1.blend (589.3 KB)

happy bl

Another possible approach is to make a spiral as a string of vertices, then convert it to a curve and apply a bevel to it. See the crude example in the attached screen shot. In this example, note that the loops at the end almost collide, but their cross-sections are not distorted.

Hi all! Thank you so much for your answers and help! :slight_smile: Very happy to see the community helping each other.

@omgold I didn’t find a proper way to apply this method. I have some weird results.

@Benny_G That looks pretty fine! Is that using animation nodes? I don’t have any idea of animation nodes but the results look perfect!. How much freedom do you have in order to achieve different shapes of the cable? Can you apply any kind of curve to this?

@RickyBlender Thank you for sharing the .blend file! Unfortunately, this method gives the same issues stretching the shape on the critical bend angles.

@Vince_Bly Perfect! :smiley: That seems to me the best way for now to aproach this. So yeah! you made first a spiral with a single vertex and then apply the curve to mesh.
I attach some results with this method:


Thank y’all again!!