Pipe made from rolled sheets

Hi Everyone,

We often get asked by customers to make pipes from simple surfaces or drawings they provide. A lot of the times these pipe are so big or deviating in size they can only be made by rolling a flat piece of sheet.

I find the current method we use for modeling these pipes to be very time consuming.

Current process:

-Draw centerline
-Revolve inner/outer walls
-Intersect where the pipes meet
-Project intersection lines to outer wall
-Trim outer wall
-OffsetSrf of outer wall to make the neutral surface
-Flatten neutral surface
-Add overlength if necessary for roll plate benders

This method will work ‘ok’ for straight pipes, but becomes very time consuming with more complex shapes and pipe reducers.

Does anyone here have any clever solutions or know of any GH/plugin to help solve our problem?

Thanks in advance!

I uploaded some screenshots to help clarify the situation

hi @Orthodynamics i am a bit unsure about not having misunderstood your problem, but i believe the command Pipe is what you are looking for which automatically intersects the edges and creates also a thickened pipe when you check thickness. you can also select a few polylines or curves at the same time and do the same command.

Hello @encephalon,

Thank you for your quick response. I believe you misunderstood our problem, when I use the pipe command it builds a pipe as a ‘pipe’, not as if it was made from a flat surface rolled into a pipe.

I hope below screenshots will make things a bit clearer

Result I get when using Pipe:

Desired result:

hi @Orthodynamics, sorry for the late reply, can you provide a test file which inhibits your geometry?

is your main problem trying to avoid such sine shaped unrolled surfaces like below needing a straight trim off?
and/or are the gaps needed for a deep secure welding?

i am playing with the idea to use squish and squish back with a straight curve for prepiped surfaces which might speed up the process, but i still did not fully understand the issue, might also be the wrong path then.

also change the topic tag to grasshopper, that might give you more attention.

Hello - Try: Make the pipe with no thickness, Explode the pipe Rhino makes, then OffsetSrf (Solid=Yes) to the desired thickness all the segments.


Hi @pascal,

I’m afraid that doesn’t work because the two pieces of pipe have to touch on the outer surface at the inside of the angle and on the inner face at the outside of the angle, so where you see a widening V in @Orthodynamics desired result you have to construct an edge that depends on the thickness of the wall. If you just take the natural intersection of two cylinders and extrude for wall thickness you get an overlap on either the outer or inner quadrant (depending on which direction you extrude).

The only simple aspect of the construction is that the edges of the V form straight lines when projected onto the plane that has been used to bisect the pipe to show the interior. Here’s a model with fatter walls to demonstrate the geometry: Fattened sheet metal intersection.3dm (291.1 KB)


Hi @jeremy5,

You beat me to the punch. It’s a nice exaggerated example:yum:

@encephalon, Jeremy provided a nice example of half a pipe and how he built it. Thanks for the tip, i"ll change the topic to grasshopper to try to get some more attention.

so the V angle is depending on the thickness of the material and the angle of the pipes?

did you maybe use PULL instead of PROJECT? can you confirm that the amended pipe has a correct V cutout? i have a deviation using PULL vs using PIPE on the intersection line (0 to surface limit) i would not know which is correct but i believe i am beginning to understand the problem. i had an idea simply using pipe with the given center lines, then using shortpath to get the deviated intersection along the perpendicular “projection” but oddly it does not work and creates a curve not even going along its on surface… i guess its a bug. so i have no faster method for now.

check.3dm (3.0 MB)

Hello @encephalon,

The V angle you refer to only depends on the angle of the pipes, not the thickness.
The thickness is an offset from the given surface, so it is always perpendicular to its length.

In the file you provided, this is also true, and it is correct.

I used pull to pull the intersection curve to the surface.

hmm yes true

maybe this speeds it up a little, use PIPE with the option THICKNESS as already suggested which will create your intersections, then explode and use FIN on those with the same (thickness) value instead of pull to create a boundary surface then trim.

Hi @encephalon,

I took a quick look at your check.3dm file: in the front view (ie projected to the xz plane) the long edges of the v gaps between pieces of pipe should all appear straight but your model shows slight curves. I’ve added a few radial lines that are perpendicular to one pipe axis to show how the flat end of the sheet metal will lie and you can see that they don’t quite intersect the developed edge, but do project to a straight line in the xz plane.

check checked.3dm (329.8 KB)


Hi @Orthodynamics,

Obviously when you roll the sheet metal some stretching is taking place (because the top face and bottom face start the same length but end up completing different circumferences). Out of interest, do you cut to the inner circumference, outer circumference, or some other length?


Hello @jeremy5,

Could you tell me what you mean with your question?

I was thinking about the manufacturing process. You are obviously designing to a high degree of accuracy and I presume that you ultimately “unroll” the pipe wall you have drawn to provide a pattern for cutting the sheet metal. But the pipe has a slightly smaller circumference on the inner surface than on the outer. The flat sheet metal will be the same on both sides and will therefore have to stretch as it is rolled into the pipe. How do you dimension the flat pattern so that the finished pipe has the correct diameter?
The question is primarily idle interest, but I was also wondering whether the stretching would affect the profile of the end that will butt up to the next pipe.

Ahh yes, I understand. The “solid” model is used to make space reservations in a 3D model and for 2D drawings/sections where all details need to be shown. We use a neutral surface for unrolling (similar to a neutral axis in a beam).