Suggestion for milling option

Manufacturers do differentiate between drilling and milling. They do not like to get “long” holes in the drilling data because this will destroy the drills. As I understand there should be allways separate drill files for milling (or route paths).

So I would suggest to include the option for a generation of such a milling file (as Excellon data like the standard drill files) for slots and a possibility for the data of an additional layer (eco1 or eco2) to be included as plated or non plated data. :gift:

This would help to create plated or non plated slots for several things like rigid-flex boards, panelizing, special contacts and more. :notes:

Sure the manufacturers can generate milling files from gerber but they will have more work for that which I then have on the bill …:credit_card:

I was working for several years with Altium Designer where I often used this possibility and I miss it in KiCad. :eyeglasses:

Best regards, Daniel


Isn’t the CAM system taking care of that and extracting the data how it needs it?
What kind of extra payment do they take for such simple things?

I mean the distinction between PTH and NPTH happens because one kind doesn’t have copper where the hole is afaik.
The system should be able to tell if an elongated hole needs milling rather than drilling…

Also, wishes for features should be posted to the bugtracker with ‘wishlist’ as tag. Devs read this board, but it’s not the official way to get things like this communicated. Be aware that the dev team of KiCAD is small and the most successful way to get stuff implemented is to actually modify the code yourself and send in some pull request.

Hey, thanks for reply.

Some manufacturers need to do the extracting manually. For the adaption of a gerber layout for a board breakout to drill files, they need to know of what kind a slot is. If only specified in a gerber file this could generate questions and work with costs.

The difference in PTH and NPTH is the time where the drilling occurs. This will be done in different steps. Sure the data could be in the same file and be used twice. But if included from a gerber layer it must be differentiable.

The reason for plated edges could be, either the slot is a components contact, or shielding (high-speed design).

If a drill file exists for milling, everything is defined inside the file. The CAM parser of KiCad does not produce it.

This is an examle for milling two slots:

You can see the drill size for plated holes, the tool command, the drilling of the first point of the first slot, then the movement (M15) to the second point, the lift-up of the tool (M16), and so on. (gerbView does not understand it …)

If slots could be drawed as lines with the thickness of the milling tool, it would be much easyer for the designer than to draw all the outlines around it. The adaption to the drill file would also be easyer because positions and sizes could be taken 1:1.

To produce assembly panels slots with breakouts are required which then also could be drawed in the original size.

Many thanks for the link to the bugtracker.

Best regards, Daniel

1 Like

I thought slots were represented in the Excellon files. I should check again.

Anyway, this all sounds like an argument for implementing IPC2581.

1 Like


Principally yes, but only for oval holes in component footprints by using the G85 command.

IPC2581 would be nice.

Best regards, Daniel

Hm… I just did a test yesterday in BZR6608 with a PTH that has got an oval shape:

z_PTH_Oval.kicad_mod (486 Bytes)

The drill file looks like this:

;DRILL file {KiCad (2016-03-04 BZR 6608, Git ba038ac)-product} date 04/06/16 03:15:31
;FORMAT={-:-/ absolute / metric / decimal}

Gerbview is able to show that

Hey, many thanks, this looks good.

So I captured the idea and created some slots for a “slot library” with different lengths to place it around the shape of the pcb to mill the panel slots. It seems to work fine for straight lines. Sure, arcs and circles are not possible but I don’t need it for the moment … maybe I could stagger it in shape if needed …

So I’ve got funny sizes of 4.4 x 64 mm and a hole of 2.4 x 62 mm or also edges with 2 pads of 4.4 x 12 mm with holes of 2.4 x 10 mm for PTH and only the slots for NPTH now.

Best regards, Daniel

1 Like

For panel slots just draw on the Edge.Cuts layer… way more flexible and you can use footprints with varying count of NPTH for mousebites:

Mousebite examples (got 2-11 in a row for placing them):
z_Drill_05x3.kicad_mod (1.1 KB)
z_Drill_05x6.kicad_mod (1.6 KB)

Depending on how you place them vs the edge you have:

  • no post work/filing for fast assembly/production (place recessed)
  • post filing for hobbyist, low count stuff, not visible afterwards (place outside of imaginary outline)

JFYI - the mousebites in the pic are ‘right on the edge’ and leave little broken extensions back when one breaks the boards apart. For smoothness I pull them over a file/sanding paper if needed. They are visible afterwards. So it’s neither one of the two versions up there - it’s right in the middle. :slight_smile:

Another example for mousebites that I did for a small run of pcbs where I didn’t wanted to file and also no pointy things sticking from the outline of the pcb after breaking the boards apart:

PS: the rectangular outlines in the first example have been done in KiCAD entirely (grid 1, 0.5 or 0.25 mm depending on what I did). The outline for the last example was done in a CAD tool (Autodesk Inventor) and imported via DXF. Milling width in both cases was 1 mm. The sharp edged slot ends don’t matter, the milling bit will leave a round there in any case, but drawing rounded slot ends is very cumbersome, rectangular ones work the same and are easier to draw/create.
And the half width short ‘cut ins’ are there to get a rectangular result for mounting stuff into each other. Doesn’t look as nice, but there is only one way to get nice a 90 deg internal corner and that is a file… for hobby OK, but not for a small run :wink:


We have always exported Route info on a custom Gerber layer, drawn in the actual tool-width, as that means we can see the exact tool radius effects.
The FAB houses never said that was an issue, and never charged more, that we saw ?

Do you place you milling info on a separate Gerber layer, and how much more are they charging you ?


When I send my Gerber file and need PCB fabricated, I will have a individual file and put milling into the Gerber keep out layer , so it can be well recognized.

1 Like

The keep-out-layer is not for milling, it’s a help for the guy doing the layout to place footprints so they don’t get into each others hair. The keep-out is defined in the footprint.
It’s not something you populate in the layout.

The fab will mill from the outline file.

If you do v-scoring it’s a different matter though, KiCAD doesn’t have a particular layer for that. I’d suggest one of the Eco layers for it.



So I was away for some time …
In the meantime 3 of my 4 favorite manufacturers have closed. There is only one left and he accepts the standard outline layer (Edge.Cuts) from KiCad to do milling.
But many thanks for your help, specally the mousebytes …

Best regards