From f2c891533f5179bf3d8a1625b1fe490a0cd06a42 Mon Sep 17 00:00:00 2001 From: jaseg Date: Sun, 25 Apr 2021 14:03:16 +0200 Subject: svg-flatten: Add outline/edge layer mode --- svg-flatten/src/main.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'svg-flatten/src/main.cpp') diff --git a/svg-flatten/src/main.cpp b/svg-flatten/src/main.cpp index 722b356..3093d6a 100644 --- a/svg-flatten/src/main.cpp +++ b/svg-flatten/src/main.cpp @@ -28,7 +28,7 @@ int main(int argc, char **argv) { "Print version and exit", 0}, {"ofmt", {"-o", "--format"}, - "Output format. Supported: gerber, svg, s-exp (KiCAD S-Expression)", + "Output format. Supported: gerber, gerber-outline (for board outline layer), svg, s-exp (KiCAD S-Expression)", 1}, {"precision", {"-p", "--precision"}, "Number of decimal places use for exported coordinates (gerber: 1-9, SVG: 0-*)", @@ -181,6 +181,7 @@ int main(int argc, char **argv) { bool force_flatten = false; bool is_sexp = false; + bool outline_mode = false; PolygonSink *sink = nullptr; PolygonSink *flattener = nullptr; PolygonSink *dilater = nullptr; @@ -189,10 +190,16 @@ int main(int argc, char **argv) { string clear_color = args["svg_clear_color"] ? args["svg_clear_color"].as() : "#ffffff"; sink = new SimpleSVGOutput(*out_f, only_polys, precision, dark_color, clear_color); - } else if (fmt == "gbr" || fmt == "grb" || fmt == "gerber") { + } else if (fmt == "gbr" || fmt == "grb" || fmt == "gerber" || fmt == "gerber-outline") { + outline_mode = fmt == "gerber-outline"; + double scale = args["scale"].as(1.0); - cerr << "loading @scale=" << scale << endl; - sink = new SimpleGerberOutput(*out_f, only_polys, 4, precision, scale, {0,0}, args["flip_gerber_polarity"]); + if (scale != 1.0) { + cerr << "loading @scale=" << scale << endl; + } + + sink = new SimpleGerberOutput( + *out_f, only_polys, 4, precision, scale, {0,0}, args["flip_gerber_polarity"], outline_mode); } else if (fmt == "s-exp" || fmt == "sexp" || fmt == "kicad") { if (!args["sexp_mod_name"]) { @@ -417,6 +424,7 @@ int main(int argc, char **argv) { min_feature_size, curve_tolerance, vec_sel, + outline_mode, }; SVGDocument doc; -- cgit