Stephan Boettcher <[email protected]> writes: > Julian <[email protected]> writes: > >> Stephan, >> Yes, you can do it, however you can't use the project file for the >> process. Here's how: >> >> gerbv --export=png --dpi=600 --foreground=#ff0000ff >> --foreground=#00ff0088 file1.gbx file2.gbx .......and so on >> >> Hope this helps. Cheers-- > > Absolutely, thanks! Now I need to write a script to transform the > project file into a Makefile rule :-)
Here is is.
#!/usr/bin/python # coding=utf-8 # $Id: gvp2make.py 16 2010-02-24 12:38:06Z stephan $ # This script is free software (c) 2010 Stephan I. Böttcher # Distributed under GNU GPL Version 2 or later. """ Julian <[email protected]> writes: > Stephan, > Yes, you can do it, however you can't use the project file for the > process. Here's how: > > gerbv --export=png --dpi=600 --foreground=#ff0000ff > --foreground=#00ff0088 file1.gbx file2.gbx .......and so on > > Hope this helps. Cheers-- """ usage=""" Prints a gerbv commandline to export a project to png, with adjusted layer opacities. Options: -h print this help -g gerbv path of the gerbv executable -x png export format -o layout.png~ output file -D 600 dpi resolution -w <option> gerbv option -A layer=alpha alpha between 0 and 1.0 -X execute the command -M print Makefile to stdout """ options=[ "gerbv", "--export=png", "--output=layout.png~", "--dpi=600", ] """ The layer names are the second dot-separated part of the filename. Digits are stripped from the layer name and tried again. """ opacities = { "DEFAULT": 0.7, "frontsilk": 1.0, "backsilk": 1.0, "outline": 1.0, "plated-drill": 1.0, "frontpaste": 0.7, "backpaste": 0.7, "front": 0.5, "back": 0.5, "group": 0.4, } execcmd=False makefile=False import sys, os from getopt import gnu_getopt as getopt oo,ifile = getopt(sys.argv[1:], "hg:x:o:w:D:XMA:") for o,v in oo: if o=="-h": print "Synopsis:", sys.argv[0], "<options> gerbv-project-file", usage sys.exit() if o=="-g": options[0]=v if o=="-x": options[1]="--export=%s" % v if o=="-o": options[2]="--output=%s" % v if o=="-D": options[3]="--dpi=%s" % v if o=="-w": options.append(v) if o=="-X": execcmd=True if o=="-M": makefile=True if o=="-A": vv=v.split("=") opacities[vv[0]]=float(vv[1]) layers = {} from fileinput import input for l in input(ifile): ll = l.split() if ll[0]=="(define-layer!": ll=[llll.strip("\"')(#") for lll in ll for llll in lll.split(")(")] layers[int(ll[1])] = { "number" : int(ll[1]), "filename": ll[4], "visible": ll[7]=="t", "color": [int(lll)/65536.0 for lll in ll[10:13]], } files=[] lnumbers = [n for n in layers] lnumbers.sort() for n in lnumbers: l = layers[n] if l["visible"]: fn = l["filename"] files.append(fn) try: ltype = fn.split(".")[1] try: opacity = opacities[ltype] except KeyError: opacity = opacities[ltype.strip("0123456789")] except: opacity = opacities["DEFAULT"] l["color"].append(opacity) options.append("--foreground=#%02x%02x%02x%02x" % tuple( [int(c*255) for c in l["color"]])) if makefile: target = options[2].split("=")[1] print "GERBV="+options[0] print "FORMAT="+options[1].split("=")[1] print "DPI="+options[3].split("=")[1] print target+": \\\n\t "+" \\\n\t ".join(files) print "\t$(GERBV) --output=$@ --export=$(FORMAT) --dpi=$(DPI) \\" print "\t "+" \\\n\t ".join(options[4:])+" \\\n\t $<" else: cmd = " ".join(options+files) print cmd if execcmd: os.system(cmd)
-- Stephan Böttcher FAX: +49-431-880-3968 Extraterrestrische Physik Tel: +49-431-880-2508 I.f.Exp.u.Angew.Physik mailto:[email protected] Leibnizstr. 11, 24118 Kiel, Germany
_______________________________________________ geda-user mailing list [email protected] http://www.seul.org/cgi-bin/mailman/listinfo/geda-user

