FabAcademy 2014 - Takuma Oami

Fablab Vestmannaeyjar

Computer Controlled Cutting

Assignments: design make and document a press-fit construction kit

Regular icosahedron

"In geometry, an icosahedron is a polyhedron with 20 triangular faces, 30 edges and 12 vertices. A regular icosahedron with identical equilateral faces is often meant because of its geometrical significance as one of the five Platonic solids."
By Wikipedia

3 years ago, I made solid model of modified Regular icosahedron by using boxcutter, cardbord and it was based on calculation by paper and pencil.
Now I'm curious to make same thing by using more powerful tools and make it parametric. That's why I made modified regular icosahedron.

Checking connections

As starting point, I made normal regular icosahedron by cutting triangles and combining the pieces with tape.


After assembling, I numbered all vertexes and cheked connection between them. Here is development I drew.



Then I tried to make cut sheet with kokopelli. It is nice software to make design parametrical as Niel said. However, I need function drawing bezier curve since my design contains many curves and kokopelli seems like making model by +/- prepared shapes (circle,triangle, and square...).
As result, I quit using kokopelli and decied to make my design by coding Python with text editor to generate svg data. For me it's most flexible tool to make parametric design so far even though I have to struggle with not GUI but CUI.

Coding shape (Python + SVG)

While I was coding, web pages (I listed these as refference at bottom of this page) expleining file I/O of Python and structure of SVG format help me a lot.

In the code, these factors listed up next can be changed...

  • VertexHeight --- list of heights of each vertex
  • slitPos --- list of distances between vertex and slit
  • offsetPos --- offset(x,y) from origin
  • mtrlThick --- thickness of material
  • slitDepth --- Depth of slit
  • connectorRad --- radius of connector

If Python is already installed to your PC, it's easy to run it like below.

$ python icosaPy0.1.py

Then this will make "output" directory under current directory and generate "icosa.svg" which contains cut-path of all parts as SVG format inside the folder.
For parameter tuning, I recommend using browser. It's convenience to check change of shapes by parameter in the same way as you open web site.

$ emacs icosaPy0.1.py              #Mostly I edit code with emacs
$ python icosaPy0.1.py
$ open -a Safari output/icosa.svg

After changing parameters, Don't forget reload Browser to update status of SVG file.
Here is video showing how to check SVG file with Browser.

After adjusting, Next step is cutting.

Laser cutting

Before cutting all parts, I did test-cut for checking how tight connction is. When I set 2.8mm as material thickness in the code, it fit nicely so I used this number also for final cutting.
And since the dimension of cardboard is 300mm x 500mm so all pieces were placed inside it.


I put number of vertex beside of each slit so I can insert all slit to right position.


The design is combinaton of Arcs and Connectors. Each vertex has connector and Arcs are iserted between them.

sketch sketch

Assembling pieces, I found one of points should be modify is thet I should put number not only on Arcs but also on Connectors.

2nd trial

Height gaps between vertexes of the first model was a little bit overmuch so I modified some parameter to reduce gaps and make it bigger.
And here is result.


Here you can dowload my code and cutsheet for lasercut