I have several times run into an issue which I can’t find that anyone else on the forum suffers from. Not sure if I have a bad DRC setup, or if my expectations are a bit too high.
When routing lanes of tracks between IC:s (for example) I love to use the shove router both to make the lanes look nice and to aid in finding good signal routes. This works great overall, but I have an issue where vias tend to move into component pads. More than once boards have gone to production where a via or two has snuck into a pad, causing potential solder issues.
Can the shove router be prevented from moving vias into pads? I understand that under some circumstances you want to place vias in pads, so it shouldn’t be a strict DRC error.
Here the resistor on the right has a via right below itself. When I drag the GND track, or if I route another track forcing the GND track to move, it may move the via into the resistor’s pad.
In this simple case, you will easily spot the via, but when the boards are more complex, its easy to miss. If there is no solution already, I’ve been thinking of writing a plugin which lists these occurances.
I don’t think there is currently a real solution for this.
A partial workaround it to select a via which tends to do this and then press l (ascii 108d) to lock the via, but this (should) prevent it from moving at all.
Another partial workaround is to make a checklist for things to do at the end of a design before you generate the final Gerbers.
Manually checking for "Via in Pad can be one of the items on your checklist.
There are some GUI settings you can do to make it easier to do this with a reasonable amount of confidence. I suggest:
Layers Manager: Turn of all layers except top and bottom copper.
Layers Manager “Items” tab. Turn off: “Tracks”
Turn off rendering of zones (left icon bar on screen).
With the combination of those settings, pretty much the only visible things on your PCB are pads and via’s. You can make all vias stand out more by repeatedly clicking on the via icon on the left of the screen to switch them between “Show in Oultine mode” and “Show in Fill mode”. Repeated clicking blinks the via’s, and human eyes (as all prey animals) naturally get alerted by anything moving (or blinking). It may be a tiger (or a T-Rex).
The screenshot below is of a 50x50mm board with the above settings. I have put vias through pads deliberately in this board, as it is quite dense and designed for hand soldering so it’s not a big issue anyway. The via’s and via-through-pads are quite easy to spot with these settings.
It could be made even a bit more clear when you disable the view of the pad clearance and the net names on the pads. The less clutter there is, the clearer the remaining parts are.
Thank you for great answers. Will add this to our final checks and the method described by @paulvdh should help. Will look forward to Kicad 6 and custom DRC; let’s see if they come out as useful or overly complex.