How to flatten (unroll?)curves keeping the same length

I am new on rhino 3D (I am training on a computer with rhino 5.0).
I am trying to flatten polylines and splines on a 2D surface.
My target is to keep the total length of the curve when I flatten the curve (or spline or polyline etc…)
When I use the current tools, it make the curve in 2D but only project the curve (it makes the curve projected is shorter than the curve I tried to convert).
I know the tool to measure the 3D length of the spline, but I just need to have the curved ‘unrolled’ like a flat surface.
In fact, what I am looking for is the same tool as unroll surface but for curves.
Thank you for your help.
The only way I found is to extrude the curve (to create a surface) and unroll the surface. But on each file I have around 50curves to unroll, it need to much time to do it

If I understood what you want, basically it is a line on the world Z0 plane with the same overall length as the curve?

Yes exactly, but to be full of details, here is what I am looking for the idea

Here is a pic. I want to unroll the bottom curve on y axis and unroll the yellow curves following the same location on the X axis .
see pic below:

The target is to create flat template in order to design fiberglass parts to put inside a non developable mold.
Mesh is not as accurate as I need.

Thank you for your help

I would think normal Rhino Unroll should do it, you can unroll curves, points and dots along with the surface. Then just delete the surface.

at this step, I can unroll the red curve on the bottom with some points on it to locate the starting point of each yellow line.
The only way I found is to measure the curve length and create the new line (note that all lines and splines are only 2D ones)
I tried the unroll tool but it works only for surface not for splines in 2 axis

OK, from your image above, I assumed you had a 3D surface - which could be made with a 1 or 2 rail sweep - which could then be unrolled along with the red and yellow curves.


more or less this, but it was an example,
my final taget is to extract section lines from a undeveloppable surface (made from several surface)
One section is on the X axis, and afll the other ones are on the Y axis.
Unroll the lines (it is made of lines, arc, splines etc…) of the Y axis following the unroll of the section on the x axis.
But the target is to use a function not make a measurement of the Section and create a new line.
Is it clear enough?

Here the example

red 3d volume is made of surfaces. I exported all the section every 5cm (on the red axis) and I want to unroll on the red axis the polyline on the edge of the green surface. and unroll all the yellow curves on the green axis.
Is it easier to understand?

If those yellow sections are planar and perpendicular to your spine, the ‘unrolled’ result should be a series of straight lines which are perpendicular to the unrolled spine? I’m guessing this is something that is tending towards a Grasshopper solution.

for final details, the target in fact is to flatten the red surface design.
I tried to convert it as mesh and I tried to squish the mesh but is it accurate enough.
Then I thought to create lines and unroll them. I know there is some software to do it but they are very expensive and I need to do it only a few time a years

yes that’s it, but I have not grasshopper, any other conventional ways on rhino?

Not that I know of. A script might do something I guess, but that’s probably even more complicated than GH.

Logic I guess something like this:

  • Unroll the spine curve along with all the intersection points with the yellow sections.
  • Get the lengths of each of the (half) sections on either side of the intersection point with the spine
  • Draw a line normal to the flattened spine curve at each corresponding point that is the length of the (half) section.

that’s it for sure, I can also create a starting point for the main curve at 0,0,0 coordinate.
Any helps to learn script?

Hi Nicolas - I am not at all sure I get what you are after - but possibly something like this?

UnrollMaybe.3dm (51.8 KB)


1 Like

Dear Pascal,
This is exactly what I am looking for!

Dear Pascal,
sorry your file is made with a more recent rhino than mine (5.5)

Hi Nicolas -

Here is that file in the Rhino 5 format.
UnrollMaybe-RH5.3dm (76.4 KB)

Dear Pascal

your file is the target, how can I do it?

Hi Nicholas - the ‘manual’ process is to cut all the contours in half along the centerline. Start a line at the lwer end of each line and use the nestable Length command, selecting the contour, to give the line the length of the contour curve then finish drawing the line ortho to the constrained length.
When all the lines are in place, use InterpCrv to create the outer curve.

This is probably scriptable. if you need to do it regularly.


could you happen to explain this to me too as I am also having a similar issue.