Mailing list archives : pcb-rnd

ID:2471
From:ge...@igor2.repo.hu
Date:Wed, 21 Nov 2018 04:34:33 +0100 (CET)
Subject:Re: [pcb-rnd] Oshpark and slots - .cnc files merged?
in-reply-to:2470 from Anthony Tuttle <ke...@gmail.com>
replies: 2472 from Anthony Tuttle <ke...@gmail.com>
  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
 
--0-765514570-1542771273=:21900
Content-Type: TEXT/PLAIN; charset=US-ASCII
 
Hi Anthony,
 
On Tue, 20 Nov 2018, Anthony Tuttle wrote:
 
>I made a slot using the new slot layers. 2 interesting things happened.
>The first one is that Oshpark doesn't support the method pcb-rnd uses to
>call out slots. That doesn't necessarily mean it won't work, it just seems
>to mean Oshpark doesn't know if all their factories are on the same page
>about that specific form of slot callout. I notice Oshpark supports G85
>slots, and I see G85 mentioned in the preferences for the Gerber exporter.
>Is this an option to change the slot callout method? Oshpark slot support:
>
>https://docs.oshpark.com/submitting-orders/slots/
 
Thanks, I see they have upgraded their doc and now they write file format 
details so we can see better.
 
Background: there are two totally different sets of files you send to a 
fab in the classic workflow: excellon for drills+slots and gerbers for 
copper+mask+paste+outline. Classic gerbers don't capture anything about 
holes, excellon doesn't know anything about copper. Plus there's literally 
nothing that specifies what each file really is for - they look at the 
file names and try to guess. Yes, this is still how majority of the PCBs 
are made in the 21st century.^1
 
Note: the process was never 100% automated. The gerber and excellon files 
you send don't feed machines. Most fabs run some software on a PC where 
they load your files, manually fix things up (knowing their own machines 
and processes) and re-export them in whatever format their machines need. 
That's how they normally figure what you meant by file names.
 
To your specific questions...
 
I've attached a minimal slot example so you can try how the files end up 
and can try what oshpark says for each combo, without noise. Best if they 
ahve some preview where you can see their render.
 
1. First, the simplest: "callout". I have no idea what they mean by 
callout and we never managed to figure it. I could not find this term in 
any of the file format specs (gerber or excellon). My best guess is that 
it may be some GUI thin in eagle or some other proprietary CAD and when 
they wrote that section of the doc they thought it was widely adopted 
standard. So we can't do anything with callouts until someone explains 
what they really are, on file format level.
 
2. G85: the old/obsolete way of doing it. As you figured, we have optional 
support for that. This is the only thing gerbv can display at the moment, 
and even only git version of gerbv can display it. The G85 command in 
excellon says: "drill a lot of overlapping small holes to get the slot". 
 
What their doc says: 
 
X<numbers>Y<numbers>G85X<numbers>Y<numbers>
 
What our file has:
 
X000625Y000750G85X001375Y000750
 
To me it looks like perfectly matching their spec (and excellon spec too). 
If they can't read it, that suggest they have a bug in their code, please 
contact them (maybe with the minimal exports from the mnimal example I 
attached).
 
3. M15
 
This is the default, more modern approach: we literally tell the CNC to 
spin up the tool, move it down through the board and route the slot on a 
linear path. G00 is "move to starting point, not milling", M15 is the 
"start spinning/move down/start routing", G01 is the linear interpolation 
to the endpoint and then we have an M command to take out the tool and 
stop spinning.
 
Their spec says:
 
G00X<numbers>Y<numbers>
M15
G01X<numbers>Y<numbers>>
M16
 
What we have:
 
G00
X000625Y000750
M15
G01X001375Y000750
M17
 
The only difference is that we use M17 to stop, while they mention M16. 
The difference between them is neglible^2:
 
M16 = Retract With Clamping 
M17 = Retract Without Clamping 
 
So either their importer is too limited and doesn't understand M17, or 
like with G85 their parser does not fully meet their spec. You have access 
to their checker so it is easy to test: just modify M17 to M16 in the 
excellon file (preferrably on the output of the minimal example attached), 
and see if they can now load it.
 
 
>The 2nd interesting thing is that Oshpark tells me:
>
> *  Your project contains 2 drill files, we've merged them.
>    ["main.plated-drill.cnc", "main.unplated-drill.cnc"]
>
>main.unplated-drill.cnc contains a single line: M30
 
