diff options
author | jaseg <git@jaseg.de> | 2021-01-30 20:19:34 +0100 |
---|---|---|
committer | jaseg <git@jaseg.de> | 2021-01-30 20:19:34 +0100 |
commit | c5f8416b63139ec5b69c318e1be70ae54755e1e6 (patch) | |
tree | d1d683996f0d3bf4cb65bce44e4e03254aadb3a0 /gerbolyze/command_line.py | |
parent | 2133867c8a86337c6668f9cfff06e4de9bd0bcce (diff) | |
parent | 3f3b8487d41b3e0beb081ff049e2c815d7e6b269 (diff) | |
download | gerbolyze-c5f8416b63139ec5b69c318e1be70ae54755e1e6.tar.gz gerbolyze-c5f8416b63139ec5b69c318e1be70ae54755e1e6.tar.bz2 gerbolyze-c5f8416b63139ec5b69c318e1be70ae54755e1e6.zip |
Merge old gerbolyze history
Diffstat (limited to 'gerbolyze/command_line.py')
-rwxr-xr-x | gerbolyze/command_line.py | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/gerbolyze/command_line.py b/gerbolyze/command_line.py new file mode 100755 index 0000000..e6c6d67 --- /dev/null +++ b/gerbolyze/command_line.py @@ -0,0 +1,35 @@ +#!/usr/bin/env python3 + +import gerbolyze + +if __name__ == '__main__': + # Parse command line arguments + import argparse + parser = argparse.ArgumentParser() + + subcommand = parser.add_subparsers(help='Sub-commands') + subcommand.required, subcommand.dest = True, 'command' + vectorize_parser = subcommand.add_parser('vectorize', help='Vectorize bitmap image onto gerber layer') + render_parser = subcommand.add_parser('render', help='Render bitmap preview of board suitable as a template for positioning and scaling the input image') + + parser.add_argument('-d', '--debugdir', type=str, default=None, help='Directory to place intermediate images into for debuggin') + + vectorize_parser.add_argument('side', choices=['top', 'bottom'], help='Target board side') + vectorize_parser.add_argument('--layer', '-l', choices=['silk', 'mask', 'copper'], default='silk', help='Target layer on given side') + + vectorize_parser.add_argument('source', help='Source gerber directory') + vectorize_parser.add_argument('target', help='Target gerber directory') + vectorize_parser.add_argument('image', help='Image to render') + + render_parser.add_argument('--fab-resolution', '-r', type=float, nargs='?', default=6.0, help='Smallest feature size supported by PCB manufacturer, in mil. On silkscreen layers, this is the minimum font stroke width.') + render_parser.add_argument('--oversampling', '-o', type=float, nargs='?', default=10, help='Oversampling factor for the image. If set to say, 10 pixels, one minimum feature size (see --fab-resolution) will be 10 pixels long. The input image for vectorization should not contain any detail of smaller pixel size than this number in order to be manufacturable.') + render_parser.add_argument('side', choices=['top', 'bottom'], help='Target board side') + render_parser.add_argument('source', help='Source gerber directory') + render_parser.add_argument('image', help='Output image filename') + args = parser.parse_args() + + if args.command == 'vectorize': + gerbolyze.process_gerbers(args.source, args.target, args.image, args.side, args.layer, args.debugdir) + else: # command == render + gerbolyze.render_preview(args.source, args.image, args.side, args.fab_resolution, args.oversampling) + |