On Sat, 2008-12-20 at 21:46 -0500, DJ Delorie wrote:
> 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.

I don't like the idea of the .pcb file tracking the schematics /
invocations for gnetlist. Many of my forward annotation steps involve
running a Makefile (which might introduce new schematics), before
gnetlist.

Storing some generic command invocation to update might be useful, but
we'll have to get very cautious about opening pcb files sent from people
if you add that.

> 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.

xgsch2pcb just rather unhelpfully drops them on top of each other in the
corner. I wanted to implement a "parts bin", or "rat-parts" view where I
could have just a strip of canvas with the parts distributed
horizontally / vertically, and drag-drop them onto the board. We could
also add it as a tab in the library contents browser, and make them
go-away from that list once placed. (You could perhaps even group things
like bypass caps together, and that line-item goes away when you've
placed them all).

> I think this is enough information in the .pcb file that we can get
> rid of gsch2pcb and the "project" file it uses.

I really don't like that idea, we were supposed to be improving that
workflow, not removing it.

IMO, we don't want to remove the ability for a GUI project manager to be
involved in the task. I'd be really very disappointed if we can't keep
xgsch2pcb working with whatever new flow is produced.

> 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.

As I said, between one update and the next, the list of schematics may
have changed. I might need a Makefile run to get them up-to-date. What
if the user's desired input is just a netlist (and perhaps a parts
list)? What if the schematics aren't from gEDA?

I like the idea of having a netlist file, and whatever extra file(s)
needed to specify the parts and their footprints. PCB can either watch
those files, or re-read them at a button-press, then do its update
without tying things to a gEDA schematics only flow.


-- 
Peter Clifton

Electrical Engineering Division,
Engineering Department,
University of Cambridge,
9, JJ Thomson Avenue,
Cambridge
CB3 0FA

Tel: +44 (0)7729 980173 - (No signal in the lab!)



_______________________________________________
geda-dev mailing list
geda-dev@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-dev

Reply via email to