def generate_previews(fab_output_path, preview_output_path): def read(pattern): files = glob(os.path.join(fab_output_path, pattern)) if not files: print "WARNING: Nothing found matching %s" % pattern return None return load_layer(files[0]) def save(name): path = os.path.join(preview_output_path, "%s.png" % name) print "Saving preview to %s" % path ctx.dump(path) def render(pattern, **kw): layer = read(pattern) if layer is None: print "Not rendering %s" % pattern return ctx.render_layer(layer, **kw) # Rendering context ctx = GerberCairoContext(scale=10) ctx.color = (80. / 255, 80 / 255., 154 / 255.) ctx.drill_color = ctx.color # Edges render("*.gm1") # Copper render("*.gtl") # Mask render("*.gts") # Silk render("*.gto", settings=RenderSettings(color=theme.COLORS['white'], alpha=0.85)) # Drills render("*.drl") save("pcb-front") ctx.clear() # Edges render("*.gm1") # Copper render("*.gbl") # Mask render("*.gbs") # Silk render("*.gbo", settings=RenderSettings(color=theme.COLORS['white'], alpha=0.85)) # Drills render("*.drl") save("pcb-back")
# Open the gerber files copper = read(os.path.join(GERBER_FOLDER, 'copper.GTL')) mask = read(os.path.join(GERBER_FOLDER, 'soldermask.GTS')) silk = read(os.path.join(GERBER_FOLDER, 'silkscreen.GTO')) drill = read(os.path.join(GERBER_FOLDER, 'ncdrill.DRD')) # Create a new drawing context ctx = GerberCairoContext() # Draw the copper layer copper.render(ctx) # Set opacity and color for soldermask layer ctx.alpha = 0.6 ctx.color = (0.2, 0.2, 0.75) # Draw the soldermask layer mask.render(ctx) # Set opacity and color for silkscreen layer ctx.alpha = 0.85 ctx.color = (1, 1, 1) # Draw the silkscreen layer silk.render(ctx) # Set opacity for drill layer ctx.alpha = 1. drill.render(ctx)
# Open the gerber files copper = read(os.path.join(GERBER_FOLDER, 'copper.GTL')) mask = read(os.path.join(GERBER_FOLDER, 'soldermask.GTS')) silk = read(os.path.join(GERBER_FOLDER, 'silkscreen.GTO')) drill = read(os.path.join(GERBER_FOLDER, 'ncdrill.DRD')) # Create a new drawing context ctx = GerberCairoContext() # Draw the copper layer copper.render(ctx) # Set opacity and color for soldermask layer ctx.alpha = 0.6 ctx.color = (0.2, 0.2, 0.75) # Draw the soldermask layer mask.render(ctx) # Set opacity and color for silkscreen layer ctx.alpha = 0.85 ctx.color = (1, 1, 1) # Draw the silkscreen layer silk.render(ctx) # Set opacity for drill layer ctx.alpha = 1. drill.render(ctx)
if not os.path.isdir(os.path.join(os.path.dirname(__file__), 'outputs')): os.mkdir(os.path.join(os.path.dirname(__file__), 'outputs')) for infile in listdir(GERBER_FOLDER): if infile.startswith('test'): try: outfile = os.path.splitext(infile)[0] + '.png' if infile.endswith('gbx'): layer = gerber_read(os.path.join(GERBER_FOLDER, infile)) print("Loaded Gerber file: {}".format(infile)) elif infile.endswith('exc'): layer = excellon_read(os.path.join(GERBER_FOLDER, infile)) print("Loaded Excellon file: {}".format(infile)) else: continue # Create a new drawing context ctx = GerberCairoContext(1200) ctx.color = (80./255, 80/255., 154/255.) ctx.drill_color = ctx.color # Draw the layer, and specify the rendering settings to use layer.render(ctx) # Write output to png file print("Writing output to: {}".format(outfile)) ctx.dump(os.path.join(os.path.dirname(__file__), 'outputs', outfile)) except Exception as exc: import traceback traceback.print_exc()
GERBER_FOLDER = os.path.abspath( os.path.join(os.path.dirname(__file__), 'gerbers')) # Open the gerber files copper = read(os.path.join(GERBER_FOLDER, 'copper.GTL')) mask = read(os.path.join(GERBER_FOLDER, 'soldermask.GTS')) silk = read(os.path.join(GERBER_FOLDER, 'silkscreen.GTO')) drill = read(os.path.join(GERBER_FOLDER, 'ncdrill.DRD')) # Create a new drawing context ctx = GerberCairoContext() # Set opacity and color for copper layer ctx.alpha = 1.0 ctx.color = theme.COLORS['hasl copper'] # Draw the copper layer copper.render(ctx) # Set opacity and color for soldermask layer ctx.alpha = 0.75 ctx.color = theme.COLORS['green soldermask'] # Draw the soldermask layer mask.render(ctx, invert=True) # Set opacity and color for silkscreen layer ctx.alpha = 1.0 ctx.color = theme.COLORS['white']
import gerber from gerber.render import GerberCairoContext # Read gerber and Excellon files dim = gerber.read('tty.dim') # Rendering context ctx = GerberCairoContext() # Create SVG image ctx.color = (0, 1, 0) dim.render(ctx, "tty_dim.svg") print(ctx) ctx.dump("foo.svg")
GERBER_FOLDER = os.path.abspath(os.path.join(os.path.dirname(__file__), 'gerbers')) # Open the gerber files copper = read(os.path.join(GERBER_FOLDER, 'copper.GTL')) mask = read(os.path.join(GERBER_FOLDER, 'soldermask.GTS')) silk = read(os.path.join(GERBER_FOLDER, 'silkscreen.GTO')) drill = read(os.path.join(GERBER_FOLDER, 'ncdrill.DRD')) # Create a new drawing context ctx = GerberCairoContext() # Set opacity and color for copper layer ctx.alpha = 1.0 ctx.color = theme.COLORS['hasl copper'] # Draw the copper layer copper.render(ctx) # Set opacity and color for soldermask layer ctx.alpha = 0.75 ctx.color = theme.COLORS['green soldermask'] # Draw the soldermask layer mask.render(ctx, invert=True) # Set opacity and color for silkscreen layer ctx.alpha = 1.0 ctx.color = theme.COLORS['white']