Mailing list archives : pcb-rnd

Date:Sat, 6 Feb 2021 15:47:24 +0100 (CET)
Subject:Re: [pcb-rnd] new: major cleanup & upgrade of the vendordrill
in-reply-to:4747 from Bob Paddock <>
Hello Bob,
On Fri, 5 Feb 2021, Bob Paddock wrote:
>> I know the vendordrill plugin is not much used anymore,
>> I think the motivation was that one of the possible use cases is to
>> specify a fab's drc settings and drill map in one place.
>I can shed a bit of historical light here.
Thank you, it's nice to have first hand info from the very user who 
requested the feature originally! I am going to include your story in our 
upcoming documentation.
>At that time, ~20 years ago, APCircits was the primary provider of low
>cost boards.
>To use the service they had a very small drill rack that could be used
>and a small
>set of allowable clearances.  Also the libraries of the day had
>nothing in common
>as far as drill/whole sizes.
Libraries can't do this "right" today or any time in the future - because 
there's no "right way" of doing it. The final details of your board will 
depend on so many things, including which fab you choose, which soldering 
method you choose, which population (manual, p&p), etc....
It's an interesting topic on its own, with efforts like IPC's idea on 
having different variants of SMD pad sizes depending on "density" of the 
board to oblong pads for throuh-hole components hobbyists often prefer for 
easier soldering or to avoid copper annulus tearing off while manually 
drilling the hole on the etched board....
I think a good library needs to be consistent but it simply can not 
address that many different and often contradicting requirements for 
different workflows, so there will always be some postprocessing. E.g. 
the user selecting the right footprint from different variants or doing 
some tuning at the end or keeping a dedicated lib that is designed to 
work with only his own workflow.
>It was, and as JohnG says still is, a PITA to have to completely redo a layout
>for small tweaks like drill whole sizes and clearances simply to send the board
>to a different vendor.
>If a CAM job can support multiple vendors or is easy to tweek multiple CAMs
>for different vendors, really anything that doesn't require touching the layout,
>could supplant the vendor file concept.
I am not sure what you mean here. Before I startd the vendor drill 
cleanup, for a moment I thought I could just remove the while plugin and 
do this from CAM jobs. But then I figured that wouldn't work. Here is the 
On an abstract level, there are two ways we can do the drill tuning: 
1. we do it like the vendor drill plugin does, making modifications to the 
2. we do it during the export, so there's one board for all different fabs 
and we just cheat on export, not exporting the board 1:1 but doing random 
I think 2. wouldn't work: it would immediately invalidate your DRC results 
and could actually break your board by causing shorts or broken nets. And 
worst, you wouldn't be able to detect it because it is already in ps or 
png or gerber by the time the problem occurs, so no {c r}, no DRC. The 
only way around is if the code makes modificaitons to the board, before 
you export, so you have a chance to revise the changes (including running 
DRC on them). Which is exactly what the vendor drill plugin always did.
The other interesting thing is generalizing the whole problem a bit: I 
have a board that I drew two variants of. One for home etching (first 
proto) and one for a fab house. In theory I could just send in the 
home-etch optimized board to the fab house... but that would be terribly 
suboptimal. For home etching I can't do plated holes so I have extra vias 
for thru-hole component pins that I know I won't be able to solder from 
the component's side. And of course the board is bigger because I need to 
use thicker tracks and much, much wider clearances. So when I reworked the 
board for the fab, I could reroute a few traces and got a much smaller and 
simpler board.
So at the end of the day: the difference between the two variants is not 
merely a few geometrical changes like drill sizes, trace widths and 
clearances. If the difference is small, like 0.25mm clearance vs. 0.254mm 
clearance, then yes, an export cheat could work. But when the difference 
is more significant, it will bring a lot of changes far beyond trace 
widths and hole sizes, so there will be just two variants of the board, 
in two files. It's not nice, but I don't think we can avoid that.
Because of that, I decided to keep and clean up the vendor drill plugin. 
The only major change will be that I am going to remove all the DRC 
related stuff. I've already worked out an alternative method for bundling 
vendor drill map and drc config (... and any other config and drc scripts 
and user scripts and menu patches), so we will be able to create a vendor 
"config" without the vendor drill plugin trying to know anything about 
trace withs, which is a DRC thing. (More on this later).
Best regards,

Reply subtree:
4748 Re: [pcb-rnd] new: major cleanup & upgrade of the vendordrill from