This shows you the differences between two versions of the page.
— |
geda:pcb_funding_sow:fwdann_ideas [2012/02/20 15:14] (current) |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== PCB SoW: Forward Annotation: Ideas, commentary, and examples from users ====== | ||
+ | |||
+ | //Anyone with any ideas or commentary about how this task should be completed may add | ||
+ | them here. Ideas about the details behind the implementation, too. Please refrain from deleting or significantly changing the meaning of someone else's entry.// | ||
+ | |||
+ | ===== DJ's Implementation Ideas ===== | ||
+ | This is what I'm thinking for the forward annotation (gsch2pcb) design: | ||
+ | |||
+ | The PCB has a list of schematics that it gets info from. Do we need | ||
+ | path support, or is full-paths (or relative to the pcb) ok? | ||
+ | Wildcards? Anyway, the list of schematics is stored in the .pcb file | ||
+ | somehow. The GUI needs a way to manage these, too. | ||
+ | |||
+ | When the user asks, PCB uses the list of schematics to run a gnetlist | ||
+ | command with my new backend, passing the list of schematics. The | ||
+ | gnetlist spits out a list of actions, which pcb runs. These actions | ||
+ | update the netlist, add any missing elements, and remove any | ||
+ | appropriate elements. Elements which need new footprints are updated | ||
+ | (magically! in place! we hope ;). | ||
+ | |||
+ | Also, some additional attributes will be propogated to elements, like | ||
+ | vendor, vendor_part_number, etc. | ||
+ | |||
+ | If the import is part of a "new board" step, we place the parts and | ||
+ | disperse them, optimize the rats nest, etc. No problem there. | ||
+ | |||
+ | What do we do with new elements if it's just an update? Eventually, | ||
+ | I'd like to have some separate container for "unplaced elements" but I | ||
+ | mean, what do we do for now? I'm wondering if disperse or autoplace | ||
+ | is smart enough to do something useful if we place the parts and | ||
+ | select them, on a partially laid out board. | ||
+ | |||
+ | I think this is enough information in the .pcb file that we can get | ||
+ | rid of gsch2pcb and the "project" file it uses. | ||
+ | |||
+ | It does mean that the pcb cares which schematics go with it, but the | ||
+ | schematics don't care which pcb they go with. Schematics can be | ||
+ | reused/shared, boards generally can't. | ||