ID: | 4748 |
From: | rn...@igor2.repo.hu |
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 <gr...@gmail.com> |
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 reason... 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 board 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 transformations 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, Igor2
Reply subtree:
4748 Re: [pcb-rnd] new: major cleanup & upgrade of the vendordrill from rn...@igor2.repo.hu