Controlling Waffle Structure Intersection Lengths?

Hi everyone,

As the title suggests I was wondering if there is a way in Grasshopper to control the amount of intersection happening in a friction fit waffle structure (finger joint/lap joints).




As shown here in this example of 2 intersected sections they are each both cutting about ~10" into the material



I’m wondering if it’s possible to do something like this, where you can control how much intersection is happening - for example if this were to be fabricated in real life, giving the piece that will take on more weight less of the intersection (~25%), and giving the other piece more of the intersection (75%).


I think extra parameters would be added in this section of the script where the union box is? As that is where it creates the frame of the intersections

Any help/feedback is greatly appreciated. Thank you!!

Intersection Length.gh (50.3 KB)

1 Like

Check if this helps:
Intersection Length.gh (61.0 KB)

When deciding where to start the notch, be cautious changing the value, probably better to double-click and enter value, or slide (zoomed into slider) carefully/smoothly:

Usually (for speed/performance) with waffles it helps to let go of solid operations as much as possible and stick to contours and surfaces when the end goal is to feed the machine some CAD files.

*Note:
This example is a starting point, where “notch line” length factor is controlled, as opposed to establishing the exact length - that would require a slight edit, but same principle.

1 Like

Wow, that is absolutely amazing. Thank you so much for taking the time to do that.

If I were to ask one more question it would be if this method could easily be applied to more complex geometry. My main model I am trying to get this waffle structure to work for is this elephant. It’s getting cut up a little weird when I apply it but maybe I need to change the axis it sits on?

Intersection Length_ELEPHANT.gh (263.9 KB)

Or maybe that is now a question for another thread :slight_smile:

1 Like

I’ll take a look. What units are you using, if it matters?

Also:
Your elephant figure appears to be symmetrical, which implies you could just waffle half of it then mirror.

One reason is the contour planes not being distributed taking into account the symmetry.

Short answer is yes - however there’s always something to tweak, not just for this ‘method’, which was adjusted to what you have in the first place. For instance, you could have the exact same sphere you were dealing with, but with a different orientation, or a different position/distribution/style of slicing, etc.

Just checked - appears but isn’t haha

Still, it’s probably better to dictate placement of slicing planes in the most “symmetrical” way possible, if that makes sense.

Still want to know what your unit system should be.

What I should have said is that ‘more complex’ geometry can be anything, really, as soon as intersecting produces floating slices, or multiple intersections per plane:


…at that point the data-handling needs to be a little different.

More importantly, and prior to said data-handling, a fabrication ‘strategy’ or ‘preference’ needs to exist. This is up to you/the fabricator.

Strategy/preference as in: will you cut/split multi-notch parts all the way through or will you end up with a ‘pre-cut’ dashed or edged line indicating where a part would otherwise end up cut/split all the way through? Am I making sense? I don’t mean to sound pedantic.

Furthermore, handling multi-notch (intersections) is one thing, while handling single notches that still inevitably pass through an entire region is another thing:

Anyway, I suppose you anticipated this would happen with anything beyond a solid primitive (sphere).

I made some changes to consider your situation and help a bit more:
Intersection Length_ELEPHANT.gh (277.0 KB)


Bear in mind this isn’t perfect as I can’t strategize for you, but the adjustments should illustrate things to a fair extent; you might have to edit your final CAD contours (or extend the algorithm to handle all things).

I left a couple of areas without notching - blue dot highlights:


Go through the code so I don’t have to explain more! :clown_face:

*edit:
Notify what your strategy is and we can look into it more :+1:

Good luck!

1 Like

1 Like

Thank you so much for all your help with this! Extremely insightful and helpful. I’m fairly new at Grasshopper and you used a lot of parameters in the script I didn’t even know existed! So I have my research cut out for me while I go through the code haha. Very much appreciated. Making things out of just curves/planes was also very helpful instead of using solid objects right off the bat with boolean components. Before every action I took it was taking several minutes to load when doing a small change and now it is much easier to work with.

For your units question I am working in inches.

In terms of fabrication strategy, if I am understanding correctly about your comment regarding splitting mutli-notch parts all the way through the object - I am trying to make it so there would not be any “floating” parts (if that answers the question). I know there will be some manual work/cleanup at the end of this. For example where you are circling the back of the elephants heel that has become a floating object due to the intersection, my plan of attack would be either:

-Adding more contour segments, and manually picking the ideal ones that don’t cause floating objects/cut all the way through (I do not know if Grasshopper would allow me to cherry pick which contours I like vs which contours I do not or if I would have to bake the ideal contours and maually pick them before any slicing/cut operation occurs)

-Manually cleaning these floating sections in post process and reattaching them

Let me know if I understood the question correctly. It is my end goal to actually fabricate this using a CNC machine, material isn’t quite decided on yet so I have the slider set to 1/2" material thickness for now.

Also, for those sections in blue, those would have gotten notched as well but basically you told it not to in those areas? If I am understanding correctly. If that is the case I wonder if I could use the same idea to have extra contours generated but choose which ones I actually want used.

For an even bigger layer of complexity I am also going to make a version of this adding a few contours in the Z direction as well. Although I have not found many examples of a waffle structure being cut in 3 axis at the same time. I figured that was too many questions to ask about in one thread haha

Thank you again very much for the script you have set up so far. I’m excited to go through it in depth to help me learn more :slight_smile:

1 Like

Yes, I intentionally left them without getting notched as a temporary ‘strategy’.

Got it - maybe to avoid complexity or to favor speed, then nothing gets truly (physically) notched in 3D space. Instead, all parts can get oriented to the ground as 2D first, with all ‘notchers’ placed where they go, and from there you decide which ones to include/exclude. To illustrate this “2D notch approach”, take a look at this approach (8-7 and 8-8) with Python.

BUT: Before we do any of it, I did find a bug in the file I shared. Small error but still important. The slicing planes were not ordered consistently with the slices. This will for sure cause problems. Apologies - skipped by accident. I’ve corrected it.
Here’s the file:
Intersection Length_ELEPHANT_corrected.gh (275.6 KB)