New beta plug-in for fabrication friendly font geometry

(David Rutten) #1

Dear All,

I’ve been working on a code library that is aimed at generating 2D font geometry suitable for milling and cutting processes. The first version of this new plug-in can be downloaded from our servers, it requires the latest Rhino5 Service Release.

Plugin installer
Plugin toolbar

Two documents are also available, one acts as the help file for the plugin, the other is the *.fabfont file specification.

File format specification
Plug-in documentation

This is the first release of this new project, there’s some stuff that doesn’t work well yet (most notably path optimisation). There’s also very few tools for layout and typesetting. Mostly, we’re trying to figure out whether we’ve missed important features or whether the existing features fall short.

The plug-in ships with a default font called AtoB, the source geometry for this font is open source and also available for download.

AtoB font

One line alphabet and number line font
UnrollSrf request
Text does not Unroll with the grouped surface
(David Rutten) #2

I just posted a short tutorial on how to extend fabricator fonts with custom symbols and use those in text geometry.

Custom symbol tutorial on IEatBugsForBreakfast


Installed the plugin in Rhino 5, and PlugInManager lists it as FabricatorFontPlugin. However, I don’t get the toolbar, and neither does Toolbar list one that looks like it’s associated with that plugin:


You need to download the toolbar file (.rui file) separately from the link above, then put it in the following folder:


Then open the toolbar from inside the Rhino toolbar manager.

HTH, --Mitch

(Marc Gibeault) #5

It doesn’t want to install.
The file’s properties were changed to un-blocked and I still get "This package is not compatible with the Rhino Installer Engine."
I started Rhino (SR11) as administrator but then I can’t drag the file into Rhino, I get the European no parking sign.


Seems to have worked here…

I always enjoy David’s sense of humor…

(David Rutten) #7

@brian can you help? The rhp is compiled against:

Version 5 SR11 64-bit
(5.11.50226.17195, 26-Feb-2015)


@DavidRutten This is way cool!!! I also like the font a lot! Thanks, --Mitch


I’ll have to dig deeper into this when I get a moment but on first try, the default ‘Your text here’ doesn’t get produced. I put the string Just testing this under that default string and only selected characters were drawn (notably the t’s, the j and a few others but not e.g. the u). User error?

(David Rutten) #10

Shouldn’t be user error. Are there any mappings, or just plain text?


Hi David this looks very promising. What would be most useful in my case would be the ability to convert existing text to your fabrication font. I use routines that auto-label parts with normal text, but would like to change this to the mono font in the end for production.



(David Rutten) #12

Good point Eric. That’s probably quite a useful command. The ultimate goal is to make this geometry programmable, either through RhinoScript or RhinoCommon or Grasshopper, so tags can be easily assigned to the 13,500,000 different elements of a giant engineering project. But until then it’s important to provide as many useful ways as possible to make this stuff by hand.

(David Rutten) #13

You won’t think it that funny after trying to pronounce it for ten minutes…


This is all very interesting but I don’t quite understand what it is. How is it different than using the various text commands in Rhino, with a single stroke font? Whe would you use this and when the regualr commands?


It would be good to know how to hook it up to my existing scripts as the ideal solution.



Just plain text. This is on 2 different PC’s now - one Win7, the other Win8. Screen shot:

(David Rutten) #17

The big difference is that the single stroke fonts is basically an attempt to shoehorn fabrication processes into typography processes. It works fairly well to an extent, but there are limitations and there are problems. Here’s a list of the major benefits of this new approach in no particular order:

  • We fully control the layout of all geometry, so glyphs can be positioned and transformed using the Rhino geometry kernel.
  • Since the positioning is handled internally, it’ll be easier to ensure paths do not exceed boundaries.
  • Point geometry is supported, for when a milling bit should just be pushed into the subtrate, rather than tracing out a small curve.
  • Custom sized stencil gaps are supported, for when glyphs are cut through a sheet and you don’t want the insides of 'o’s, 'd’s and ‘B’ to fall out.
  • The font format is open and fonts can be edited using Rhino (or any other programmable app whenever someone decides to write a plugin for it). This means you can add characters that are often missing in single stroke fonts yourself, and you can even add completely custom graphics as styled glyphs.
  • The mapping commands (which, to be fair, are just interface, one could provide the same features for old-fashioned text objects) allow you to create complicated strings using simple input.
  • Kerning is handled internally, so we can ensure two characters are never too close for milling tracks to intersect.
  • Glyph geometry is quite clean, being composed of points, lines, circles and arcs only (it is conceivable bezier or nurbs curves will be added at some point), which should make the machining instructions short and simple.
  • Since we have control over the geometry, we can even implement effects such as dashed glyph strokes.

(David Rutten) #18

Fascinating… I can’t see any common characteristic for the glyphs that worked or ones that didn’t. Since I can’t seem to repeat the problem here I’m afraid I won’t be able to do much about this until I add a bunch of logging code so I can see exactly what’s going on. That’ll be quite a lot of work, though probably worth it in the end. I’ll get back to you when I have something up and running.

AH WAIT! Your Font field reads ‘AtoB (169 symbols, 3 styles)’. AtoB should have over a thousand symbols (1768 to be precise), so clearly something went wrong trying to load the default font. I’ll still need to log data though, just in a different area of the code.

Just as a test, try picking the attached font (which should be the same as the one hard coded into the plug-in) after the window is on screen. Does it still only load 169 symbols? (1.2 MB)


I’ve tried downloading and installing the plugin twice, and after unblocking the file, I get the attached error on Win7 with Rhino 5 SR11.

As far as the plugin itself, does it include the functionality to preview the lettering as cut with a particular size bit? That is the aspect of trying to layout single stroke type for fabrication that is lacking in vanilla Rhino, and this plugin seems ripe for including it. Being able to adjust the kerning and bit size with a preview would be fantastic.

(David Rutten) #20

Hi Greg,

it doesn’t have that option yet, but it would indeed be fairly trivial to add.

I’ll let @brian deal with the installer issues, I had the same problem on a test machine but it went away after updating to the latest service release. But whatever the reason, I think the error message could be a bit more informative.