Vai al contenuto
25 novembre 2013 / Marco Alici

Tutorial: how to model and print a Koch snowflake tealight


I was asked to make some Christmas related gadgets with my 3D printer (a Reprap Pro Huxley), so the first thing that came in my mind was a tealight holder.

Last Christmas I printed this very nice vase, and I thought that the Koch snowflake would have been the shape to give to my tealight holder.

I tried to adapt that 3D model to the dimensions of my tealights (about Ø45x15mm), but after some attempts I decided to make a new model from scratch using my usual Open Source toolbox.

First of all I searched how to get a Koch curve. I found this very simple way using Inkscape, one of my Open Source tools.

I used the L-system tool (Extensions -> Render -> L-system…) with the suggested options:


I obtained this curve:


This is only one of the three sides I needed, but it was enough for now. I saved the file as .svg and closed Inkscape.

Then I opened Blender, another of my favourite Open Source tools, and imported the svg file as a curve:



I don’t worry about the dimensions of the curve, now: I converted the curve in a mesh using the Alt+C shortcut, then, in edit-mode, I duplicated the nodes, mirrored them and rotated 60° around the first node. I repeated this step, but rotating the duplicated nodes -60° around the last node. After selecting all and removing duplicated nodes I got this shape:


The screenshot also shows that I put the object origin on the centre of the shape (in object mode, Object -> Transform -> Origin to geometry), then I added a cylinder (radius 22.5, height 15) to simulate the candle and finally I scaled the nodes up by hand so that the candle would fit well inside.

Now that I have the Koch curve, I moved it up 50 mm along Z axis. Then I added a circle (Radius=22.5, Vertices=192). It’s important that the circle have the same number of nodes as the snowflake, to get a topologically correct mesh.

Now it’s time to connect the two shapes. To do that I used the Loft tool. It is available in the LoopTools addon. Maybe you have it disabled, so you have to enable it in the Addons tab in the User Preferences panel.


Now, in edit mode, you will have access to the tool scrolling the Mesh Tools (left panel in the default configuration); loft tool has some options, available clicking on the left arrow, but we can ignore them for once.


Just select both loops and click on the Loft button to get this result:


I subdivided the side edges in 20 parts (Ctrl+R, or selecting all the side edges and using the command Mesh -> Edges -> Subdivide, properly changing the parameters in the corresponding right tab).


I didn’t want straight sides, but a potbellied and twisted shape as the original model. So I activated the proportional editing mode (with the Smooth Falloff). I selected the loop in the middle and I scaled up a bit, using the mouse wheel to change the size of the proportional zone.


In a similar way, I selected the upper loop and I rotated it 30° around the Z axis.


The last step was to add a top and bottom face. In fact I wanted a closed 3D model, because I demanded the upper face deletion to Slic3r, the software I used to generate the gcode .

Then I exported the mesh in .stl format and imported it into Slic3r for the generation of the gcode file.

The model is available on Thingiverse:

Thingiverse 2013-12-03 11-26-07

I printed the tealight holder using the very high quality Glacial Blue PLA filament from Faberdashery.

BZyIrsTIEAE0w6v.jpg:largeThat’s all. 🙂


Lascia un commento - Leave a comment

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo di

Stai commentando usando il tuo account Chiudi sessione /  Modifica )

Google photo

Stai commentando usando il tuo account Google. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: