11
\$\begingroup\$

I'm trying to output CAM data from EAGLE 6.2.0 to get some PCBs made at Advanced Circuits. Their preferred NC drill format (particularly the one used by their online FreeDFM tool) is

Excellon Format, ASCII Odd/ None, 2.4 Trailing Zero Suppression, English Units, No Step and Repeats.

Both their online tool and GC-Prevue are automatically recognizing my NC drill files as 2.3 format with leading zero suppression. So, while the holes are the correct size, they are strewn about an area 10x larger than the PCB, causing the DFM tool to go nuts and I'm about ready to follow.

GC-Prevue showing what's wrong

Can I get EAGLE to give me 2.4 trailing-suppressed files (or maybe at least no suppression)? Or, is there a tool that can convert the mangled files EAGLE vomits out to something reasonable?

I've tried using the 'hack' described here in attempt to force no zero suppression, but then my files are detected as 3.3 precision.

My CAM job is defined as:

[Sec_8]
Name[en]="Drill File"
Prompt[en]=""
Device="EXCELLON"
Wheel=""
Rack=""
Scale=1
Output=".NC"
Flags="0 0 0 1 0 1 1"
Emulate="0"
Offset="0.0mil 0.0mil"
Sheet=1
Tolerance="0 0 0 0 0 0"
Pen="0.0mil 0"
Page="12000.0mil 8000.0mil"
Layers=" 44 45"
Colors=" 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 6 6 4 8 8 8 8 8 8 8 8 8 8 8 8 8 4 4 1 1 1 1 3 3 1 2 6 8 8 5 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 4 2 4 3 6 6 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0"
\$\endgroup\$
2
  • \$\begingroup\$ While far from the ideal solution, sed (the unix-ish command line utility) can be a great tool for fixing format problems in text files. \$\endgroup\$ Commented Apr 23, 2013 at 18:07
  • \$\begingroup\$ GC-Prevue never correctly auto-detects my Excellon files. Try setting it manually to 2.4 with no suppression upon import and see if that works. It works just great for me. \$\endgroup\$
    – Shamtam
    Commented Oct 20, 2013 at 20:38

4 Answers 4

7
\$\begingroup\$

Change Device to "EXCELLON_24".

Here are some lines from a .XLN using Device="EXCELLON_24":

...
T01C0.0130
...
T01
X13969Y11517

And here are those same lines in the wrong format using .XLN for Device="EXCELLON":

...
T01C0.01300    
...    
T01    
X139686Y115173

This wrong format causes the 10x NC Drill error shown above; I did not check this with GC_Prevue, but I saw this 10x problem when uploading to OSHPARK.

\$\endgroup\$
1
  • \$\begingroup\$ This worked for me, and for some reason I had to click the "Process Job" button, rather than the "Process Selection" button. The latter seemed to re-output the file, but it was unchanged from using the EXCELLON output device (after changing it to EXCELLON_24). \$\endgroup\$
    – itnAAnti
    Commented Jun 21, 2017 at 17:56
1
\$\begingroup\$

Can you post the NC Drill section of the CAM file you're using? I've made several successful orders from Advanced Circuits and always check FreeDFM. I'm on Eagle 6.3.0 right now, but I've been using the same CAM file for a while.

This is the NC Drill section from my CAM file for AC's standard four-layer (unless you blind &| buried vias, this should work for any number of layers):

[Sec_9]
Name[en]="NC Drill"
Prompt=""
Device="EXCELLON"
Wheel=".whl"
Rack=""
Scale=1
Output="%P/CAMs/%N/NC_Drill.drp"
Flags="0 0 0 1 0 1 1"
Emulate="0"
Offset="0.0mil 0.0mil"
Sheet=1
Tolerance="0 0 0 0 0 0"
Pen="0.0mil 0"
Page="12000.0mil 8000.0mil"
Layers=" 44 45"
Colors=" 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 6 6 4 8 8 8 8 8 8 8 8 8 8 8 8 8 4 4 1 1 1 1 3 3 1 2 6 8 8 5 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 4 2 4 3 6 6 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0"

You'll probably want to change the output since that one puts it in a sub-folder. Otherwise, give it a go.

\$\endgroup\$
3
  • \$\begingroup\$ Diff between mine (added to question) and yours just seems to be the Name, Output (both probably benign), Prompt[en] is Prompt for me (also probably moot), but Wheel=".whl" for you, but ="" nothing for me. Don't know what that is. \$\endgroup\$
    – Nick T
    Commented Jan 23, 2013 at 17:15
  • \$\begingroup\$ I had a suspicion that part of the problem is because my board is relatively tiny, but it's not like my drill hits are confined to a less than 1"x1" square, so numerically there shouldn't be much difference between this and a ~10"x10" board, but I'm not sure. \$\endgroup\$
    – Nick T
    Commented Jan 23, 2013 at 17:17
  • \$\begingroup\$ The size of the board does not matter at all. I've made some less than one square inch boards, granted I panelized them. Have you tried editing the Wheel property? \$\endgroup\$
    – Samuel
    Commented Jan 23, 2013 at 18:53
1
\$\begingroup\$

Probably I found a cause of that problem as I just faced it. The coordinates in your drilling file (*.TXT usually) are ten times larger than they should be most likely because the resolution of a device used in CAM processor (EXCELLON most likely) is 10 times higher than the resolution for GERBER_RS274X. To check it, try the following:

Open the file eagle.def in your $EAGLEDIR$\bin and find a section related to the device you used for drilling file generation, I'll show mine for EXCELLON:

[EXCELLON]

Type     = DrillStation
Long     = "Excellon drill station, coordinate format 2.5 inch"
Init     = "%%\nM48\nM72\n"
Reset    = "M30\n"
ResX     = 10000
ResY     = 10000
;Rack     = ""
DrillSize  = "%sC%0.5f\n"        ; (Tool code, tool size)
AutoDrill  = "T%02d"             ; (Tool number)
FirstDrill = 1
BeginData  = "%%\n"
Units    = Inch
Select   = "%s\n"                ; (Drill code)
Drill    = "X%1.0fY%1.0f\n"      ; (x, y)
Info     = "Drill File Info:\n"\
           "\n"\
           " Data Mode         : Absolute\n"\
           " Units             : 1/100000 Inch\n"\
           "\n"

Now, notice ResX and ResY parameters. When I got 10x larger files than expected, these rows contained 100000 constants. I reduced them to 10000 and voila, I got what I expected.

Also please note that instead of reducing EXCELLON resolution you may want to increase GERBER_RS274X resolution, depending on your needs/board/board manufacturer.

\$\endgroup\$
1
\$\begingroup\$

In GC-Prevue, from the menu select Tools/Customize; Select Settings tab; Tick Use Default NC Drill Import Parameters; Press the button to the right to set the defaults and set Whole Digits to 2 and Precision to 4

HtH Dave

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.