Clearance via - track

Hi,
I have a via between F_cu and B_cu, but it is also really close to other tracks of F_cu:
I have found this issue before in my design:
image
However, I cannot set the DRC to raise an error. How can I set this clearance value?

Thanks!

If the DRC doesn’t find a violation between different nets, it’s a very serious bug. I suspect there’s something else going on. Can you attach the project (zipped folder) here?

1 Like

The thing is that they are from the same net. I am designing a coil, so the trace folds back and forth like this:


circular_complexv2.zip (1.9 MB)
Here is the project.
Thanks!

If they are from the same net than why KiCad should have anything against them being connected?

Exactly.
Maybe some custom rule can be specified?

Indeed. KiCad has no built in features to keep track segments of the same net separated. There are already a few scripts / plugins to do special things like this, but you have figure out what works for yourself.

Making via’s smaller will help a bit.
Adding a track segment on the outside that is on 45 degrees with the radial tracks helps.
For the inside, you probably have to stagger the via’s in 3 or even 4 circles.

I’m not sure, but a custom rule as Claudio.Lorini suggests probably won’t work. A script to generate your “coil” gives you an easy way of experimenting with the geometry that works. Making the clearance outline visible also help.

And also, lock your tracks and via’s, so they do not get moved accidentally by the interactive router.

i was thinking something like:

but i have to admit i don’t really know what i’m doing here :-), never had the need to use custom rules but I’ve been always been curious to try…

It cannot work properly, at some point the trace will need to touche the via to ensure the connection.
So the problem is to find out if the trace is supposed to touch the via or not supposed to.

You’re right, Bertrand. KiCad can’t do something like “check that the via is on top of one track segment but away from other segments of the same track”. Same net clearance works for some items, but no matter how hard I try to think, I can’t find a way to circumvent the inherent logical difficulty of this use case. Even though it certainly is logically possible, to be included in KiCad it should be lightning fast because the real time DRC must work almost real time. It would probably also require being able to compare not two but three items, and that certainly isn’t going to happen.

For on-demand (not on-the-fly) DRC check you could do it in a python plugin. To me it also looks like the example design would be a good candidate to automate in some way, and if it would be, it would make sense to take care of the problem in the automation phase.

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