I'm working on putting things together for a multi-design panel that's going out for assembly as soon as I get the PCBs from the fab house. I used gerbmerge to get everything together, and that worked quite nicely.
The next step is to produce a "centroid" file for Screaming Circuits, which contains the origins of every part on the board. In the case of a single design this isn't such a problem, because all the parts are in one file with locations that are accurate relative to each other. They just have to line up one of the parts and all the others go along for the ride, regardless of where the origin is (whether you're talking the centroid file's origin or the placement of the physical PCB on the pick-n-place machine).
The problem is, when I try to get this data together for a panel, I find that while the partlist data (either from the Screaming Circuits centroid ULP or from Eagle's Export Partlist) references everything to the Eagle origin, the Gerber data from the CAM processor is "randomly" placed in the coordinate plane. I'm aware *why* this is (Gerber coords are always positive, origin is based on the furthest bottom/left drawable item in any layer drawn or not), but the here's the crux of the problem: nowhere can I find any information about what this offset actually is for a given board. Without this basic information, I'm unable to determine the difference between the partlist origin and the Gerber origin, making it effectively impossible to actually create a merged centroid file for the panel based on gerbmerge's selected per-board origin.
I stumbled on a partial solution for now by the fact that I designed all these boards absolutely centered on the Eagle origin. My script can find the extent of the board outline in Gerber space, split the difference, and with some other black magic determine where in the merged Gerbers they actually reside. However, this doesn't have a chance of working in the general case.
I thought about adding a non-drawble (e.g 49 Reference) entity at -10,-10 to "force" the Gerber origin, but when doing a Zoom-to-Fit on the design it ends up just scaling the board down into the near-invisible range. This happens whether or not the layer is visible, which I consider to be a (separate) problem anyway. Zoom-to-Fit should have the option of scaling to only the visible layers...
Anyway, either I'm missing some hidden offset data somewhere and this is solvable now, or the Eagle coders need to find some way to add this data (Gerber comment?) in the next revision. I plan on releasing my partlist merge tool as well as probably writing a tutorial or three on how to do panelization of both PCB art and assembly, but I'm stuck relying on boards being centered on the origin for my script to work, there's really no point.