PnP data from Gerber?

433 views
Skip to first unread message

The Guru

unread,
Jul 4, 2015, 6:40:05 PM7/4/15
to fire...@googlegroups.com
I think I know the answer to this, but I'll ask anyway. Is there any way to get PnP positioning information from Gerber files? In short, I have a bunch of PCB I generated by panelizing different layouts together. There is no single PCB in Eagle with all the layouts together. So unless I can get placement information from the gerber I will have to manually figure out the offset. Just curious.

-Tom

ric...@hornbaker.com

unread,
Jul 4, 2015, 8:59:30 PM7/4/15
to fire...@googlegroups.com
It's been a while since I panelized in Eagle.  Are you still using Eagle to output the different Gerber layers, or are you panelizing outside of Eagle?  Isn't one of the options to also output the origins file?  Or does it get completely disconnected from the component library when you panelize?

Neil Jansen

unread,
Jul 5, 2015, 2:48:47 PM7/5/15
to fire...@googlegroups.com
On Sat, Jul 4, 2015 at 6:40 PM, The Guru <cyberr...@gmail.com> wrote:
I think I know the answer to this, but I'll ask anyway.  Is there any way to get PnP positioning information from Gerber files?  In short, I have a bunch of PCB I generated by panelizing different layouts together.  There is no single PCB in Eagle with all the layouts together.  So unless I can get placement information from the gerber I will have to manually figure out the offset.  Just curious.

No, gerber files are just a bunch of apertures and g-code, it doesn't contain the centroids of the parts.  You are supposed to use centroid files (generated by your EDA program) to get the positioning information.  

You should still be able to load them into OpenPnP one at a time, if you have the original non-panelized versions in native EDA format (EAGLE, etc).  Just run the centroid script on each, load them into the job one by one, and set the 0,0 point on each.  You should have one job with multiple boards in it, and openpnp should be able to run them in one shot.


--
Neil Jansen, Co-Founder
Tin Whiskers Technology, LLC

The Guru

unread,
Jul 7, 2015, 10:03:20 PM7/7/15
to fire...@googlegroups.com
My Gerber is generated outside of eagle using gerbmerge. I've been using it for years before eagle could panelize. I have not been able to figure out how to use the panelize feature in eagle yet anyway. I think my panel is bigger than the size allowed for the free version.

Neil - I'm struggling with the "zero" part. I guess zero for each additional board would be the board width plus the gap between boards? I'll play with it once I get basic PnP working, which is still sketchy at best.

Tom

Neil Jansen

unread,
Jul 7, 2015, 10:15:45 PM7/7/15
to fire...@googlegroups.com
On Tue, Jul 7, 2015 at 10:03 PM, The Guru <cyberr...@gmail.com> wrote:

Neil - I'm struggling with the "zero" part. I guess zero for each additional board would be the board width plus the gap between boards?  I'll play with it once I get basic PnP working, which is still sketchy at best.

Sorry, forget about the 'zero' part, that was a bad way of explaining it.  What I would do is hilight each board in the job and one by one, use the 2-point manual alignment tool to locate the boards by jogging.  This will be easiest if you have at least 2 fiducials per board, but if not, you can use another placement instead.

Michael Anton

unread,
Jul 7, 2015, 10:34:13 PM7/7/15
to fire...@googlegroups.com
Is there a way in OpenPNP to tell it that the board is a panel?  Usually, one would give it the part locations and rotations for one board in the panel, and then specify the pitch and number of copies in each axis.  This is called step and repeat on the old ECM machines.  It wouldn't make sense to me, to create a separate file to import for each board in a panel if they are all identical.

Mike

Jason von Nieda

unread,
Jul 7, 2015, 10:47:40 PM7/7/15
to fire...@googlegroups.com
TL;DR: Add the same board to the job several times and set the position of each to the origin of each board in the panel.

OpenPnP has the concept of board files and job files. Board files define the placements on a board and can be thought of very similarly to a PCB design file, like an eagle .brd. Typically you will create a board file for a board one time and reuse it many times in a job. 

Job files tell OpenPnP where to find one or more boards on the machine. You can add the same board or multiple different boards to a job as many times as you want. You set the origin of each board in the job.

So, for a panel you would create a board file for your board design, which you could import from Eagle and then you'd add that board to the job for as many times as that board appears in the panel. Currently you'll have to set the origin for each manually as there is no built in step and repeat, but if that's a feature that would be useful it's easy enough to add.

I did not really spend much time thinking about panelization in OpenPnP as the target user was more of a hobby user who would be likely to place one or two boards at a time, not a whole panel, but as OpenPnP grows up these are the kinds of things we'll need to add.

Jason



--
You received this message because you are subscribed to the Google Groups "FirePick" group.
To unsubscribe from this group and stop receiving emails from it, send an email to firepick+u...@googlegroups.com.
To post to this group, send email to fire...@googlegroups.com.
Visit this group at http://groups.google.com/group/firepick.
For more options, visit https://groups.google.com/d/optout.

Michael Anton

unread,
Jul 7, 2015, 11:05:56 PM7/7/15
to fire...@googlegroups.com
It would be nice to have some sort of step and repeat functionality.  I've assembled assembled panels that had 100 very tiny boards on them, with only a couple of parts per board.  It would be a bit annoying to have to put in 100 offsets to accommodate a panel like that.

I would think that adding this functionality would be pretty simple.  If all else fails, I'd end up creating a script that would do the equivalent to the original board file before it is imported.

Mike

Jason von Nieda

unread,
Jul 7, 2015, 11:27:01 PM7/7/15
to fire...@googlegroups.com
I added an issue to track this feature: https://github.com/openpnp/openpnp/issues/128

Jason

Reply all
Reply to author
Forward
0 new messages