page · mm · pens · stats
Plotter Calibration
An A4 instrument for three pens: ruler, rings, geometric disturbance, real pen passes and route cost. Its companion is Plotter Export.
Core snippet
// One clean label.
const plot = new GysinPlot({ seed: 210297 });
plot.text("P5.GYSIN CALIBRATION", 48, 39); // clean, mechanical text
plot.draw();
// The sheet works in millimetres and maps each layer to a pen.
const mm = (v) => v * MM; // millimetres -> canvas pixels
const PEN_OF = { label: 1, rings: 2, fill: 3 };
// A millimetre ruler.
plot.line(x, y, x, y - mm(5), { layer: "label" });
plot.text("50", x, y + mm(6), { size: mm(3), layer: "label" });
// Rings over a cross-hatched ink mass.
plot.circle(cx, cy, d, { fill: "cross", hatchSpacing: mm(0.9), layer: "fill" });
// A built-in single-stroke type specimen.
plot.letters("P5 GYSIN", x, y, w, h, { glyphJitter: 0.6, layer: "label" });
// …then dropout/breathe, hatch, one-to-six pen passes, and geometric verbs.
plot.downloadPlotterSVG("calibration.svg", { page: PAGE, penMap: PEN_OF });
// Path cost shown up front, before any SVG or HPGL export:
const s = plot.stats({ page: PAGE, drawSpeed: 20, travelSpeed: 60 });
Measuring path cost…