>>> I tend to list the weaknesses of geda/pcb from my perspective. >>> >>> 1) Lack of support for hierarchical buses. >>> 2) pcb lacks buried, blind and micro vias. >>> 3) no back annotation between pcb and gschem. >> >> #3 should read "limited back annotation between pcb and gschem". If you >> renumber reference designators in pcb via the Renumber() action, the >> capability to back annotate that to schematics exists today. But that >> is it. Manual renumbers, new instances, value changes (0.1 uF -> 0.01 >> uF), pin swap, gate swaps, etc are not supported for back annotation.
> Where is a description of how this backannotation works? Post layout > renumbering is my biggest concern for backannotation. What is the > mechanism for backannotation from PCB? If a third party tool provided a > text based reference designator cross reference file, would it be > possible to use the same mechanism as is used for the backannotation > from PCB? I'd have to search for where it is fully documented, if anywhere :(, but here's the short end of it. In pcb, - save your layout (always good advice) - use the Renumber() action. Currently it looks like it is not bound to a menu choice although perhaps it should be. For now, use ":" to bring up the command entry box/window and enter "Renumber()" (without the double quotes) and hit enter. You'll be asked for a filename to record the changes in. Give a file name. - Use the script pcb_backannotate which comes with gEDA/gaf to propagate those changes back into the schematics. "pcb_backannotate --help" gives more info. > I was looking at the .sch files and it appeared that every reference > designator was prefixed by refdes= so it seems like a very scriptable > function if a simple cross reference file is available, even for a > hardware guy. I was thinking of writing something to perform this task > if necessary. Is there a gotcha I'm missing here? That is exactly how both pcb_backannotate and pads_backannotate work. In pads, the way forward/backward annotation work is a netlist of sorts is produced from both the layout and the schematic. Then a comparison tool is run that produces an engineering change order (ECO) file. You specify if you wanted to do forward (schematic->layout) or backward (layout->schematic) annotation. The ASCII .eco file, which btw has a documented format, is then loaded by either the schematic editor or layout editor to apply the changes. Quite a few years ago, I wrote pads_backannotate which takes a pads generated .eco file and applies it to gschem schematics. That lets you use gschem for schematics and pads for layout with forward and backward annotation working. I didn't implement all features of the backward annotation. Renumbers work, but for some features, you'll just get a message saying "you need to do _x_ to your schematics by hand". This is fully documented somewhere on the geda wiki. The renumbering request came up from time to time for pcb so I added the Renumber() action. The file it produces is somewhat similar in spirit to a pads .eco file in that it contains information about changes which need to be applied. Ultimately I think having a netlist compare tool capable of producing a more full featured changes file would be really useful. Also I think it would be good to teach libgeda how to read one of these change files directly and let pcb_backannotate fade away or perhaps use libgeda for accessing the schematic database. So to answer your question about using the same backannotation mechanism as pcb, yes, absolutely. It should be quite easy to modify the pcb_backannotate or pads_backannotate script to parse any other format of refdes crossreference file. Hope this helps. -Dan _______________________________________________ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user