rickman <
gnu...@gmail.com> writes:
> It's far from hopeless if you know the format for pcb.
PCB's netlist format is pretty trivial, but using it to import
designs... there's a better way :-)
PCB has File->Import option that reads a script that builds the design
by specifying all the footprints required, the netlist, and the
attributes for everything. It's a plain text file made up of "actions"
(pcb functions) which are documented in the PCB manual. You can hook
the File->Import button to a Makefile if you want to import from
something other than gschem.
PCB's manual is at
http://pcb.geda-project.org/manual.html (look for
the "Action Reference" section, the Import() action)
I'll add a sample script from my "rainbow LED" project for reference.
http://www.delorie.com/electronics/rainbow/ (all the nets are unnamed in
this project, hence the "unnamed_netN" instead of names like "GND" or
"VCC" :)
Netlist(Freeze)
Netlist(Clear)
Netlist(Add,unnamed_net12,LED8-2)
Netlist(Add,unnamed_net12,TMINUS-1)
Netlist(Add,unnamed_net12,LED7-2)
Netlist(Add,unnamed_net11,LED7-1)
Netlist(Add,unnamed_net11,LED6-2)
Netlist(Add,unnamed_net10,R2-1)
Netlist(Add,unnamed_net10,U2-7)
Netlist(Add,unnamed_net10,U2-6)
Netlist(Add,unnamed_net10,U2-3)
Netlist(Add,unnamed_net10,U2-2)
Netlist(Add,unnamed_net9,LED6-1)
Netlist(Add,unnamed_net9,LED5-2)
Netlist(Add,unnamed_net8,LED5-1)
Netlist(Add,unnamed_net8,LED4-2)
Netlist(Add,unnamed_net7,U2-4)
Netlist(Add,unnamed_net7,R2-2)
Netlist(Add,unnamed_net7,LED4-1)
Netlist(Add,unnamed_net6,LED8-1)
Netlist(Add,unnamed_net6,LED3-2)
Netlist(Add,unnamed_net5,LED3-1)
Netlist(Add,unnamed_net5,LED2-2)
Netlist(Add,unnamed_net4,TPLUS-1)
Netlist(Add,unnamed_net4,U2-1)
Netlist(Add,unnamed_net4,U1-1)
Netlist(Add,unnamed_net3,U1-7)
Netlist(Add,unnamed_net3,U1-6)
Netlist(Add,unnamed_net3,U1-3)
Netlist(Add,unnamed_net3,U1-2)
Netlist(Add,unnamed_net3,R1-1)
Netlist(Add,unnamed_net2,LED2-1)
Netlist(Add,unnamed_net2,LED1-2)
Netlist(Add,unnamed_net1,U1-4)
Netlist(Add,unnamed_net1,R1-2)
Netlist(Add,unnamed_net1,LED1-1)
Netlist(Sort)
Netlist(Thaw)
ElementList(Start)
ElementList(Need,"R2","0603dj.fp","62")
ElementSetAttr("R2","device","RESISTOR")
ChangePinName("R2", 1, "1")
ChangePinName("R2", 2, "2")
ElementList(Need,"TMINUS","hole-43mil.fp","unknown")
ElementSetAttr("TMINUS","device","terminal")
ChangePinName("TMINUS", 1, "terminal")
ElementList(Need,"TPLUS","hole-43mil.fp","unknown")
ElementSetAttr("TPLUS","device","terminal")
ChangePinName("TPLUS", 1, "terminal")
ElementList(Need,"LED8","0603dj.fp","unknown")
ElementSetAttr("LED8","device","LED")
ChangePinName("LED8", 2, "K")
ChangePinName("LED8", 1, "A")
ElementList(Need,"LED7","0603dj.fp","unknown")
ElementSetAttr("LED7","device","LED")
ChangePinName("LED7", 2, "K")
ChangePinName("LED7", 1, "A")
ElementList(Need,"LED6","0603dj.fp","unknown")
ElementSetAttr("LED6","device","LED")
ChangePinName("LED6", 2, "K")
ChangePinName("LED6", 1, "A")
ElementList(Need,"U2","SO8","unknown")
ChangePinName("U2", 7, "VOUT")
ChangePinName("U2", 6, "VOUT")
ChangePinName("U2", 4, "ADJ")
ChangePinName("U2", 3, "VOUT")
ChangePinName("U2", 2, "VOUT")
ChangePinName("U2", 1, "VIN")
ElementList(Need,"LED5","0603dj.fp","unknown")
ElementSetAttr("LED5","device","LED")
ChangePinName("LED5", 2, "K")
ChangePinName("LED5", 1, "A")
ElementList(Need,"LED4","0603dj.fp","unknown")
ElementSetAttr("LED4","device","LED")
ChangePinName("LED4", 2, "K")
ChangePinName("LED4", 1, "A")
ElementList(Need,"LED3","0603dj.fp","unknown")
ElementSetAttr("LED3","device","LED")
ChangePinName("LED3", 2, "K")
ChangePinName("LED3", 1, "A")
ElementList(Need,"LED2","0603dj.fp","unknown")
ElementSetAttr("LED2","device","LED")
ChangePinName("LED2", 2, "K")
ChangePinName("LED2", 1, "A")
ElementList(Need,"U1","SO8","unknown")
ChangePinName("U1", 7, "VOUT")
ChangePinName("U1", 6, "VOUT")
ChangePinName("U1", 4, "ADJ")
ChangePinName("U1", 3, "VOUT")
ChangePinName("U1", 2, "VOUT")
ChangePinName("U1", 1, "VIN")
ElementList(Need,"R1","0603dj.fp","62")
ElementSetAttr("R1","device","RESISTOR")
ChangePinName("R1", 1, "1")
ChangePinName("R1", 2, "2")
ElementList(Need,"LED1","0603dj.fp","unknown")
ElementSetAttr("LED1","device","LED")
ChangePinName("LED1", 2, "K")
ChangePinName("LED1", 1, "A")
ElementList(Done)