Juicy-GCode is a command-line application that converts SVG files to GCode. It provides flexible options for curve approximation and allows configurable GCode generation based on color information.
E
, F
or S
can be set per colorThe easiest way is to download one of the prebuilt binaries from the releases page. Alternatively, you can build from source code as follows:
$ git clone https://github.com/domoszlai/juicy-gcode.git
$ stack build
$ stack install
$ juicy-gcode --help
:warning: Breaking change: Since version 1.0.0.0, the flavor file format changed to YAML. If you use a pre 1.0 version, please refer to this historical README file
:warning: Breaking change: Since version 0.3.0.0,
--generate-bezier
has been removed in favor of the more generic--curve-fitting
parameter and--resolution
has been renamed to--tolerance
:warning: Breaking change: Since version 0.2.0.1, default DPI is changed to 96 and the option to mirror the Y axis is removed (it is always mirrored now for correct result)
The easier way to use juicy-gcode is to simply provide an SVG file name. The generated GCode will be written to standard output. The default approximation method is the biarcs based.
$ juicy-gcode SVGFILE
Alternativly, you can provide an output file name as well.
$ juicy-gcode SVGFILE -o OUTPUT
Sometimes you want to overwrite some default settings. These are the
$ juicy-gcode SVGFILE --dpi 72 --tolerance 0.01
Curve fitting options (default is biarc
):
$ juicy-gcode SVGFILE --curve-fitting=biarc
$ juicy-gcode SVGFILE --curve-fitting=linear
$ juicy-gcode SVGFILE --curve-fitting=cubic-bezier
The generated GCode is highly dependent on the actual device it will be executed by and one might also want to generate different GCode for different colors. In juicy-gcode
these settings are called GCode flavor and consist of the following:
These settings can be provided by a YAML configuration file. The default settings are made for being able to test the generated GCode in an emulator e.g. with LaserWeb or my hanging plotter simulator.
begin: |
G17
G90
G0 Z1
G0 X0 Y0
end: |
G0 Z1
toolon: |
G01 Z0 F10.00
tooloff: |
G00 Z1
By providing your own configuration file, you can also specify color dependent settings. As an example, the following
configuration adds extra GCode configuration for the color codes #000000
and #FF0000
.
colors:
"000000":
before: |
; black
passes: 1
parameters:
F: 1.0
S: 80
"FF0000":
before: |
; red
passes: 1
parameters:
F: 2.0
S: 25
In this example, GCode comments will be generated before any continous red or black path, the F
and S
GCode parameters are
set different for red and black paths (and not set for any other colors) and the number of passes are set to 1 for both colors (passes is an upcoming feature, currently this option is ignored)
Use the -f
option to pass the GCode flavor to juicy-gcode
:
$ juicy-gcode SVGFILE -f FLAVORFILE
SVG features that are not supported: