>From a cursory examination of the Gerber spec (which I've never worked
with before). It looks like the appropriate way to render an arbitrary
font from it's vector representation is to render each non-contiguous
shape of each glyph as a single contour (enable region mode with G36,
draw the contour and then end the region mode with G37).  Now this is
tricky for many reasons.

1. The contour cannot self-intersect, except for coincidental segments, i.e., 
those who's start and end vertices are identical.  This isn't a bad thing 
alone. The bad part is that non-coincidental intersections can occur due to 
rounding, creating a bad gerber for one device that is rendering it, but not 
another. :(  Thus, we have to know in advance what this minimal pixel rounding 
value will be so we don't accidentally generate a bad gerber.
2. We don't get to work with actual polynomials, so everything has to be 
converted into straight lines and arcs.
3. Dealing with holes in glyphs (as in the letters 'O', 'p' and 'B') is a 
little bit of a pain because you have to add them as additional layers. If that 
hole needs to have something inside of it (I can't think of any English or 
Latin character examples), then 3 layers must be used, etc.

So I would say that the way to perform this conversion is basically to
have some type of resolution setting, but not in pixels, just to say how
the glyph will be approximated and control the number of gerber
instructions. Then an engine to "render" the glyphs into approximations
using straight lines and arcs (for the outline) followed by holes (and
possibly shapes within those holes, as there are quite likely languages
that will need this). All of this while avoiding illegal overlaps in
verticies as they may occur after rounding, even rounding as a result of
progressive processing on a single contour! (See ยง4.4.8 of the spec,
page 58 for one example of this.)

To make this even more fun, it would seem that there would also be a
need to render the font on-screen that way as well, so that we can
actually see what we're going to get.  I suppose, that that part won't
be as difficult as the actual conversion into a gerber-compatible
format, although it sounds like it may be a pain.  For example, if
rendering straight to opengl, you can't draw convex polygons, you have
to break them into triangles, etc.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/668145

Title:
  Font preferences not available anymore, internal font changed

To manage notifications about this bug go to:
https://bugs.launchpad.net/kicad/+bug/668145/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to