Pick and place file inputs

1,226 views
Skip to first unread message

Maddog

unread,
Sep 1, 2015, 11:32:40 PM9/1/15
to OpenPnP
A few thoughts and discussion with Jason started on another thread.
1) What file inputs are used to generate pick and place parameters feed into Openpnp?
I found this interesting discussion where Altium, and eagle have a common script used by board houses.
How is Altium and other high end packages supported now?
http://www.element14.com/community/thread/18218/l/pick-and-place-file-altium-format?displayFullThread=true&forceNoRedirect=true

2) what file inputs are used to generate paste parameters feed into openpnp?
Gerbers are most useful and common across all platforms.
How does the openpnp round extruder going to deal with square and rectangles in gerbers?

Jason von Nieda

unread,
Sep 1, 2015, 11:44:12 PM9/1/15
to ope...@googlegroups.com
On Wed, Sep 2, 2015 at 11:32 AM, Maddog <rich.ob...@gmail.com> wrote:
A few thoughts and discussion with Jason started on another thread.
1) What file inputs are used to generate pick and place parameters feed into Openpnp?
I found this interesting discussion where Altium, and eagle have a common script used by board houses.
How is Altium and other high end packages supported now?
http://www.element14.com/community/thread/18218/l/pick-and-place-file-altium-format?displayFullThread=true&forceNoRedirect=true

There is no direct import support for Altium format right now, although I suspect it would be very easy to massage an Altium file into one of the supported formats. 

Writing an importer for another format in OpenPnP is very easy. Here is the Eagle one, for example:

The vast majority of that relatively small file is GUI. The actual import is about 50 lines of code. 

So, there are a couple options. Someone could write an Altium importer, or someone could write a simple CSV importer and then scripts for the various packages to export the CSVs. 




2) what file inputs are used to generate paste parameters feed into openpnp?
Gerbers are most useful and common across all platforms.
How does the openpnp round extruder going to deal with square and rectangles in gerbers?

To start with it will use a basic circle filling algorithm where it will know the size of the dot it can place and then will use some basic rules to determine how many of those dots it should put in a polygon of a given size. This is all under development right now and is still somewhat in the research phase. Later on more complex algorithms can be plugged in, but this circle filling algorithm will be the reference implementation.

As with almost everything in OpenPnP, there is a reference implementation that I write and then anyone else can very easily write their own implementations of things and plug them in. This way much smarter people than I can do cooler stuff :)

Jason




--
You received this message because you are subscribed to the Google Groups "OpenPnP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openpnp+u...@googlegroups.com.
To post to this group, send email to ope...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/192a1fe0-ffea-4c04-b9c0-d9014f81ee4b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Rich Obermeyer

unread,
Sep 2, 2015, 2:07:23 AM9/2/15
to ope...@googlegroups.com
Don't think you read the element14 pnp discussion the same as I did.
There is already an eagle ulp script to generate a .pnp file compatible format with most existing board houses.  If you import that format, you should cover most all cad packages without any additional work.  Why go non standard?
The script for eagle can be found here.  Just my 2cents.
https://github.com/cri-s/cvtmount/blob/master/origins-v6.ulp

Your paste strategy sounds good.  Let me know if I can help.
You received this message because you are subscribed to a topic in the Google Groups "OpenPnP" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/openpnp/Zt92419RqKw/unsubscribe.
To unsubscribe from this group and all its topics, send an email to openpnp+u...@googlegroups.com.

To post to this group, send email to ope...@googlegroups.com.

Jason von Nieda

unread,
Sep 2, 2015, 2:21:57 AM9/2/15
to ope...@googlegroups.com
Rich,

Where did you find https://github.com/cri-s/cvtmount/blob/master/origins-v6.ulp? I don't see that referenced in the thread and I don't see it's format (CSV) mentioned in the thread either. 

In any case, like I said earlier, I am happy to add support for whatever people are using. If this is a preferred format, I'll support it. I already support Eagle mountsmd.ulp and KiCAD .pos. Adding another is no problem. It's not a matter of one or the other.

Even better would be if someone else writes the importer and sends a pull request. :)

Jason



Cri S

unread,
Sep 2, 2015, 10:04:13 AM9/2/15
to OpenPnP
If you need comma, not tab separated Altrium files, you could convert it
using awk.
On github.com/cri-s/tmp  you find the conversion awk file, just a hack,
and if you need awk.exe for windows, you could download it from github.com/cri-s/cvtmount

Usage, windows example on command line:
awk.exe -f mnt.awk source.csv
The output have fixed names of pp.mnt and pp.mnb 
rename it if you'r want.

For any issue, report it or open issue on cri-s github and i try to fix it.


Rich Obermeyer

unread,
Sep 2, 2015, 12:35:53 PM9/2/15
to ope...@googlegroups.com
Jason,
Google is a wonderful thing.  One thing lead me to another. And then there was origins.ulp.

I am just trying to get to a solution.  I do not have eagle or kicad and I know at least one other person that is in the same situation.  So other than installing eagle or kicad I can't use openpnp right if I wanted too.  
If I knew how to add or modify your Java build I would be more than happy to do the importer.  The learning curve there seems a little steep for me 😔 
I do understand your position.

Documenting a format would be the first step.

Rich

Cri S

unread,
Sep 2, 2015, 1:14:48 PM9/2/15
to OpenPnP
The awk solution is intermediary.
It converts Altroid comma separated file to the same format as produced by eagle ready for openpnp eagle importer.
Using ostermiller utility theoreof
I nave the code, the only missing part is the gui. For real work use
Smt-maestro. I know, it works as i know under windows and linux only.
Let me know if you want such importer

Maddog

unread,
Sep 2, 2015, 4:47:31 PM9/2/15
to OpenPnP
I atttached a typical Altium V15 pnp file.

I read though the manual again and it talks about zeroing the vacuum head by placing it at the surface of the PCB.
When placing a part, how does it know how tall the component is?
Is this a manual operation for each component type?
Pick Place.pnp.txt

Jason von Nieda

unread,
Sep 2, 2015, 10:19:50 PM9/2/15
to ope...@googlegroups.com
Rich,

OpenPnP has a parts database that is defined by the user. The part contains a height field. Ideally, if you use a consistent naming scheme, you should only have to set the part height for a part once, no matter how many boards you use it in.

I've created an issue for adding an Altium importer at: https://github.com/openpnp/openpnp/issues/142

In the mean time you can easily build a OpenPnP board file manually from the UI. It's pretty quick and painless and you only have to do it once for a board. Or, if you can export another format that is closer to one of the currently supported formats and just massage the data in Excel. Both the Eagle and Kicad formats are simple tab delimited files that aren't much more than a ref designator, x, y and rotation. If you can get that data out of Altium it should be quite easy to massage the file over.


Jason


Reply all
Reply to author
Forward
0 new messages