M30 is end program. That means an empty drill files, which means you don't 
have unplated drills.
 
>
>Is it okay to merge these files or do they need to be separate to tell the
>fab what is and is not plated?
 
In your specific case, if you really don't have unplated drills, it is 
okay.
 
More generally it is not. As I wrote in the intro, excellon doesn't know 
about copper and old gerber doesn't know about drill. Which means nobody 
can specify plated hols, since that's both drill and copper. The 
workaround is the same hack that is done with the gerber files: file 
naming. EDA software just export different files for plated and unplated 
excellons and the fab figures.
 
If osh merges them, you will probably get back all holes plated. This may 
ruin some boards in various ways, but for real small batches where you can 
even manually re-drill the hole it probably not fatal.
 
HTH,
 
Igor2
 
footnotes:
 
^1 gerber's maintainer, Ucamco, made some efforts to upgrade the format 
and pushes very hard to get the new format adopted. The new format would 
describe all aspects, including holes, with a single gerber format. 
However, the industry is slow to move, and their copyright/licensing term 
for the specification is so nice that for example I can't copy their pdf 
and put it in our svn. Guess how popular this will be among free software 
projects.... Because of this I decided not to even consider dealing with 
their new format until we see multiple fabs ouyr users use explicitly 
demanding the new format.
 
 
^2 as most of the PCB fabbing standards, the official excellon format spec 
is not freely redistributable either. There are extracts and illegal 
copies floating on the web, and we tend to trust them. For example: 
https://gist.github.com/katyo/5692b935abc085b1037e
--0-765514570-1542771273=:21900
Content-Type: TEXT/PLAIN; charset=US-ASCII; name=slot.lht
Content-Transfer-Encoding: BASE64
Content-ID: <alpine.DEB.2.00.1811210434330.21900@igor2priv>
Content-Description: 
Content-Disposition: attachment; filename=slot.lht
 
