Hey! This thing is still a Work in Progress. Files, instructions, and other stuff might change!

Drafont 0.5

by donb, published

Drafont 0.5 by donb May 30, 2011
0 Share
Download All Files

Thing Apps Enabled

Order This Printed View All Apps



Use This Project

Give a Shout Out

If you print this Thing and display it in public proudly give attribution by printing and displaying this tag.

Print Thing Tag

Thing Statistics

4145Views 3377Downloads


Drafont is a font system for the OpenSCAD program to have Unicode characters from scalable TrueType fonts.

Example Usage:

To make the Hi! greeting at left, do as follows:

  1. Download freeserif_basiclatin.scad and freeserif_cherokee.scad (see below for download links)
  2. Type this into Openscad:

use <freeserif_basiclatin.scad>;
use <freeserif_cherokee.scad>;

d=12; // detail level - use 1 or 12



  1. Each character is a module. Chain them together for auto-positioning
  2. Each character can be referred to by unicode, or a 'shorthand' name
  3. At the top of each .scad file is a list of the characters available
  4. Two detail levels: 1 and 12
  5. You can generate your own .scad font from a Truetype font, with any detail level you want. Download the .py files, edit settings at the end of ddump.py, and run it as follows:

python ddump.py FreeSerif.ttf 0x0041-0x007a > freeserif_basiclatin.scad
python ddump.py FreeSerif.ttf 0x13a0-0x13f4 > freeserif_cherokee.scad


  1. If you use the same char twice in a word, you have to use two _ (underscore)
  2. Some complicated characters won't render properly
  3. It is slow
  4. CJK characters in FreeSerif not working
  5. Some fonts don't work, at all (Sawasdee)


Drafont python code & all .stl files are released under the Creative Commons Share-Alike Attribution license 3.0.

FreeSerif.ttf and the FreeSerif .scad files are under the GPL 3 license. See http://www.gnu.org/software/freefont/license.html

The Nixish .scad files are under the GUST public license:


This project is named in honor of Thomas Drake, NSA Whistleblower, whom you can read about by clicking here: http://bit.ly/mrm4q9

Sample .stl

"Anna Akhmatova" is an example of Cyrllic and Latin text in FreeSans.

1234567890 is the font Nixish, which is derived exactly from LMRomansUnsl10

See Also

http://www.freetype.org/freetype2/docs/glyphs/glyphs-6.html FreeType manual, David Turner et al
http://code.google.com/p/freetype-py/ Freetype-py by Nicolas Rougier
http://www.fileformat.info/info/unicode/block/index.htm Unicode Blocks


http://bit.ly/m9oJWh LMRomanUnsl10 from Polish LaTeX user group GUST
http://www.gnu.org/software/freefont/index.html GNU FreeFont


http://en.wikipedia.org/wiki/File:Bezier_2_big.gif Bezier Curve, Phil Tregoning, Wikipedia
http://www.thingiverse.com/thing:8443 William Adam's pub domain Bezier Curves
http://www.thingiverse.com/thing:8931 Conic Bezier Curve, donb


0.5 pre-rendering
0.4 enable 'ranges' of unicodes to be dumped. use 'advance' from font
0.3 move openscad code
0.2 fix chunking
0.1 started


  1. download .stl file
  2. print

All Apps

3D Print your file with 3D Hubs, the world’s largest online marketplace for 3D printing services.

App Info Launch App

Auto-magically prepare your 3D models for 3D printing. A cloud based 3D models Preparing and Healing solution for 3D Printing, MakePrintable provides features for model repairing, wall thickness...

App Info Launch App

Kiri:Moto is an integrated cloud-based slicer and tool-path generator for 3D Printing, CAM / CNC and Laser cutting. *** 3D printing mode provides model slicing and GCode output using built-in...

App Info Launch App
KiriMoto Thing App

With 3D Slash, you can edit 3d models like a stonecutter. A unique interface: as fun as a building game! The perfect tool for non-designers and children to create in 3D.

App Info Launch App

Print through a distributed network of 3D printing enthusiasts from across the US, at a fraction of the cost of the competitors. We want to change the world for the better through technology, an...

App Info Launch App

I love the new stuff! I may have to re-base my project on this new version so I can get your new code goodness in there :)

Now that you have your Bezier support, font support was innevitable. I think this is a great step forward. I think it pushes even further the notion that .scad files themselves may be a viable distribution format, rather than .stl files. .stl files are like bitmap renderings, whereas here, you have the actual font outlines rendered as .scad.

oh now i get what you are saying. very interesting.

of course if OpenSCAD could do beziers natively, and import them from DXF, i guess this whole thing would be a little redundant.

OpenScad can pretty much do Bezier 'natively'. At least, you can use the various Bezier functions as if they were built in with no real problem. As long as the libraries are widely distributed.