piplot import

v? turn artwork into a plottable path curve studio demo, no plotter attached

source

The pdf is sent to the plotter's pi, which pulls the vector geometry out of page one and sends back the curves, still curved. They are then flattened here by the same code that flattens svg, to the same tolerance, so the two sources behave identically. Outlines only: fills, clipping, images and text are ignored, so convert text to outlines first. A pdf of a scan holds no geometry and will come back empty. Needs the plotter, so this one source does not work on the public demo page.
Curves are flattened until no control point sits further than the tolerance, in finished millimetres on the paper, from the chord that replaces it. path polyline polygon line rect circle ellipse are read, and transform is honoured on every ancestor. Outlines only: fills, strokes, use, clipping and text are ignored, so convert text to paths first. Drop under removes paths shorter than that many millimetres, which is how you lose the stray two-point crumbs a trace leaves behind.
0.8
GeoJSON, with one checkbox per layer. Lines that carry a width, such as roads, can be drawn as both edges. Points, such as trees, become small circles sized as a percentage of the map. Or plain arrays: one path, [[x,y],[x,y],...], or several, [[[x,y],...],[[x,y],...]]. Any units at all: the result is fitted to the paper, so only the shape and the aspect ratio survive.
A raster cannot be imported, only interpreted: there are no paths in a photograph, so one gets invented and the controls decide which. Spiral is one Archimedean spiral whose radius wobbles by the local darkness, which is the best of these on a plotter because it never lifts the pen. Hatch wave is the same idea on parallel rows joined end to end. Hatch lines draws only where tone is darker than the threshold, so it makes many separate paths. Angle and threshold only bite on the two hatch methods, cover only on the spiral.

paper and pen

pick a plotter to see its travel
None of these machines has home switches, not even the AxiDraws. Each takes wherever its carriage is standing as (0, 0), so park it in its home corner and tick this. Nothing in software can check it, which is why it is asked every time.
The preview draws at the nib width, so small features that will fill in solid show as blobs here too. Simplify drops points closer to the line than that fraction of a nib width: you cannot see error smaller than the line is wide, and every point kept is another stop for the motors.
Chain ends joins strokes that already finish where the next one starts, within 0.05 mm, so the pen lifts once instead of twice. No ink changes: a stroke drawn backwards leaves the same mark. Sorting cuts the travel between strokes, this cuts the number of them, and a lift is paid per stroke however short it is. On a drawing exported as thousands of separate segments it is the difference between a plot that finishes and one that does not.
Join paths concatenates everything into the single continuous polyline the plot endpoint draws. The pen never lifts, so every travel move becomes a real line on the paper. It is off by default and the preview shows those joins in red before you commit to them.
paths 0 points 0 path 0 mm est 0 size 0 mm kept all
idle