Creating Finger Joints in Grasshopper

Hi all,

I’m fairly new to grasshopper, great tool, but I find the programming often very convoluted to be honest :(. It rarely feels intuitive to me, but perhaps that is due to different backgrounds (I am no architect f.e).

I made a script to generate (2D) finger joints. It works (kind of, will need to find a workaround for uneven finger joints) but it is quite fiddly, not elegant visual programming imo.There must be a better way to reach this result :slight_smile:
Any advice?

The idea is to develop the script further to parametrically create components for laser cutting (e.g polygons).

I am aware of some great software (Biber) and other methods (Finger Joints - YouTube) to create such joints, but wanted to learn myself (and these solutions don’t always fit my needs).
Finger Joint (14.5 KB)

I wonder whether it would be better to create such geometry by coding rather than VP…


Welcome to the Grasshopper world. I am with you in that it does not feel immediately intuitive to use GH. Here is a solution that creates finger joints on both ends of one piece. So when I think about this I think how would I do this analog? I would get a cutter and cut finger joints. So kind of the same thing with GH. The difference being that the cutter is a piece of geometry. So I built some boxes on the end of the piece of wood, sorted those boxes to keep just the ones I want, mirrored those cutters to the other end, cut the piece, then cut that new piece again. Assuming that you are building a box I would then use this piece to cut one end. Mirror both pieces to finish the box. Anyway check it out.
Finger Joint (16.2 KB)

We are doing this because…

Hi cimarronlofting,

nice script, thank you! Really interesting to see a very different approach to mine but with great results, I learned a lot from this.

Still a lengthy script, but I guess I still have to get my head around the fact that GH is hands-on, procedural where a lot of small components can be combined instead of a ‘monolithic’ piece if code…Hard to explain,lol.

Thanks again,