Loading

OpenSCAD Bitmap Fonts Module

by tbuser, published

OpenSCAD Bitmap Fonts Module by tbuser Mar 24, 2010

Description

Update: Added height map support

This is an OpenSCAD module that let's you easily (well kinda) create 3D text. I've emulated the Atari 8-Bit fonts A-Z, a-z, 0-9, and most punctuation. You can create them a letter at a time or pass an array of characters. (OpenSCAD doesn't have any real string manipulation)

It also has a bitmap module that you can use to define your own fonts. It's pretty simple, you pass it an array of numbers (the number defines the height modifier, so a height of 5 and a value in array of 2 would make that pixel 10mm high), then tell it how many bits per row and it creates cubes (of configurable width and height) in a grid and combines them into a single shape.

Be careful when defining your own bitmaps in that you can't have two bits only connected diagonally. Otherwise OpenSCAD will say it's not manifold. For instance you can't have:

0 0 0
0 1 0
0 0 1

But you can have:

0 0 0
0 1 1
0 0 1

I'll try to keep this up to date, but you can always find the latest version on github at http://github.com/tbuser/openscad-bitmap

Recent Comments

view all
Changing this so that the entire font is in a DXF file following these guidelines (http://thingiverse-production.s3.amazonaws.com/assets/71/e2/37/29/f0/Building_Fonts_for_WriteScad.pdf) would make things a lot easier! All you have to do from there is use it as a font in thingiverse.com/thing:16193 . If you contact the author of this, he may be able to add it to his collection of fonts which could in turn be added to the Customizer Library to be used!
Sorry I totally forgot to upload the new version. Thanks for reminding me, it should work now.
The new version (2011.04) version of OpenSCAD for Mac gives an error (parser error in line 976). The problem seems to be a few lines earlier:

} else if ( char == "" ) {

The backslash appears to need to be escaped. This works:

} else if ( char == "" ) {

Makes

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

Instructions

For examples see:

Parametric Name Tag: http://www.thingiverse.com/thing:2055

Parametric Alphabet Block: http://www.thingiverse.com/thing:2056

OpenSCAD Height Map: http://www.thingiverse.com/thing:2070

Include bitmap.scad:

Create the letter "A" where each bit is a 2mm cube (8 x 8 so 16mm total wide) and 5mm high:

block_size = 2; height = 5;

8bit_char("A", 2, 5);

Create the string "MakerBot". OpenSCAD has no real string or length methods :( so you have to define each character in an array and pass the number of characters:

chars = ["M","a","k","e","r","B","o","t"]; char_count = 8;

8bit_str(chars, char_count, block_size, height);

Changing this so that the entire font is in a DXF file following these guidelines (http://thingiverse-production.s3.amazonaws.com/assets/71/e2/37/29/f0/Building_Fonts_for_WriteScad.pdf) would make things a lot easier! All you have to do from there is use it as a font in thingiverse.com/thing:16193 . If you contact the author of this, he may be able to add it to his collection of fonts which could in turn be added to the Customizer Library to be used!
Write.scad
The new version (2011.04) version of OpenSCAD for Mac gives an error (parser error in line 976). The problem seems to be a few lines earlier:

} else if ( char == "" ) {

The backslash appears to need to be escaped. This works:

} else if ( char == "" ) {
Sorry I totally forgot to upload the new version. Thanks for reminding me, it should work now.
This is great for making 8-bit art. I was sitting down to write something exactly like this but you beat me to it, thank you! 8-)
Add this to thingiverse.com/thing:2106

Thanx a lot! Cool addition 8-)
Doblo factory - OpenScad modules for building DUPLO structures and bricks
So awesome!! Thanks!
Nice!!!

You should put it on GitHub too, so it can versioned and forked.
Braille, i18n, dingbats chars would soon follow.
A Braille version would be useful...
tbuser - in reply to vik
That would be really easy to do. :)
Top