diff options
author | jaseg <git-bigdata-wsl-arch@jaseg.de> | 2020-10-19 12:26:43 +0200 |
---|---|---|
committer | jaseg <git-bigdata-wsl-arch@jaseg.de> | 2020-10-19 12:26:43 +0200 |
commit | 9a6ab822f2ef388a07c4a85effbd1adc08618ea5 (patch) | |
tree | f0454666e36f5c258fe7acc6da21ef39651d5bcb | |
parent | 73a2d0b0fbcb20c6c0c79aa5491db0bf5329f713 (diff) | |
download | gerbolyze-9a6ab822f2ef388a07c4a85effbd1adc08618ea5.tar.gz gerbolyze-9a6ab822f2ef388a07c4a85effbd1adc08618ea5.tar.bz2 gerbolyze-9a6ab822f2ef388a07c4a85effbd1adc08618ea5.zip |
gerbolyze: Add --exact option and fix copper layer processing
-rwxr-xr-x | gerbolyze | 3 | ||||
-rwxr-xr-x | gerbolyze.py | 6 |
2 files changed, 5 insertions, 4 deletions
@@ -16,6 +16,7 @@ if __name__ == '__main__': 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('--exact', '-x', action='store_true', default=False, help='Do not subtract existing features on other layers from overlay') vectorize_parser.add_argument('source', help='Source gerber directory') vectorize_parser.add_argument('target', help='Target gerber directory') @@ -29,7 +30,7 @@ if __name__ == '__main__': args = parser.parse_args() if args.command == 'vectorize': - gerbolyze.process_gerbers(args.source, args.target, args.image, args.side, args.layer, args.debugdir) + gerbolyze.process_gerbers(args.source, args.target, args.image, args.side, args.layer, args.exact, args.debugdir) else: # command == render gerbolyze.render_preview(args.source, args.image, args.side, args.fab_resolution, args.oversampling) diff --git a/gerbolyze.py b/gerbolyze.py index 3284ae7..37d2356 100755 --- a/gerbolyze.py +++ b/gerbolyze.py @@ -305,7 +305,7 @@ LAYER_SPEC = { # Command line interface # ====================== -def process_gerbers(source, target, image, side, layer, debugdir): +def process_gerbers(source, target, image, side, layer, exact, debugdir): if not os.path.isdir(source): raise ValueError(f'Given source "{source}" is not a directory.') @@ -326,7 +326,7 @@ def process_gerbers(source, target, image, side, layer, debugdir): print('Target layer file {}'.format(os.path.basename(tname))) oname, ogrb = find_gerber_in_dir(source, layers['outline']) print('Outline layer file {}'.format(os.path.basename(oname))) - subtract = find_gerber_in_dir(source, layers[slayer]) if slayer else None + subtract = [find_gerber_in_dir(source, layers[slayer])] if slayer and not exact else [] # Prepare output. Do this now to error out as early as possible if there's a problem. if os.path.exists(target): @@ -337,7 +337,7 @@ def process_gerbers(source, target, image, side, layer, debugdir): sys.exit(1) # Generate output - out = paste_image(tgrb, ogrb, source_img, [subtract], debugdir=debugdir, status_print=lambda *args: print(*args, flush=True)) + out = paste_image(tgrb, ogrb, source_img, subtract, debugdir=debugdir, status_print=lambda *args: print(*args, flush=True)) shutil.copytree(source, target) with open(os.path.join(target, os.path.basename(tname)), 'w') as f: |