How to re-route tracks with multiple DRC violations?


Hi Kicadders,

Few times during my layout works I’ve encountered a problem with multiple DRC violations.
Most often it happens once I move a footprint with already routed tracks; the new location makes multiple DRC violations. At this time I’m unable to re-route the track in the affected area, because more than one track segment is in collission with e.g. pads.
In the legacy mode I can disable “enforce DRC” option and fix the routing, but the option seems to have no effect in OpenGL mode.
Is there any solution other than use Legacy mode to fix tracks in such situation?
Many of my designs are iteration work where I do stuff then change and improve (rinse, repeat)


A screenshot would be nice as an overview of the extent of the damage.
Can you use the “push and shove” routing to let PCBnew move your traces to a sensible place?

The simplest way is probably to simply delete the affected trace segments and redraw them again in the right place.

And always state the version of KiCad you are using.


Any rules-based router, will struggle when copper-violations appear in its path.
Best is to unroute colliding segments, so that the Shove router can work with a clean data-set, without adding log-jams in its way.

of course, some simple helpers could be nice here, I’ve seen for example ‘Unroute attached segments’ in other CAD packages, useful when you want to move a part in a way you know will spawn a lot of trace collides.

It seems something like ‘select violating segments’ after a DRC, should not be hard to code ?
Next step would be to delete those segments to rats nest.


Thanks for the input. I’m currently on 4.0.7. I don’t use P&S by default as it automagically breaks my clean layouts moving the traces around the screen :wink: What pi***s me off is that sometimes it modifies a track far beyond the edit area (e.g. if I work out some nice parallel traces, pushing them to keep equal spacing, PnS changes the pad exit few turns down the track. So now most of my OGL routing time I’m in the “highlight collisions” mode, switching to PnS only if I’m doing some cleanup.
And yes I know it’s easiest to delete the offending area and re-route tracks, but it’s unoptimal since all I need is to drag the traces to new location, usually not far away (i’m thinkig of some subtle fine-tuning like moving 0603 few thou left/right having two traces underneath, not a total redesign). Disabling the “enforce DRC” did the thing for me in Legacy, but for some reason it’s not working now.
I’ll try to prepare some screenshots illustrating what I mean later on :slight_smile:
Thanks, anyway.


So you want to have a very dominant and extremely fine level control over minute details and you want it to work exactly to the plan in your head.

Euhmm, maybe design your own PCB package?

I was having a vision of you wanting to move an 800 + pin BGA, but for 2 legged components such as resistors this seems so trivial that it hardly warrants this thread.

P&S routing is an wonderful tool. Sometime ago I made a PCB a bit too densely (my own fault of course) and I rand out of room and could not find a way to squeeze in the last 10 or so traces. That was just before I discovered the P&S routing. Then I started using the P&S routing and was able to finish the board in a fairly small amount of time. I did things I would not have considered possible before. I think that if you use it often enough, it changes the way you think about how to route boards.

I agree here that the P&S routing sometimes leaves tracks (off screen) in a weird state. A big help here can be to zoom out a bit for more overview and push the tracks a just a little bit less, or more. The difference in routing can be very significant.

Disabling the DRC rules, moving stuff on top of each other and then wanting an easy way to repair seems like a very backward to do things. I would like to go the other way. I would love it if I could drag a component around (for small corrections) and the P&S routing would keep the component connected and push other traces aside in the same way as you can now push away traces to make room for via’s and such.

While typing this, I suddenly got the idea that you have not found the settings for P&S routing (yet).
I had to search for it for a bit:
PCBnew -> Preferences -> Interactive Routing -> …
There are quite a bit of options in that menu to fine tune it’s behaviour to you likings.
I just noticed there also is a checkbox for: [ ] Allow DRC violations. Which seems to be the functionality you are searching for.


It works only in “Highlight collisions” mode. Without allowing violations this mode just stops when a collision would occur, if my memory serves me correctly.


Most would use Shove, in the interests of more compact designs and finishing faster…

However, if you switch to Highlight Collisions & Allow DRC, that seems to assist pure manual routing, as much as you are allowing the tools to do ?

If you manually move a few thou, you need very fine grid and high zoom, but you can manually manage the clearances, as the Highlight is quite fast and obvious (tested on 5.0 RC2)


Your hint with the “Allow violations” did the trick… That’s the quirks with the current Kicad dichotomy… two canvases, two different options, same idea.
I do use PnS but only for local cleanup, as I don’t feel it’s doing what I’d want when routing a track. And yes I know it can be a time saver, but I currently don’t do designs that complicated that cannot be effectively routed manually, and some stuff needs precise control (like RF for example).
Thanks again everyone for your input :slight_smile:


This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.