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