The goal of this project is to allow you to make any 3D object you like using press-fit. The Python programmes provided here will generate Epilog files for all of the faces of a generic 3D mesh, and automatically create connector pieces for joining the faces and labels to help you match the pieces. This is not a 3D printer just yet — you still have to assemble the pieces by hand :)
The original tube
Added labels to the pieces for larger projects
Most 3D design programs, like Blender, allow you to export a mesh, or collection of triangles that make up the 3D shape. The idea here is to take such a mesh, compute the angles between all faces, and create the cut sheets for all faces plus the pieces needed to connect them automatically. This means that you can design a (nearly) arbitrary object in CAD software and assemble it press-fit style using your favourite material on the Epilog laser cutter. As the images above show, I tested this by making a tube-like object. Not very exciting, I know, but the idea is there.
To make your own meshes, you will need to know a little bit about programming in Python. I have unfortunately not gotten around to implementing something to import from, for example, Blender.
You will need the following packages to make this work: python-scipy, python-visual. You will also need the fablib library. Note that the mesh_to_parts.py code that you can download below uses the fablib library directly, so you should add a symlink to fablib from the working directory for this project. I hope this makes sense.
mesh_to_parts.py The library for processing meshes test.py The mesh for a very simple shape torus.py The mesh for half a torus