Interlocking modules

Info about new community or project announcements, implemented features, classes, modules or APIs. Might get technical!
Posts: 9
Joined: Fri Apr 12, 2019 9:53 am

Interlocking modules

Postby execuc » Sat Apr 13, 2019 9:15 pm


My name is Alexandre and I my hobbies are arduino, PCB, 3D printing, laser cut...
I use FreeCAD since several years to make enclosure for my electronic projects but I don't use 3D printing to do it because it takes time to print except for small parts.
I prefer to use laser cutting which is faster and allows to make larger boxes.

In order to make my work easier, I have developed a module for Freecad that allows to create connections between parts from Part/PartDesign workshops. Then, an export tool projects parts on a 2D plan in order to save outlines as Flattened SVG. SVG file is then reworked on Inkscape before being sent in cutting.

An example : Image

Module manages connection of type tab/slots, T-slot joints and crosspiece. It also allows to create rounded corner with living hinges.

Python source code and documentation is on GitHub :

If this module corresponds to the freecad philosophy, I would like to propose it as an addon via the FreeCAD addon manager. So do not hesitate to say what you think about it.

Thank you
Last edited by execuc on Mon Apr 15, 2019 6:45 am, edited 1 time in total.
User avatar
Posts: 9223
Joined: Thu Jan 05, 2017 9:03 pm

Re: Interlocking modules

Postby Kunda1 » Sat Apr 13, 2019 10:54 pm

execuc wrote:
Sat Apr 13, 2019 9:15 pm
An example : Image
Try using this url instead:

Code: Select all

Alone you go faster. Together we go farther
Want to contribute back to FC? Checkout:
#lowhangingfruit | Use the Source, Luke. | How to Help FreeCAD | How to report FC bugs and features
User avatar
Posts: 18534
Joined: Sat Feb 06, 2010 9:52 pm
Location: Québec, Canada

Re: Interlocking modules

Postby NormandC » Sat Apr 13, 2019 11:13 pm

Hello execuc,

Welcome to the forum - impressive first post!!!

I want to thank you for your very detailed documentation with links to separate command pages.

I will try to dedicate some time to test this, I'm particularly interested in your statement that it can work with PartDesign bodies. :)
Posts: 887
Joined: Sat Aug 13, 2016 10:06 am

Re: Interlocking modules

Postby reox » Sun Apr 14, 2019 11:47 am

Nice! I fell in love with this tool from the videos I saw but unfortunately I never got this working ... I'll check it out for sure :)
Posts: 9
Joined: Fri Apr 12, 2019 9:53 am

Re: Interlocking modules

Postby execuc » Mon Apr 15, 2019 6:59 am

Thanks Kunda1, I have modified the image link, it works.

In January 2019, I changed HMI a little and the videos are out of date but the principle remains the same. I will do videos again when I could.
I did a short documentation because I agree that the interface is only intuitive for me :)
Do not hesitate to create issues when it does not work, because the module is not very robust when (ie: with non-rectangular parts...).
Posts: 9475
Joined: Mon Dec 12, 2011 4:45 pm

Re: Interlocking modules

Postby triplus » Mon Apr 15, 2019 7:47 pm

Thanks for creating the Interlocking module and for sharing it.

P.S. Such features are more and more requested by people. For not having to create everything manually, but to have a feature that adds a tab, slot, hole ... to selection.
Posts: 9
Joined: Fri Apr 12, 2019 9:53 am

Re: Interlocking modules

Postby execuc » Mon Apr 15, 2019 8:50 pm

Thank you! I have just created a pull request to add it in addons manager.
Posts: 36
Joined: Thu Feb 09, 2017 4:58 pm

Re: Interlocking modules

Postby polemidis » Wed Apr 24, 2019 5:28 pm

I am using a Freecad to make machines and tractor implements and I am using a CNC Plasma cutter , and I was looking forward for such a tool!

It speeds up the fabricating process A LOT!

I will test this soon. Thank you for your contribution!!
User avatar
Posts: 351
Joined: Tue Mar 25, 2014 11:24 pm
Location: France, Lyon

Re: Interlocking modules

Postby nemesis » Sun May 19, 2019 9:45 am

Thanks for the tool, I'm new to CNC milling, and such a design tool is just very useful.
however, As I said I use a Milling CNC, and I don't understand the laser diameter property.
github wiki says "Laser beam diameter: diameter of the material destroyed by the laser"

so if I understand that means when you are generating a laser Path you are using the edge of the part as path, and there is no compensation on the lazer size.

indeed I think I understood by writting this down :lol:

my misunderstanding came from the fact that I use Path work bench for my milling, so, it automatically compensate the size of my tool, so I don't need to take it in account in the design (except for the dog bones).

so thanks again for the work bench, I will dig into it more deeper for sure. (I have a lot of report error about QT stuff, but I need to check if it come frome misuse from my side)
Posts: 9
Joined: Fri Apr 12, 2019 9:53 am

Re: Interlocking modules

Postby execuc » Sun May 26, 2019 8:00 pm

Thank you for the interest of this module !
For CNC milling, you can define the laser beam equal to 0 because, as you say, the cam processor manages the diameter of the tool.
From what I saw for laser cutting, usually the laser always follows the path and that is why we must take into account the diameter to generate parts which can fit together.

Feel free to report module errors on github.