Something like this in Grasshopper? (Waffle structure follows curves)

Hi everyone,

I have experience in Solidworks but not so much in Rhino+grasshopper so all the info would be greatly appreciated!

I have to make a structure that looks something like this.

I have watched countless tutorials but they all have the same problem. In all of them, ribs are oriented on an axis or in some cases in a rotation from a single point.
In this case i have to make a waffle structure that follows the curves like in the picture above and the ribs have to be straight to be cut from a metal sheet.

Is it possible to make a script that would work for different types of design or for every design there will be a lot of changes in the script?

The idea is to make structural elements/ribs in Rhino, laser/plasma cut them from metal and then have a waffle style metal construction for further work.


Thanks to everyone in advance! every bit of info is good! :slight_smile:

3. Attach minimal versions of all the relevant files

Basic approach to dealing with one direction that’s adaptable to any shape:

Rhino_p5SDH4avB7

CONTOUR.gh (11.2 KB)

2 Likes

Two small things:

  1. To get the ribs on the inside, add “-x” expression on Offset Curve 'Distance.

  2. To get the hole in ribs, ‘Simplify’ is needed.


CONTOUR_2024Sep30a.gh (15.4 KB)

I see many problems with this… The contour approach above has all the frames parallel, square with ‘World XY’, yet that’s not what I see in the first image in this thread. (I don’t see how the 2nd and 3rd images are relevant at all?)

From here:

So I created a similar shape using code from this thread. This is a surface, not an arbitrary brep or SubD, which is important because I found that isocurves make life easier in getting cross-sections (perhaps I gave up too quickly?).

Isocurves are not planar, which is required for Offset Curve, so I fudged them by creating planes from each one (Plane 3Pt) and projecting to them. So it’s possible to extrude the cross-section “ribs” for thickness but not so with the lengthwise ribs. :frowning: :thinking:

RSlits might be ideal for notching the two sets of ribs but I couldn’t get it to work.


CONTOUR_2024Sep30b.gh (41.1 KB)

P.S. Thickness of lengthwise ribs was easy using Offset Surface. I started work on cutting notches (including gray group) but that isn’t easy so quit - for now.

CONTOUR_2024Sep30d.gh (49.0 KB)

Rslits works well if you have a clear overlap between the two sets of intersecting entities . For your project, I’d extend the longitudinal stringers outwards through your skin and then run the Rslits command, then trim the longt. surfaces back again and thicken up.
What you’re trying to create here is yacht structure… but with the transverse ribs being perpendicular to a centre spline as well, which whoever has the job of setting this out on site will hate you for…
I’d suggest making their life easier by simplifying the central spine line to a series of straight lines and then putting your transverse ribs in perpendicular to this control in groups. This breaks your structure down in to units that can be plated neatly (either metal or plywood will have limitations on plate size to nest in to) and are easier to dimensionally control during construction - you have maybe 5 points to set out to define a baseline that measurements are taken perpendicular to for the feet of the ribs.
The longitudinal stringers setout looks lovely, but beware of ending up with either stringers becoming too crowded or panel sizes becoming too large to pass structural requirements.
If you’re cutting it in plywood, beware which way you offset your ribs - if you define the cross section through your master surface as the mid plane, then part of the rib material is going to be intersecting the skin, so you either need to ensure all your thickness is offset “uphill” if you’re using a 2D laser cutter, or define the chamfers you need to allow the skin to sit right if you are using 3D routing. It’s amazing how small a gap between the rib and skin will be visible in the fairing of the outer surface.
Unfortunately, there’s a lot of detail goes in to getting a rib and stringer setup that is accurate, well engineered, has the details that the folks on the shop floor need and makes economic use of materials. Grasshopper gets you maybe 50% of the way there and gives the architect flexibility on design of the external skin until a bit later in to the project, but having confidence in your design and locking off the primary skin and rib location early will make you popular downstream and allow the project to come in on budget…
Fascinating to see the cross over between architecture and boatbuilding.
Best of luck
Deri

Not quite. A boat is symmetrical with a planar centerline - much easier!
In my experience, ideas happen at a far faster rate than the work to implement/try them… :roll_eyes:

I got something that is close… Enough to see some obvious flaws. The subtle flaws are harder to find.

This became intensely complicated :bangbang: Not a beginner project at all. It takes more than a minute after opening the file to see code and geometry.

Some notes:

  1. I used two clusters. Rib that thickens transverse and lengthwise “ribs” and cBranch that culls the first and last branches of data trees. It has an ‘R’ output that returns the culled branches so they can be merged later. For several reasons, it seemed reasonable to avoid notching the first and last ribs in both directions.

  2. The color clusters at the far right can show the merged ribs or not, depending on how they are wired. If not, there are two orange groups that can reveal the culled ribs.

Much can be said about this project but it’s late so I’ll just post the code. :zzz:




CONTOUR_2024Sep30e.gh (80.1 KB)

P.S. This version shows the culled ribs uncolored by the clusters (GH default color).


CONTOUR_2024Sep30ee.gh (80.9 KB)

2 Likes

Perhaps the most obvious flaw is the lengthwise ribs protruding through the transverse ribs at each end. I fixed that by adding a gray group at the bottom to cut them off and cap them.


CONTOUR_2024Oct1a.gh (89.2 KB)

Less obvious are the two lengthwise ribs at the bottom on each side (left and right) but I left them alone because a proper fix might entail horizontal footings of some kind?

I tried but don’t know for sure how well the notches match where lengthwise and transverse ribs meet? Related but more subtle are the notch cuts where ribs meet at an angle:

I considered adding a Data Dam to keep the very slow red group from being activated when parameters are changed but wasn’t sure what to show instead? Many details to consider on a project this complex :exclamation: