Dark Mode

Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

sameer/svg2gcode

Repository files navigation

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)

Install

cargo install svg2gcode-cli

Usage

Arguments:
[FILE]
A file path to an SVG, else reads from stdin

Options:
--tolerance
Curve interpolation tolerance (mm)

--feedrate
Machine feed rate (mm/min)

--dpi
Dots per Inch (DPI) Used for scaling visual units (pixels, points, picas, etc.)

--on
G-Code for turning on the tool

--off
G-Code for turning off the tool

--begin
G-Code for initializing the machine at the beginning of the program

--end
G-Code for stopping/idling the machine at the end of the program

-o, --out
Output file path (overwrites old files), else writes to stdout

--settings
Provide settings from a JSON file. Overrides command-line arguments

--export
Export current settings to a JSON file instead of converting.

Use `-` to export to standard out.

--origin
Coordinates for the bottom left corner of the machine

--dimensions
Override the width and height of the SVG (i.e. 210mm,297mm)

Useful when the SVG does not specify these (see https://github.com/sameer/svg2gcode/pull/16)

Passing "210mm," or ",297mm" calculates the missing dimension to conform to the viewBox aspect ratio.

--circular-interpolation
Whether to use circular arcs when generating g-code

Please check if your machine supports G2/G3 commands before enabling this.

[possible values: true, false]

--line-numbers
Include line numbers at the beginning of each line

Useful for debugging/streaming g-code

[possible values: true, false]

--checksums
Include checksums at the end of each line

Useful for streaming g-code

[possible values: true, false]

--newline-before-comment
Add a newline character before each comment

Workaround for parsers that don't accept comments on the same line

[possible values: true, false]

-h, --help
Print help (see a summary with '-h')

-V, --version
Print version

Example

svg2gcode-cli examples/Vanderbilt_Commodores_logo.svg --off 'M4' --on 'M5' -o out.gcode

To convert curves to G02/G03 Gcode commands, use flag --circular-interpolation true.

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

Reference Documents

About

Convert vector graphics to g-code for pen plotters, laser engravers, and other CNC machines

Topics

Resources

Readme

License

MIT license

Stars

Watchers

Forks

Sponsor this project

Contributors

Languages