Routing hoses/fuel lines in boats

What is the best way to go about routing hoses in a rhino model? For reference, I’m working in the marine industry and am responsible for creating a more accurate 3D model of our boats. I have experience with SolidWorks, but I’m struggling to figure out a quick way to make hoses go where I want them to go. I’ve been using a polyline as the rail for the pipe command, but it is tedious and not very accurate. Any suggestions/help would be much appreciated.

Whenever i do such things (not professional) I always draw straight lines only and then blend curves.
It will guarantee smooth and controlled transitions between each fragment. Piping is the last step.
For best results use GH blends.

1 Like

If you want a really flexible way to do this, create a polyline in Rhino and reference it in Grasshopper. Add fillets in Grasshopper and create a pipe in Grasshopper.

Well, if hoses are made of elastic material (i.e. plastic or rubber) they do not bend with a specific controlled radius - nor do they really have any fully straight sections. If there is a bend between two fixed connections that are a given angle to each other, the curvature will be sharpest in the middle of the bend and nearly straight at the ends. Therefore modeling straight lines for the rigid sections and using curve blends between them (with curvature continuity) for the flexible ones seems like it might be the best way of approaching this.

1 Like

So… this isn’t Rhino strictly as it uses Grasshopper and admittedly this isn’t that great but it’s a starting point that that may or may not help? I don’t have enough time to fully flush out right now but take a look at below and let me know your thoughts.

The script will take an input boat geometry and then any points on a layer called “Routing” will act as path control points.

It needs refinement to handle collisions and some additional rules for instances where you may have a combination of loose and rigid path needs.

Example of how it currently works:

Place a point somewhere around the general area you want to start the path routing, give it a unique object name like “Fuel Path 01” and then you can duplicate/Alt-Drag gumball that point as many times as you want to create control points.

The script will query all similarly named control points and build a data tree of them and then run a basic routing algorithm that follows the boat geometry.

It will also give you 90 degree corners where the routing path exceeds your angle threshold (default set to 45 degrees)

Currently it’s pretty basic in that it just traces down to the surface below it. It also needs some collision refinement.

It lets you specify a rigid or loose path.

Keep in mind currently this boat is all one disjoint mesh, which is why the pipes are routing around the furniture and such. If you update the boat reference geometry to be the hull/deck/cabin only it will make more realistic paths haha.

Also, Ideally, I would refine the logic and update it to be able to snap the paths along surfaces like walls and ceilings and such.

I know how to achieve that but I just don’t have the time right now to devote to it.



1 Like

That’s a big boat :open_mouth:

Could you use the Pipe command on a series of lines (crvs.) with the proper offset as to not colide any parts of the boat?

For the cases like this (external), I would draw curve in space using straight segments only, then projected on a top surfaces, extended segments with negative value equal to desired radius then blend the ends. Pipe command finish the job.
It can be fully automated with GH.
PS. don’t forget to elevate the projected curves with the radius value.