I’m thinking that the hardest part is grouping the seemingly random points… So I’m constructing a surface for each set, which should always have 4, I think!
Also, you’ll obviously have to define 4 points where your example sometimes only has 3…
How about something like…
Get geometry
Filter for geometry type = line
Get end points
Filter end point with greatest Z value
Topography by points
Topography to polysurface (springs?)
Explode polysurface to surfaces
Surface perimeter points for each surface
Sphere by 4 points for each set of perimeter points.
Split all the spheres by all the other spheres
Get the partial sphere which intersects all the 4 construction points for each surface
I think that the biggest hurdle this problem poses is how to determine which point should have a curve/connection to the other points. I think that a good approach to determine this is by doing a Delaunay triangulation - Wikipedia
In this case I assumed that all column locations lie at the same z-value. This could ofcourse be easily adapted if this is not the always the case. The Delauney Node is from the ‘spring nodes’ package btw.
From there, using the table you attached as p-value input, determining and applying the p-value for each curve is quite simple when using Local Coordinatesystems:
Thanks for your help! I tried using it and now I’m stuck at the easy part already. The List.IndexOf node retrieves -1 for all Indexes and the List.GetItemAtIndex can’t get those items. I thought about solving it like this, but sadly it didn’t work yet:
Hi @davi-id - I’ve been playing around with this in between work (Which has admittedly been busy hence the delay…) but I’ve managed to get the first part done for you using one method. This is not a Catenary yet, but rather a set of Delauny triangles between your poles.
Thank you! Works nice. I’ve been busy doing other things. But will post a follow up. So next thing will be getting this catenary and connecting it with the ground level at the edges (just like a ball would roll over this).