I am working on a curved geometry that is divided into 144 individual segments, each defined as a closed curve. Every segment represents a unique glass panel (for example, panel no. 35 in the attached image).
Each final glass panel (shown in red) is not produced directly. Instead, it is cut from a rectangular raw glass panel (shown with a green dashed outline) that fully contains the final shape. Therefore, for every segment, I first need to generate this ideal rectangular glass size, and then cut the panel geometry from it.
My goal in Grasshopper is to set up the following workflow:
Convert each segment curve into a planar surface
For each surface, find the minimum / optimal oriented bounding rectangle (not axis-aligned)
Extract the rectangle dimensions (width, height, area, etc.) as fabrication data
Use this rectangle to trim/cut the final panel geometry for verification
My main questions are:
What is the most reliable way in Grasshopper to generate an oriented bounding rectangle for a planar surface?
Since the standard Bounding Box component is axis-aligned, how can I align the rectangle to the panel’s orientation?
Is there a recommended parametric workflow to apply this process efficiently to all 144 panels?
Any suggestions, example definitions, or fabrication-oriented workflows (glass, CNC, sheet cutting, etc.) would be greatly appreciated.
I think this point alone is something that has to be solved before even thinking about anything else
your current surfaces are all non-planar, if you want to get those from planar sheets of glass, they need to be transformed into planar shapes first, and that will probably influence how they flow along the facade…
Thank you very much for your help. The thickness of the glass is not important, actually. I just want to calculate roughly what the ideal m2 is for each glass panel. Therefore, I can make these curved panels directly planar without considering any k factor or thickness because these surfaces will be the outer faces of the glass, and it is sufficient to specify them as outer faces.
The curved panels don’t quite have co-planar corners, thanks to the curve of the source surface. Therefore I find a plane that best fits and use that as the basis for the bounding box, oriented to the longest panel edge. Then I can copy all the panels into an array on the XY plane for issue to the fabricator (after offsetting them a suitable amount to account for frames of course!)
Note that because we’re working with a flat list of panels, the order hasn’t been maintained. My ID numbers don’t match yours from earlier in the script. Personally, I would try to maintain a good data tree structure, eg {row;column} but I didn’t want to get my hands dirty with all that!
EDIT: I see now that you will be making actually curved panels (good luck!) in which case this method doesn’t give the true shape of the un-curved glass before being formed. That’s a bit more complicated!
Hi Tom Thank you so much, this is incredibly helpful!
But one question As you mentioned, the corners of the curved segments aren’t co-planar, and you created planar surfaces by making them co-planar. But actually, these planar surfaces aren’t the manifold of the original non-planar surfaces we had from the curves. So, for example, if we were to manifold the non-planar surface of curve #35, the area of the resulting geometry would be different from the area of the geometry created using your method, right?
Yes, you’d get a different result. I hadn’t read your second post while I was working on this.
Do you have any control over the source geometry here? It would go a lot smoother if it was designed for manufacture from the start. A base curve and then an Extrude or an Extrude Conical would guarantee a developable surface, which could then be split up with curves (Iso and otherwise) to generate nice clean panels. You’d then use an unrolling component like this (or one of the plugins with such a component, as listed in that thread) to generate the flat shapes.
I’m not entirely sure how much control I have over the source geometry, but I think I might have some. If I can rearrange the geometry for fabrication, I’ll definitely follow the approach you suggested. Thank you!