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 This Thing! Customize Order This Printed Tools & Utilities

Thing Info

4045Views 3137Downloads
Report Thing


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

Thing Info

4045Views 3137Downloads
Report Thing

Liked By

View All


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

All Apps

This App connects Thingiverse with Makeprintable, a cloud-based mesh repair service that analyzes, validates and repairs most common mesh errors that can occur when preparing a 3D design file for p...

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

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.