4.3 KiB
Gerbonara's Command-Line Interface
Gerbonara comes with a built-in command-line interface that has functions for analyzing, rendering, modifying, and merging Gerber files.
Invocation
There are two ways to call gerbonara's command-line interface:
$ gerbonara $ python -m gerbonara
For the first to work, make sure the installation's bin
dir is in your $PATH. If you installed gerbonara
system-wide, that should be the case already, since the binary should
end up in /usr/bin. If you installed gerbonara using
pip install --user, make sure you have your user's
~/.local/bin in your $PATH.
Commands and their usage
$ gerbonara --help
Usage: gerbonara [OPTIONS] COMMAND [ARGS]...
The gerbonara CLI allows you to analyze, render, modify and merge both
individual Gerber or Excellon files as well as sets of those files
Options:
--version
--help Show this message and exit.
Commands:
bounding-box Print the bounding box of a gerber file in "[x_min]...
layers Read layers from a directory or zip with Gerber files and...
merge Merge multiple single Gerber or Excellon files, or...
meta Extract layer mapping and print it along with layer...
render Render a gerber file, or a directory or zip of gerber...
rewrite Parse a single gerber file, apply transformations, and...
transform Transform all gerber files in a given directory or zip...
Rendering
Gerbonara can render single Gerber (~.rs274x.GerberFile) or Excellon (~.excellon.ExcellonFile)
layers, or whole board stacks (~.layers.LayerStack) to SVG.
gerbonara render
gerbonara render
$ gerbonara render [OPTIONS] INPATH [OUTFILE]
gerbonara render renders one or more Gerber or Excellon
files as a single SVG file. It can read single files, directorys of
files, and ZIP files. To read directories or zips, it applies
gerbonara's layer filename matching rules.
--warnings [default|ignore|once]
Enable or disable file format warnings during parsing (default: on)
-m, --input-map <json_file>
Extend or override layer name mapping with name map from JSON file.
The JSON file must contain a single JSON dict with an arbitrary number
of string: string entries. The keys are interpreted as regexes applied
to the filenames via re.fullmatch, and each value must either be the
string ignore to remove this layer from previous automatic
guesses, or a gerbonara layer name such as top copper,
inner_2 copper or bottom silk.
--use-builtin-name-rules / --no-builtin-name-rules
Disable built-in layer name rules and use only rules given by --input-map
--force-zip
Force treating input path as a zip file (default: guess file type from extension and contents)
--top, --bottom
Which side of the board to render
--command-line-units <metric|us-customary>
Units for values given in other options. Default: millimeter
--margin <float>
Add space around the board inside the viewport
--force-bounds <min_x,min_y,max_x,max_y>
Force SVG bounding box to the given value.
--inkscape, --standard-svg
Export in Inkscape SVG format with layers and stuff instead of plain SVG.
--colorscheme <json_file>
Load colorscheme from given JSON file. The JSON file must contain a
single dict with keys copper, silk,
mask, paste, drill and
outline. Each key must map to a string containing either a
normal 6-digit hex color with leading hash sign, or an 8-digit hex color
with leading hash sign, where the last two digits set the layer's alpha
value (opacity), with ff being completely opaque, and
00 being invisibly transparent.