Join vertices by a minimal length

Hi,
I have made a facet dome, but some of its segments are too short for continue with my desired script.
How can Iadujst the length of the facet dome segments to be more than a certain length?
I added the dome with the short segments and also added the result Im trying to achive.



facet dome.gh (7.4 KB)

Thank you.

Do you want just the curves, or also the facet surfaces?

Snapping vertices together isn’t too hard, but will break the planarity of the facets.
If you’re only using the curves this won’t matter though.

Im not sure if I need the facet.
Can you explain me the method for snapping vertices, and then I will know if I need the facet.

Here’s one way.
facet dome.gh (10.0 KB)
It uses this component (you’ll need to download and unblock it then drag the file onto grasshopper)
Topologizer.gha (19 KB)

Also if what you want is just a division of the dome into irregular polygons, remeshing and taking the dual will give more even edge lengths:
remeshdome.gh (5.9 KB)

2 Likes

Thanks a lot!
I checked it, and I realized I that do need the facet surfaces.

I see. This changes the problem, because we can no longer simply snap nearby vertices together, as that breaks the planarity of the facets.

Here’s a way you can keep the facet dome approach, but interactively drag points on the surface and see how it affects the edge lengths.
facetdome_drag.gh (18.7 KB)

Alternatively you can planarize the dual from the remeshing like this:
remeshdome_planarize.gh (16.7 KB)

4 Likes

Wow!! Thank yo so much!!

1 Like

@rajeev_pulari

The script is great, but when I generate a lot of cells it becomes a bit of a problem to adjust each and every point. Do you know of any automted way to adjust the curves of the cells to be less then a specifiec length?
Thanks again.

Did you also look at the planarize example in my reply above?
That gives flat panels, with more similar edge lengths.

It isn’t simply a matter of adjusting individual curves directly, because the curves are all linked, and created as a consequence of the facet dome calculation (which is similar to generating the Voronoi diagram on a sphere). So any solution is likely to need some form of iteration.

Here’s another approach that I just thought of and tried quickly. For each facet, it looks for the shortest edge and moves that facet’s generating point a small distance towards the middle of that edge.
It might need some refinement but seems to work decently.
Perhaps instead of just the shortest, taking an average weighted by inverse length would be better.
It uses a little hack to get round GH’s looping prevention by chaining a pair of data dams together. You’ll need to switch one of them to ‘never’ to stop it when it reaches a state you’re happy with.

facetdome_loop.gh (17.1 KB)

Yes I have checked the planarize example. I prefer the voronoi similarity for the design.
I will also try your alternative solution.