diff options
Diffstat (limited to 'gerbonara/gerber/__main__.py')
-rw-r--r-- | gerbonara/gerber/__main__.py | 122 |
1 files changed, 0 insertions, 122 deletions
diff --git a/gerbonara/gerber/__main__.py b/gerbonara/gerber/__main__.py deleted file mode 100644 index 988adff..0000000 --- a/gerbonara/gerber/__main__.py +++ /dev/null @@ -1,122 +0,0 @@ -#! /usr/bin/env python -# -*- coding: utf-8 -*- - -# Copyright 2013-2014 Paulo Henrique Silva <ph.silva@gmail.com> - -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at - -# http://www.apache.org/licenses/LICENSE-2.0 - -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations under -# the License. - -import os -import argparse -from .render import available_renderers -from .render import theme -from .pcb import PCB -from . import load_layer - - -def main(): - parser = argparse.ArgumentParser( - description='Render gerber files to image', - prog='gerber-render' - ) - parser.add_argument( - 'filenames', metavar='FILENAME', type=str, nargs='+', - help='Gerber files to render. If a directory is provided, it should ' - 'be provided alone and should contain the gerber files for a ' - 'single PCB.' - ) - parser.add_argument( - '--outfile', '-o', type=str, nargs='?', default='out', - help="Output Filename (extension will be added automatically)" - ) - parser.add_argument( - '--backend', '-b', choices=available_renderers.keys(), default='cairo', - help='Choose the backend to use to generate the output.' - ) - parser.add_argument( - '--theme', '-t', choices=theme.THEMES.keys(), default='default', - help='Select render theme.' - ) - parser.add_argument( - '--width', type=int, default=1920, help='Maximum width.' - ) - parser.add_argument( - '--height', type=int, default=1080, help='Maximum height.' - ) - parser.add_argument( - '--verbose', '-v', action='store_true', default=False, - help='Increase verbosity of the output.' - ) - # parser.add_argument( - # '--quick', '-q', action='store_true', default=False, - # help='Skip longer running rendering steps to produce lower quality' - # ' output faster. This only has an effect for the freecad backend.' - # ) - # parser.add_argument( - # '--nox', action='store_true', default=False, - # help='Run without using any GUI elements. This may produce suboptimal' - # 'output. For the freecad backend, colors, transparancy, and ' - # 'visibility cannot be set without a GUI instance.' - # ) - - args = parser.parse_args() - - renderer = available_renderers[args.backend]() - - if args.backend in ['cairo', ]: - outext = 'png' - else: - outext = None - - if os.path.exists(args.filenames[0]) and os.path.isdir(args.filenames[0]): - directory = args.filenames[0] - pcb = PCB.from_directory(directory) - - if args.backend in ['cairo', ]: - top = pcb.top_layers - bottom = pcb.bottom_layers - copper = pcb.copper_layers - - outline = pcb.outline_layer - if outline: - top = [outline] + top - bottom = [outline] + bottom - copper = [outline] + copper + pcb.drill_layers - - renderer.render_layers( - layers=top, theme=theme.THEMES[args.theme], - max_height=args.height, max_width=args.width, - filename='{0}.top.{1}'.format(args.outfile, outext) - ) - renderer.render_layers( - layers=bottom, theme=theme.THEMES[args.theme], - max_height=args.height, max_width=args.width, - filename='{0}.bottom.{1}'.format(args.outfile, outext) - ) - renderer.render_layers( - layers=copper, theme=theme.THEMES['Transparent Multilayer'], - max_height=args.height, max_width=args.width, - filename='{0}.copper.{1}'.format(args.outfile, outext)) - else: - pass - else: - filenames = args.filenames - for filename in filenames: - layer = load_layer(filename) - settings = theme.THEMES[args.theme].get(layer.layer_class, None) - renderer.render_layer(layer, settings=settings) - renderer.dump(filename='{0}.{1}'.format(args.outfile, outext)) - - -if __name__ == '__main__': - main() - |