3.7 KiB
Basement Ooza Basics
The hacked together pipeline is as follows given an svg $SVG
. You may use the Woodbine.svg
file as an example for testing.
- Ensure that your SVG has a size set that fits in Ooza
- One way to ensure is by setting width & height on the root
<svg>
element
- One way to ensure is by setting width & height on the root
- Convert the SVG to gcode via
cargo run --release -- $SVG -o $OUTFILE
- Rewrite the gcode to be compatible with Ooza via
python rewritegcode.py $OUTFILE $FINALFILE
. This will do a few things:- Exit with an error message if the print would go outside the bounds of Ooza
- Rewrite the coordinates to center where the print happens
- Prepend the header in
ooza/config.g
to the rewritten gcode
- Upload
$FINALFILE
to Jobs in Duet and run it
svg2gcode
Convert vector graphics to g-code for pen plotters, laser engravers, and other CNC machines
Usage
Web interface
Check it out at https://sameer.github.io/svg2gcode. Just select an SVG and click generate!
Command line interface (CLI)
Input
cargo run --release -- examples/Vanderbilt_Commodores_logo.svg --off 'M4' --on 'M5' -o out.gcode
Output, rendered at https://ncviewer.com
cat out.gcode
Library
The core functionality of this tool is available as the svg2gcode crate.
Blog Posts
These go into greater detail on the tool's origins, implementation details, and planned features.
FAQ / Interesting details
-
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? No, objects must be converted to paths in Inkscape with
Object to Path
for use with this program. See #15 for more discussion.