[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: gEDA-user: [pcb] merging layers and pasting



DJ Delorie wrote:
the layers are merged 1..N in
> order, without regard for component/solder side or groups.  I'm
> thinking this is bad, 

[jg]Yep.  We can do better and make pcb/gerbv real speed tools.

> First, if there's a single layer in the solder or component group, and
> the current board also has a single layer there, we match those up.
> 
> For non-component-solder layers, we look for existing layers with the
> same name.  If it's a one-layer-per-group case, we just match them up.
> 
> In cases where there's multiple layers in a group, it gets
> interesting.  We may get lucky and be able to match up c/s layers by
> process of elimination or by matching names, likewise with other
> groups.
> 
> We can correlate outline layers of course.
[jg] Because there's only one per design?  Mmmm... I can imagine a gerbv-2-pcb
import with odd names where even that did not match...


> 
> In the case where we can't figure out what to do, I think a pop-up
> dialog would be appropriate (the HID has a way to do this already).

Sure...
> It would list all the layers that can't be automatically correlated,
> with a multi-select box of potential layers to correlate them to.  We
> may be able to group these by component/inner/solder, so that an
> uncorrelated component group can be matched with existing component
> groups, etc.
> 
> We may also need the option to correlate multiple input layers to a
> single layer - i.e. a generic "merge layers" option, which might be
> useful as a standalone action too.

Sounds great, just kinda hard to code...
> 
> If all else fails, an option to create a new layer for an uncorrelated
> input layer.

[jg]It would be fine to just stop and allow user to create a new layer
without auto-dialog based code.  What would be good is to create a
pcb_panel_project file (and do gerbv the same way with a matching format
gerbv_panel_project file), that lists the layers for the panel and how any
individual imported boards are to be matched up with those layers.
That way the project layers could even be renamed to fit with a fab shops
preferences for clear communication with them.  With this approach,
original separate named layers that are intended to be merged could be left separate,
yet a merged layer for fab purpose could be created and contain the merge
of the original layers, or not.

Here's a likely file format, where comma separated lists get additively merged, # lines are comments and ignored
and different boards are just merged by having their left side entries be the same:


#board one
top_cu_1oz_bloat0003 : component
top_silk :   component-silk

#board two
top_cu_1oz_bloat0003 : component_PWR, component_SIG
top_silk :   silk

#board three
top_cu_1oz_bloat0003 : component_PWR
top_silk :   logo_orange_silk
top_silk :   silk_white


If you got this far and came across one of my boards
with insulator layer, the project file would be updated to a point where you could stop and
think, and create another layer for the left column of the project, and continue with no lost
work.  Every GUI choice should cause a project file write is my preference.
And likewise, every GUI choice should read the project file and compare program state and
offer ways to sync state with the project file...

John Griessen
-- 
Ecosensory   Austin TX


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