gEDA-dev: gerber importer/panelizer
Erik Winn
erik at batchpcb.com
Tue May 13 00:41:46 EDT 2008
Greetings,
I should say hello since I am at least in part the instigator of this
thread - I have just started working with BatchPCB and among the many things
I need to fix is the system we have for panelizing boards. We are trying to
move Sparkfun off proprietary tools - and we've made a lot of progress but
ECAD in general and panelizing gerbers in particular (which is now my
department) is a stumbling block. Irksome - but not insurmountable.
In the interest of full disclosure, I must admit that I am not a PCB expert -
in fact I have never even used ECAD before being assigned this task, so I
have plenty to learn - forgive me if I ask foolish questions or make foolish
statements. However, I figured that there must be some code out there that I
can work with - but I found that the lack of gerber support is striking, and
I can't be the only one in the world that wants to import a gerber and edit
it.
The automatic panelization is really a secondary concern - I will have to
visually inspect the results to ensure quality anyway, and add a product id to
the silk layer so that we can tell what is what when 100 1/2 inch boards come
back from production. So really the first issue is gerber importing and
editting.
I have a functional prototype parser design sketched out in php for the
initial sizing routines on the web that I am planning to then pull into C++
for the "real" DRC code that runs after the designs are uploaded (which is
currently in C++ and another issue but one that can wait for now). The notion
that I had is to release this as a general purpose libgerber (or something
like that) - it should be able to support additions of various import/export
formats, initially I need gerber for Batchpcb and I am thinking of targetting
PCB for export since I may be able to use it to panelize, possibly with the
added nicety of at least partial automation and perhaps DRC checks to replace
our somewhat rudimentary DRC code.
I have looked at a number of different options now (including the python and
perl panelizers), kicad, PCB, Electric and gEDA tools are the most likely
candidates - PCB and gEDA are gaining weight due to issues of either
complexity or maturity. I am, BTW a strictly open source programmer and it is
understood here that anything useful I work on will remain open source (in
fact, all the code I have written for Sparkfun so far has a GPL copyright
notice on it even if it is not really likely to be useful outside of our
context.). Even if I wind up just doing this myself, it will end up being
released to the community.
Breifly again, the general specs:
1. input gerber rs274x and Excellon/NC drill artwork and translate with
accuracy to one of the open source tools formats.
2. be able to edit/panelize designs - minimum size 10x15 inches.
3. output resultant panel in rs274x format - _including_ a drill layer in
rs274x (this is a Gold Pheonix production constraint). NC drill output is
optional.
4. (wishlist) some ability to automate/script this process.
5. long term wish list: a DRC library that is independant of individual tool
formats, drawing routines, objects or data structures - ie. generic, with a
well defined API. The gerber library I mentioned above should be able to hand
libdrc some data and get a report. The total effect would be a small suite of
tools to translate between formats and automate artwork validation, which
might then be employed in other contexts.
Thanks for reading if you made it this far - sorry about the length and
verbosity ... eh, just my nature i guess ;}.
--erik -vv
--
Erik Winn
BatchPCB.com
erik at batchpcb.com
More information about the geda-dev
mailing list