#! /usr/bin/env python3 import dxf_export import pcb_parser import pcb_types import argparse import sys def parse_args(): parser = argparse.ArgumentParser('Convert GNU PCB footrpint to DXF.') parser.add_argument('-ifp', '--in-footprint', required=True, help='GNU PCB footprint file (input, required)') parser.add_argument('-odxf', '--out-dxf', required=True, help='DXF file (output, required)') args = parser.parse_args() return args def read_footprint(file_name: str) -> pcb_types.Element: with open(file_name, 'r') as f: s = f.read() parser = pcb_parser.PcbFootprintParser(s) element = parser.parseElementBlock() return element def write_dxf(fp: pcb_types.Element, file_name: str): dfw = dxf_export.DxfFootprintWriter() dfw.drawFootprint(fp) dfw.writeDxf(file_name) def main(): args = parse_args() fp = read_footprint(args.in_footprint) write_dxf(fp, args.out_dxf) if __name__ == '__main__': main()