Project curve on plane but keep it's lenght

unhandled

(David S. Mavrov) #1

Is there a way to project a 3D curve/surface onto 2D plane but keep its edges lenght? The idea is that I have to be able to unroll a doubly curved surface/mesh. Split it with geodesic lines and then flatten it into 2D curves.

Here is an example geometry:
Project on plane.gh (3.9 KB)

The usual Unroll components produce a result which is wrong. (See image below). The goal is to keep the area in 3D and 2D as similar as possible and also the individual edges lenghts as similar as possible also (a certain error is permisable). Also all the edges when flattened have to be orientated towards the center of their coresponding polygon as in the blue strip in the first image.

Bad result from Unroll components
wrong


(David S. Mavrov) #2

It could be made easier. I can triangulate the surface into a mesh. Then what I need is to some how project the resulting mesh triangular faces and keeping their original size. The faces need to remain connected.

Mesh Triangles.gh (2.5 KB)


(Laurent Delrieu) #3

You can use IVY for that


Or Kangaroo has also an unroller for mesh


(David S. Mavrov) #4

Yes, Ivy, Kangaroo for meshes and a bunch of other plugins which have an Unroll component for surfaces do the job well after a proper triangulation. I have managed to do this days ago. I wonder if the unrolling itself could be done without a plugin but via standard grasshopper components. Technically the task is to take the second def I have posted and align the triangles on the same plane and join them.


(Laurent Delrieu) #5

Yes and no. For my own project I did that with my own component, I also made a script to suppress inner points on meshes. What is possible is to use mesh to nurbs and then use unroller class from Rhinocommon in a little script
See here