MPCNC: GCMC Text vs. Speed

GCMC includes single-stroke fonts derived from Hershey fonts, so I added a legend to the Spirograph Shakedown generator:

MPCNC - GCMC Text - 3000 mm-min

MPCNC – GCMC Text – 3000 mm-min

Obviously, plotting 2.5 mm tall characters at 3000 mm/min = 50 mm/s isn’t a Good Idea on a less-than-absolutely-rigid CNC machine.

Slowing down to 250 mm/min = 4.2 mm/s produces much better results:

MPCNC - GCMC Text - 250 mm-min

MPCNC – GCMC Text – 250 mm-min

A closer look, albeit with less-than-crisp focus:

MPCNC - GCMC Text - 250 mm-min - detail

MPCNC – GCMC Text – 250 mm-min – detail

This isn’t a conclusive test, but it reminds me that Speed Kills.

The green plotter pen started life with a standard 0.3 mm felt nib, but it’s worn somewhat wider over the intervening years decades. Those 2.5 mm characters would look better coming from a narrow ceramic pen, which would require a pen change before doing the legend; using 4 mm characters would produce better results.

The line spacing is 110% of the font X height, which obviously isn’t quite enough. Something on the order of 150% should look better.

This GCMC code (including those mods) produces the legend:


textsize = [4.0mm,4.0mm];
textat = [0.5*PlotSize.x/2,-PlotSize.y/2 + 2*textsize.y];

textpath = typeset("Seed: " + PRNG_Seed + "  Stator: " + StatorTeeth + "  Rotor: " + RotorTeeth,FONT_HSANS_1);
scalepath = scale(textpath,textsize);
placepath = scalepath + textat;

textpath = typeset("Offset: " + L + "  Lobes: " + Lobes + "  Turns: " + Turns,FONT_HSANS_1);
scalepath = scale(textpath,textsize);
placepath = scalepath + textat + [-,-1.5*textsize.y];


  1. #1 by Jose I Romero on 2017-12-23 - 00:59

    Since it looks pretty repeatable It would be interesting if that ringing could be fed forward into the g-code to produce correctly shaped characters :)

    • #2 by Ed on 2017-12-23 - 07:33

      I think the wobbulation is repeatable, but not predictable in any practical sense. In any event, given the length of the strokes in each character, breaking the lines into smaller steps would surely change the dynamic forces enough to produce an entirely different response.

      Running at 500 mm/min = 8.3 mm/s produces good results, albeit while shaking the entire bench. Heck, the HP 7475A plotter defaults to 15 in/s = 381 mm/s (it started as a hard-inch spec) while moving a whole lot less mass, so I’d say the MPCNC is doing just fine; I’ll call it solved.