aGE6cGNiLXJuZC1ib2FyZC12NiB7DQoNCiBoYTphdHRyaWJ1dGVzIHsNCiAg
IHtQQ0I6OmdyaWQ6OnVuaXR9PW1pbA0KIH0NCg0KIGxpOnN0eWxlcyB7DQog
ICBoYTpTaWduYWwgew0KICAgIGRpYW1ldGVyID0gMi4wbW0NCiAgICB0ZXh0
X3NjYWxlID0gMA0KICAgIHRleHRfdGhpY2sgPSAwLjANCiAgICB0aGlja25l
c3MgPSAxMC4wbWlsDQogICAgaG9sZSA9IDMxLjVtaWwNCiAgICBjbGVhcmFu
Y2UgPSAyMC4wbWlsDQogICB9DQogICBoYTpQb3dlciB7DQogICAgZGlhbWV0
ZXIgPSAyLjJtbQ0KICAgIHRleHRfc2NhbGUgPSAwDQogICAgdGV4dF90aGlj
ayA9IDAuMA0KICAgIHRoaWNrbmVzcyA9IDIwLjBtaWwNCiAgICBob2xlID0g
MS4wbW0NCiAgICBjbGVhcmFuY2UgPSAyMC4wbWlsDQogICB9DQogICBoYTpG
YXQgew0KICAgIGRpYW1ldGVyID0gMTM3LjhtaWwNCiAgICB0ZXh0X3NjYWxl
ID0gMA0KICAgIHRleHRfdGhpY2sgPSAwLjANCiAgICB0aGlja25lc3MgPSA4
MC4wbWlsDQogICAgaG9sZSA9IDQ3LjI0bWlsDQogICAgY2xlYXJhbmNlID0g
MjUuMG1pbA0KICAgfQ0KICAgaGE6U2lnLXRpZ2h0IHsNCiAgICBkaWFtZXRl
ciA9IDY0LjBtaWwNCiAgICB0ZXh0X3NjYWxlID0gMA0KICAgIHRleHRfdGhp
Y2sgPSAwLjANCiAgICB0aGlja25lc3MgPSAxMC4wbWlsDQogICAgaG9sZSA9
IDMxLjVtaWwNCiAgICBjbGVhcmFuY2UgPSAxMi4wbWlsDQogICB9DQogfQ0K
DQogaGE6bWV0YSB7DQogICBoYTpzaXplIHsNCiAgICB0aGVybWFsX3NjYWxl
ID0gMC41MDAwMDANCiAgICB4ID0gMjAwLjBtaWwNCiAgICB5ID0gMTUwLjBt
aWwNCiAgIH0NCiAgIGhhOmdyaWQgew0KICAgIHNwYWNpbmcgPSAyNS4wbWls
DQogICAgb2Zmc194ID0gMC4wDQogICAgb2Zmc195ID0gMC4wDQogICB9DQog
fQ0KDQogaGE6ZGF0YSB7DQogIGxpOnBhZHN0YWNrX3Byb3RvdHlwZXMgew0K
DQogICBoYTpwc19wcm90b192Ni4wIHsNCiAgICAgaGRpYT0wLjA7IGhwbGF0
ZWQ9MDsgaHRvcD0wOyBoYm90dG9tPTA7DQogICAgIGxpOnNoYXBlIHsNCg0K
ICAgICAgIGhhOnBzX3NoYXBlX3Y0IHsNCiAgICAgICAgaGE6cHNfbGluZSB7
IHgxPS0zNy41bWlsOyB5MT0wLjA7IHgyPTM3LjVtaWw7IHkyPTAuMDsgdGhp
Y2tuZXNzPTIwLjBtaWw7IHNxdWFyZT0wOyAgICAgICAgfQ0KICAgICAgICBo
YTpjb21iaW5pbmcgeyAgICAgICAgfQ0KICAgICAgICBoYTpsYXllcl9tYXNr
IHsNCiAgICAgICAgIGJvdHRvbSA9IDENCiAgICAgICAgIGNvcHBlciA9IDEN
CiAgICAgICAgfQ0KICAgICAgICBjbGVhcmFuY2U9NDAuMG1pbA0KICAgICAg
IH0NCg0KICAgICAgIGhhOnBzX3NoYXBlX3Y0IHsNCiAgICAgICAgaGE6cHNf
bGluZSB7IHgxPS0zNy41bWlsOyB5MT0wLjA7IHgyPTM3LjVtaWw7IHkyPTAu
MDsgdGhpY2tuZXNzPTEwLjBtaWw7IHNxdWFyZT0wOyAgICAgICAgfQ0KICAg
ICAgICBoYTpjb21iaW5pbmcgeyBhdXRvPTE7ICAgICAgICB9DQogICAgICAg
IGhhOmxheWVyX21hc2sgew0KICAgICAgICAgbWVjaCA9IDENCiAgICAgICAg
fQ0KICAgICAgICBjbGVhcmFuY2U9NDAuMG1pbA0KICAgICAgIH0NCiAgICAg
fQ0KICAgfQ0KICB9DQoNCiAgIGxpOm9iamVjdHMgew0KICAgIGhhOnBhZHN0
YWNrX3JlZi4xOCB7DQogICAgIHByb3RvPTA7IHg9MTAwLjBtaWw7IHk9NzUu
MG1pbDsgcm90PTAuMDAwMDAwOyB4bWlycm9yPTA7IHNtaXJyb3I9MDsgY2xl
YXJhbmNlPTIwLjBtaWw7DQogICAgIGhhOmZsYWdzIHsNCiAgICAgIGNsZWFy
bGluZT0xDQogICAgIH0NCg0KICAgICBsaTp0aGVybWFsIHsNCiAgICAgfQ0K
ICAgIH0NCiAgIH0NCiAgIGxpOmxheWVycyB7DQoNCiAgICBoYTp0b3Atc2ln
IHsNCiAgICAgbGlkPTANCiAgICAgZ3JvdXA9Mw0KICAgICBoYTpjb21iaW5p
bmcgeyAgICAgfQ0KDQogICAgICBsaTpvYmplY3RzIHsNCiAgICAgIH0NCiAg
ICAgIGNvbG9yID0geyM4YjIzMjN9DQogICAgfQ0KDQogICAgaGE6Ym90dG9t
LXNpZyB7DQogICAgIGxpZD0xDQogICAgIGdyb3VwPTEwDQogICAgIGhhOmNv
bWJpbmluZyB7ICAgICB9DQoNCiAgICAgIGxpOm9iamVjdHMgew0KICAgICAg
fQ0KICAgICAgY29sb3IgPSB7IzNhNWZjZH0NCiAgICB9DQoNCiAgICBoYTp0
b3AtZ25kIHsNCiAgICAgbGlkPTINCiAgICAgZ3JvdXA9Mw0KICAgICBoYTpj
b21iaW5pbmcgeyAgICAgfQ0KDQogICAgICBsaTpvYmplY3RzIHsNCiAgICAg
IH0NCiAgICAgIGNvbG9yID0geyMxMDRlOGJ9DQogICAgfQ0KDQogICAgaGE6
Ym90dG9tLWduZCB7DQogICAgIGxpZD0zDQogICAgIGdyb3VwPTEwDQogICAg
IGhhOmNvbWJpbmluZyB7ICAgICB9DQoNCiAgICAgIGxpOm9iamVjdHMgew0K
ICAgICAgfQ0KICAgICAgY29sb3IgPSB7I2NkMzcwMH0NCiAgICB9DQoNCiAg
ICBoYTppbnQtc2lnMiB7DQogICAgIGxpZD00DQogICAgIGdyb3VwPTcNCiAg
ICAgaGE6Y29tYmluaW5nIHsgICAgIH0NCg0KICAgICAgbGk6b2JqZWN0cyB7
DQogICAgICB9DQogICAgICBjb2xvciA9IHsjNTQ4YjU0fQ0KICAgIH0NCg0K
ICAgIGhhOmludC1zaWcxIHsNCiAgICAgbGlkPTUNCiAgICAgZ3JvdXA9NQ0K
ICAgICBoYTpjb21iaW5pbmcgeyAgICAgfQ0KDQogICAgICBsaTpvYmplY3Rz
IHsNCiAgICAgIH0NCiAgICAgIGNvbG9yID0geyM4YjczNTV9DQogICAgfQ0K
DQogICAgaGE6b3V0bGluZSB7DQogICAgIGxpZD02DQogICAgIGdyb3VwPTkN
CiAgICAgaGE6Y29tYmluaW5nIHsgICAgIH0NCg0KICAgICAgbGk6b2JqZWN0
cyB7DQogICAgICB9DQogICAgICBjb2xvciA9IHsjMDA4NjhifQ0KICAgIH0N
Cg0KICAgIGhhOmJvdHRvbS1zaWxrIHsNCiAgICAgbGlkPTcNCiAgICAgZ3Jv
dXA9MTINCiAgICAgaGE6Y29tYmluaW5nIHsgYXV0bz0xOyAgICAgfQ0KDQog
ICAgICBsaTpvYmplY3RzIHsNCiAgICAgIH0NCiAgICAgIGNvbG9yID0geyMw
MDAwMDB9DQogICAgfQ0KDQogICAgaGE6dG9wLXNpbGsgew0KICAgICBsaWQ9
OA0KICAgICBncm91cD0xDQogICAgIGhhOmNvbWJpbmluZyB7IGF1dG89MTsg
ICAgIH0NCg0KICAgICAgbGk6b2JqZWN0cyB7DQogICAgICB9DQogICAgICBj
b2xvciA9IHsjMDAwMDAwfQ0KICAgIH0NCg0KICAgIGhhOnRvcC1wYXN0ZSB7
DQogICAgIGxpZD05DQogICAgIGdyb3VwPTANCiAgICAgaGE6Y29tYmluaW5n
IHsgYXV0bz0xOyAgICAgfQ0KDQogICAgICBsaTpvYmplY3RzIHsNCiAgICAg
IH0NCiAgICAgIGNvbG9yID0geyNjZDAwY2R9DQogICAgfQ0KDQogICAgaGE6
dG9wLW1hc2sgew0KICAgICBsaWQ9MTANCiAgICAgZ3JvdXA9Mg0KICAgICBo
YTpjb21iaW5pbmcgeyBzdWI9MTsgYXV0bz0xOyAgICAgfQ0KDQogICAgICBs
aTpvYmplY3RzIHsNCiAgICAgIH0NCiAgICAgIGNvbG9yID0geyNmZjAwMDB9
DQogICAgfQ0KDQogICAgaGE6Ym90dG9tLW1hc2sgew0KICAgICBsaWQ9MTEN
CiAgICAgZ3JvdXA9MTENCiAgICAgaGE6Y29tYmluaW5nIHsgc3ViPTE7IGF1
dG89MTsgICAgIH0NCg0KICAgICAgbGk6b2JqZWN0cyB7DQogICAgICB9DQog
ICAgICBjb2xvciA9IHsjZmYwMDAwfQ0KICAgIH0NCg0KICAgIGhhOmJvdHRv
bS1wYXN0ZSB7DQogICAgIGxpZD0xMg0KICAgICBncm91cD0xMw0KICAgICBo
YTpjb21iaW5pbmcgeyBhdXRvPTE7ICAgICB9DQoNCiAgICAgIGxpOm9iamVj
dHMgew0KICAgICAgfQ0KICAgICAgY29sb3IgPSB7I2NkMDBjZH0NCiAgICB9
DQoNCiAgICBoYTpzbG90LXBsYXRlZCB7DQogICAgIGxpZD0xMw0KICAgICBn
cm91cD0xNA0KICAgICBoYTpjb21iaW5pbmcgeyBhdXRvPTE7ICAgICB9DQoN
CiAgICAgIGxpOm9iamVjdHMgew0KICAgICAgfQ0KICAgICAgY29sb3IgPSB7
IzhiNzM1NX0NCiAgICB9DQoNCiAgICBoYTpzbG90LXVucGxhdGVkIHsNCiAg
ICAgbGlkPTE0DQogICAgIGdyb3VwPTE1DQogICAgIGhhOmNvbWJpbmluZyB7
IGF1dG89MTsgICAgIH0NCg0KICAgICAgbGk6b2JqZWN0cyB7DQogICAgICB9
DQogICAgICBjb2xvciA9IHsjMDA4NjhifQ0KICAgIH0NCiAgIH0NCiB9DQoN
Cg0KIGhhOmxheWVyX3N0YWNrIHsNCiAgbGk6Z3JvdXBzIHsNCiAgIGhhOjAg
ew0KICAgIG5hbWUgPSB0b3BfcGFzdGUNCiAgICBoYTp0eXBlIHsgdG9wPTE7
IHBhc3RlPTE7ICAgIH0NCiAgICBsaTpsYXllcnMgeyA5OyAgICB9DQogICB9
DQogICBoYToxIHsNCiAgICBuYW1lID0gdG9wX3NpbGsNCiAgICBoYTp0eXBl
IHsgc2lsaz0xOyB0b3A9MTsgICAgfQ0KICAgIGxpOmxheWVycyB7IDg7ICAg
IH0NCiAgIH0NCiAgIGhhOjIgew0KICAgIG5hbWUgPSB0b3BfbWFzaw0KICAg
IGhhOnR5cGUgeyB0b3A9MTsgbWFzaz0xOyAgICB9DQogICAgbGk6bGF5ZXJz
IHsgMTA7ICAgIH0NCiAgIH0NCiAgIGhhOjMgew0KICAgIG5hbWUgPSB0b3Bf
Y29wcGVyDQogICAgaGE6dHlwZSB7IGNvcHBlcj0xOyB0b3A9MTsgICAgfQ0K
ICAgIGxpOmxheWVycyB7IDA7IDI7ICAgIH0NCiAgIH0NCiAgIGhhOjQgew0K
ICAgIG5hbWUgPSBncnBfNA0KICAgIGhhOnR5cGUgeyBzdWJzdHJhdGU9MTsg
aW50ZXJuPTE7ICAgIH0NCiAgICBsaTpsYXllcnMgeyAgICB9DQogICB9DQog
ICBoYTo1IHsNCiAgICBuYW1lID0gSW50ZXJuDQogICAgaGE6dHlwZSB7IGNv
cHBlcj0xOyBpbnRlcm49MTsgICAgfQ0KICAgIGxpOmxheWVycyB7IDU7ICAg
IH0NCiAgIH0NCiAgIGhhOjYgew0KICAgIG5hbWUgPSBncnBfNg0KICAgIGhh
OnR5cGUgeyBzdWJzdHJhdGU9MTsgaW50ZXJuPTE7ICAgIH0NCiAgICBsaTps
YXllcnMgeyAgICB9DQogICB9DQogICBoYTo3IHsNCiAgICBuYW1lID0gSW50
ZXJuDQogICAgaGE6dHlwZSB7IGNvcHBlcj0xOyBpbnRlcm49MTsgICAgfQ0K
ICAgIGxpOmxheWVycyB7IDQ7ICAgIH0NCiAgIH0NCiAgIGhhOjggew0KICAg
IG5hbWUgPSBncnBfOA0KICAgIGhhOnR5cGUgeyBzdWJzdHJhdGU9MTsgaW50
ZXJuPTE7ICAgIH0NCiAgICBsaTpsYXllcnMgeyAgICB9DQogICB9DQogICBo
YTo5IHsNCiAgICBuYW1lID0gZ2xvYmFsX291dGxpbmUNCiAgICBoYTp0eXBl
IHsgYm91bmRhcnk9MTsgICAgfQ0KICAgIGxpOmxheWVycyB7IDY7ICAgIH0N
CiAgICBwdXJwb3NlID0gdXJvdXRlDQogICB9DQogICBoYToxMCB7DQogICAg
bmFtZSA9IGJvdHRvbV9jb3BwZXINCiAgICBoYTp0eXBlIHsgYm90dG9tPTE7
IGNvcHBlcj0xOyAgICB9DQogICAgbGk6bGF5ZXJzIHsgMTsgMzsgICAgfQ0K
ICAgfQ0KICAgaGE6MTEgew0KICAgIG5hbWUgPSBib3R0b21fbWFzaw0KICAg
IGhhOnR5cGUgeyBib3R0b209MTsgbWFzaz0xOyAgICB9DQogICAgbGk6bGF5
ZXJzIHsgMTE7ICAgIH0NCiAgIH0NCiAgIGhhOjEyIHsNCiAgICBuYW1lID0g
Ym90dG9tX3NpbGsNCiAgICBoYTp0eXBlIHsgc2lsaz0xOyBib3R0b209MTsg
ICAgfQ0KICAgIGxpOmxheWVycyB7IDc7ICAgIH0NCiAgIH0NCiAgIGhhOjEz
IHsNCiAgICBuYW1lID0gYm90dG9tX3Bhc3RlDQogICAgaGE6dHlwZSB7IGJv
dHRvbT0xOyBwYXN0ZT0xOyAgICB9DQogICAgbGk6bGF5ZXJzIHsgMTI7ICAg
IH0NCiAgIH0NCiAgIGhhOjE0IHsNCiAgICBuYW1lID0gcG1lY2gNCiAgICBo
YTp0eXBlIHsgbWVjaD0xOyAgICB9DQogICAgbGk6bGF5ZXJzIHsgMTM7ICAg
IH0NCiAgICBwdXJwb3NlID0gcHJvdXRlDQogICB9DQogICBoYToxNSB7DQog
ICAgbmFtZSA9IHVtZWNoDQogICAgaGE6dHlwZSB7IG1lY2g9MTsgICAgfQ0K
ICAgIGxpOmxheWVycyB7IDE0OyAgICB9DQogICAgcHVycG9zZSA9IHVyb3V0
ZQ0KICAgfQ0KICB9DQogfQ0KIGxpOnBjYi1ybmQtY29uZi12MSB7DQogIGhh
Om92ZXJ3cml0ZSB7DQogICBoYTpkZXNpZ24gew0KICAgIHRleHRfc2NhbGUg
PSAxMDANCiAgICB2aWFfdGhpY2tuZXNzID0gMi4wMDAwIG1tDQogICAgdmlh
X2RyaWxsaW5nX2hvbGUgPSAzMS41MCBtaWwNCiAgICB0ZXh0X3RoaWNrbmVz
cyA9IDANCiAgICBsaW5lX3RoaWNrbmVzcyA9IDEwLjAwIG1pbA0KICAgIHBv
bHlfaXNsZV9hcmVhID0gMjAwMDAwMDAwLjANCiAgICBjbGVhcmFuY2UgPSAy
MC4wMCBtaWwNCiAgIH0NCiAgIGhhOmVkaXRvciB7DQogICAgZ3JpZHNfaWR4
ID0gNA0KICAgIGdyaWQgPSAyNS4wMCBtaWwNCiAgIH0NCiAgfQ0KIH0NCn0N
Cg==
 
--0-765514570-1542771273=:21900--
 

Reply subtree:
2471 Re: [pcb-rnd] Oshpark and slots - .cnc files merged? from ge...@igor2.repo.hu
  2472 Re: [pcb-rnd] Oshpark and slots - .cnc files merged? from Anthony Tuttle <ke...@gmail.com>
    2473 Re: [pcb-rnd] Oshpark and slots - .cnc files merged? from ge...@igor2.repo.hu