Placing vias against DRC check

Placing stitching vias on the grid poses a problem when the intended location is against the DRC rules:

  • when I tried to place a via close to an existing track, it (the cursor) got snapped to the track
  • when I “force-placed” a via close to a track with track snapping disabled (SHIFT), the via was placed, but the track automatically adjusted to go through the via
  • so now I try to use ALT-SHIFT to disable object snapping, which allows me to position the cursor on the right spot, but the dynamic DRC does not allow me to actually place the via
  • switching to Router Highlight Mode and disabling DRC works when placing tracks, but it does not allow vias to be placed against the DRC

How to accomplish this?

AOI-KiCad_placing_vias_against_DRC-screenshot0

My workflow (i.e. how I got here): first I fully connected the components using ordinary tracks, then I created zones some/partly incorporating the existing tracks. Now I’m placing vias, so zones on the back can be used to dissipate heat.

Why do you not place your vias first and then routing the track in zigzag between without hurting the via to track clearance ?

I prefer to leave the tracks as they are. There really is no hurt in the violated track-via distance, since the track is now part of the zone that I laid on top/around.

Assuming KiCad 6 try this:
Place your via outside of the snapping zone,
Select the via and press “M” on the keyboard,
Move the via to the desired position and click to lay the via down.
You can move the via on the grid with this workflow, and when I tried it, it does not alter the traces when I click to lay the via down.

Furthermore - To avoid having to repeat the same steps above for every via, this behavior seems to carry over if you create the next via through duplication - That is, when you lay the via down with the above steps, press “ctrl-D” to duplicate the via and continue the stitching placement.

Would this method be compatible with your existing workflow?

The problem here is that you are “wasting” time by laying those tracks in the first place. There are some occasions when it’s useful to draw a copper track through a zone. For example when the zone is narrow and it has to compete wit other tracks. In such a case the interactive router can break the zone by moving tracks, and a track through the (GND) zone will keep the extra part connected.

Why would you do such things in the first place?
There is no need at al to draw the tracks, and when you place via’s in a zone, they automatically get connected to the same net as the zone.

Some tricks that may help in some cases:

  • You can first put some via’s, and then drag them around, this may help with other tracks that get in the way (They get shoved aside if the interactive router is in push 'n shove mode.)
  • When a via is placed with PCB Editor / Place / Add Viaa (Same as the right toolbar menu) then the Automatically update via nets is disabled in the via properties: (This option is enabled when a via is drawn when it’s placed while changing layer during track routing).
  • You can draw an array or row (single dimensioned via) if you want a lot of them.
  • There are plugins for KiCad that can help with via stitching.

Ah! Hadn’t found that one. Did work around this issue by placing the problematic vias close by and then edit x or y coordinate.

True. What I call my workflow is actually generational: I started with the tracks in the first iteration, added the zones later on. So I’m basically building on a working & tested board, which is why I prefer to leave everything in there intact.

Thanks for these! will check out the stitching plugins.

Few years ago (4.0.7 or beginning 5 times) I reported that snapping steals my cursor too strongly. For example going with wide power track to the small pad (one dimension higher than track width and second smaller) I can’t go with my cursor into the area of the pad (to not have teeth at track entering the pad) and then change track widths to not protrude on the other pad size. I had also problems with dragging tracks for the distance smaller than half track width.
In the discussion in that bug report I suggested that snapping should always be limited to some distance measured in screen pixels and I understood that this idea was liked. If it worked that way you will be always able to avoid snapping by small rotation of mouse wheel.
For me it is surprised if snapping can jump your cursor half the screen.

First placing and then moving the vias works for me for now. But I think a nice solution would be if disabling object snapping when pressing ALT-SHIFT would not work only when laying tracks but also when placing vias.

1 Like

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