algorithmic modeling for Rhino

(A double-post from the Discussion section, but this post should probably live here...)


I put together a utility definition to create a grillage (waffle) surface for laser cutter fabrication. Please feel free to use it (at your own risk...). I plan to make improvements to this base configuration in the future.


_Specify the uniform spacing for each of two (A = above, B = below) orthographic cut planes;
_Specify the rotation (angle) of the orthographic cut planes to the reference surface;
_Fine tune the start of A or B cut planes by shifting each independently;
_Specify rib height and notch thickness;
_Automated layout of the rib sections for fabrication including notches and labels;
_Visual 3D reference guide for construction;
_A "defaultGrillage" state has been saved under the "Solution" menu for quick start-up;
_A "generate_grillage_layout?" on/off toggle to allow for faster operation.


_The reference surface must always be shrunk;
_The grillage (for now...) is generated from a vertical extrusion downward. A surface with extreme geometry may not work well, if at all;
_If the outline of the reference surface is such that a section plane will cut the surface in two locations the automated layout will not function correctly;
_The notches are generated as rectangles with the intention that the user will want to cut the notches on a separate pass from the rib sections;
_Without any clusters, the canvas looks pretty scary. The resulting output of the definition is located all the way downstream (but should be clearly labeled).

View some screenshots from my album Gillage Making.

Download the definition file here: grillageFAB_v1.rar

Happy cutting.


Views: 22625

Replies to This Discussion

Hi Taz,

Thanks for the quick reply, however I'm fairly new to grasshopper and I ask that you bear with my lack of knowledge. I've tried your suggestion; I used an offset component on both surfaces and the result wasn't what I was hoping for. I simply got another set of surfaces identical but displaced by my specified parameter. What I was hoping for was a solid object with thickness as if the surface had been extruded. How could I achieve this. Thanks in advance!

Hey Matt,

That's a good start but you'll have think through the continuation of the routine, see the following image.

You'll want to flatten the ribs first so you don't have to worry about any residual tree data structure from the definition, but enable Draw Fancy Wires (fancywires would be a great name for a GH blog by the way...) to see how tree data is helping with lofting of the surface border curves later on.

Taz, thank you on for for the solution for ribs thickness .

I have just added JOIN CURVES after BREP WIREFRAME since curves were separated before LOFT.

Now everything is ok i have just have two errors:

and after i rotate the grillage i dont have fabrication A curves and i get this mssg:


It's hard to say what the problem is without your surface file.

The first error you're getting looks normal until the "Generate grillage" input is toggled. The second error I'm not sure about, but sometimes GH will freak-out and throw errors if there is too much information to process.

You may need to start afresh and relink your grillage object to make things work correctly. Set-up your final grid spacing and rotation before you make the secondary connections so GH doesn't have to process as much information.
Hey Taz,

I tried out the addition to the definition in your last reply. This seems to work very well for solids and splitting them into ribs with thickness. What I wanted to create were ribs from a non-closed surface. The reason for this is to create a curved roof structure for visualisation in MAX similar to Alvaro Siza's serpentine pavillion:

Do you think this is possible with the definition?
Hey Taz,

Thought you might be interested, I had some limited success with preparing ribs for visualisation. I exported IGES to MAX and shelled the model. See the images below.

I keep getting this problem though of some ribs coming as as these unsightly planes, I'm sure it's a simple error I've made. I'd love to hear your suggestions.
It looks like in your conversion to IGES you are losing some of the trim information for the NURBS surfaces that create the ribs.

You can see that the planes you're getting are the NURBS surfaces from which the rib shapes are trimmed. Somehow untrimmed portions of your surfaces are showing up.

I think the only surefire thing you can do is import the rib border curves (just use DupBorder in Rhino) and then recreate or retrim any NURBS surfaces in MAX that are giving you trouble.
Hmm... The actual pavillion structure is made of many small pieces with mortise and tenon joints and some bolted connections. This is different than notching the members.

Still, I would think you could replicate the grid character if you take the pavillion shape and split it up into separate pieces for the roof and each side. It would take some work to make everything match but it should be possible.
The model doesn't have to replicate the construction of offset members in the actual building, just to, as you say, replicate the character and skeletal form. I'm still having issues with exporting to max though without strange results. Ah well, I shall keep trying!
Good luck to you. This is a better description of what I was saying about the overall form - multiple pieces...

Great example, Thanks! I don't seem to see your replies on here unless I click the link in my email. Must be a cache issue or something. I will try your suggestion of recreating the NURBS in MAX. I appreciate I'm trying to do something other than the definition was designed for and I will need to do some tweaking. I'm looking forward to using the definition for fabrication though as I've often wondered how to fabricate double curved surfaces, and now it's a breeze!

Hi, Matt

did you find out how to create this Serpentine Gallery Pavilion by using grasshopper?

Actually I use this project as my precedence too. But I don't know how to script the zigzag structure and the connection of each element.







  • Add Photos
  • View All


  • Add Videos
  • View All

© 2021   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service