Convert any SVG 1.1 path to gcode for a pen plotter, laser engraver, etc.
- Support all path variants
- Support group and path transforms
- Biarc interpolation (G2/G3 instead of many G1)
- Px, pc, in to mm
- Configurable DPI for px/pc to mm
- Sort paths by distance to reduce G0 distances
- Configurable start/end sequence
- Comments in GCode input
- Rustdocs
- End-to-end tests
- Ellipse paths are dubious -- large_arc, sweep may need to be inverted
- Smooth curves should not use the control point when the previous curve is not of the same type (quadratic -> smooth cubic, cubic -> smooth quadratic)
- This is just a nit, it shouldn't matter if the SVG is correct
cargo run --release -- examples/Vanderbilt_Commodores_logo.svg --off 'M4' --on 'M5' -o out.gcodeOutput, rendered at https://ncviewer.com
cat out.gcode-
Use a 3D printer for plotting: (thanks @jeevank for sharing this) https://medium.com/@urish/how-to-turn-your-3d-printer-into-a-plotter-in-one-hour-d6fe14559f1a
-
Convert a PDF to GCode: follow this guide using Inkscape to convert a PDF to an SVG, then use it with svg2gcode
-
Are shapes, fill patterns supported? All objects can be converted to paths in Inkscape with
Object to Pathfor use with this program. Not sure how practical fill patterns would be -- if you have ideas, feel free to open as issue or a PR. -
What about a generic PPD driver for using a plotter as a printer? I thought about doing something like this where you package ghostscript + inkscape + svg2gcode but that would take a lot of time
