CNC calligraphy

Year: 2016

Client: Personal experiment

Project: With a CNC-machine it is possible to control the depth of your tool, so using a V shaped bit creates different thicknesses of lines, similar to pushing harder or softer on a pen or brush. By working with CNC-machines and writing its g code (which controls the machine) I got interested in making a font which can be milled in 3D on the CNC mill using a v-bit.

Of course there are ways to work around this process and use any font to engrave the full curves. But machining in one go makes it more efficient and provides a start for research on the combination between typography and the machines that make them physical.

I tried a quick comparison between using the v-carve software for engraving and making my own g-code, using the font “Milasian Circa Font” of which the geometry seems suited for the project (Personal use only license). Turns out v-carve is quite efficient in its tool-path generating, but the smallest flaw in the geometry of the letters causes it to make unnecessary extra movements. To give you an idea: direct gcode milling got a result of 45seconds, whereas vcarve’s g-code took 1min15s. Big difference that is.

The whole project is also an interesting exercise in trying to turn the geometry into a grasshopper definition for making gcode with the v-bit tool as a parameter.


Update 17dec2015:

While googling for something else, I accidentally stumbled upon this image which helped me out in my search. Apparently what I was looking for is the medial axis of a 2d shape so I looked around for other people’s research on that in grasshopper. After seeing an old post from Daniel Piker I came across a page with some explanation on how to do it by Generative Landscapes. After using his definition to make the medial axis I reverse engineered it so I could generate shapes from the medial axis by controlling the width of the shape at different stages. This could be a good base to start for making a typography font to use.

Also, it looks like the same definition can be useful to control stroke width, similar to what you use in Illustrator. Difference is that you can have live control over different aspects of the stroke, which can be quit handy.