Extract parallel mesh edges for gridshell simulation

I need to simulate gridshell structure with Kangaroo. So far I used mesh to achieve the effect (hinge and lenght goals). But I’d rather use beams (rods with anchors) which should be more realistic, right?

My idea is to extract and join parallel edges from input mesh and feed it into Kangaroo as rods (so I can specify rigidity). Is there a way how to do so or is it OK to use mesh? My goal is to analyse curvature of the result (because of construction).

My simulation works fine with three support grid:

The problem is when I have four supports:

I tried to triangulate faces, which brings better result. But it’s harder to evaluate result for maximal curvature.

My script attached. Using Kangaroo.
002_GridShell_GH.gh (29.6 KB)

Thanks for any help.


I think working with the non-triangulated quad mesh is the best way to go here, as it is simpler and this is how the gridshell would be erected, with diagonal bracing added later.
You don’t want to completely anchor the diagonal line of nodes at the corner with their original spacing though - what allows the grid to form a doubly curved surface is the freedom of the quads to turn into diamonds and change the length of their diagonals - I think that’s why you see that distortion in your second image. So it is better to pull them onto a curve, while allowing them to slide along this curve.
Also, rather than starting by making the mesh with the corners cut and triangular faces at the base, it is easier to work with the full quad mesh during the form-finding, and then get rid of the bits you don’t need after.
All these things are shown in this example:


Thank You for prompt response. I tried the way You described on GitHub and it’s working now.
Anyway, I was thinking of the ability to sort random lines into groups by similarities of its vectors. I will add solution here as soon as I find one.

Thank You againg for help. You may consider adding “support” button at Kangaroo’s website :wink: