Hello!

I’m trying to change the weighting of the vertices of a mesh for a catenary vault so that the ceiling height is level at all points. I thought I could do this by assigning weighting of the vertices based on the length of the shortest chain it is a part of, but I can’t figure out how to do this?

I have managed to change the weighting based on distance from a point or a line, but can’t find a way to measure the shortest chain it is part of to then apply weighting to,

Attached is a grasshopper file with internalised data, the rhino file, an image showing the current solved vault as the bouncy solver takes 5 minutes to run if you start it, and an image showing what I mean by “shortest chain”.

Would really appreciate the help!

Many Thanks!

Lizzie

20230421 Vaulting Even Weighting Grasshopper Forum Help.gh (281.3 KB)

20230421 Vaulting Even Weighting Grasshopper Forum Help.3dm (19.4 MB)

Hi @Lizzie_Higham

I think it would be helpful to first take a step back and clarify what is the intent here.

The input looks like a city map, and you want to create a single vault over the entire thing?

I’m also confused about what you mean by having the ceiling height level at all points - a catenary vault cannot be a horizontal plane. Where does finding the shortest chain come into this?

Also, generally I recommend using the regular ‘Solver’ component whenever in doubt. The BouncySolver is just to see the bouncing for if you want that visual feedback (though if you’re trying to relax a mesh of an entire city block it won’t be at interactive framerates anyway), but the regular solver is faster.

Maybe the ask is for a pseudo-medial axis to establish a consistent height “roof” ridge line?

Hello,

This wasn’t what I was asking for in this post, but is now my alternative method I am looking for, if anyone could advise as to how to do this then this would be really helpful! I also used the solver instead of the bouncy solver and it is so much faster thank you for that tip!

Lizzie