(Zones) Don't pour over same net objects

I’m probably the 10000th user comparing Altium and KiCad, sorry for that.

Altium has this option for Polygon Pours called “Don’t pour over same net objects”, which is something I like to use to separate the ground plane on the top layer from all Ground-going signals to inner layers.

What happens is that none of the ground plane will go over any tracks.
The only thing in KiCad I can find is the option to not pour over any pads, which is only half the battle.

How can I achieve the same thing?

So far I’ve looked into making a “Custom Rule”, but unfortunately I couldn’t find the “right” rule. Can this be done with rules?

I did achieve a desirable result by making the track temporarily larger with twice the clearance width, so “track_width + 2x clearance width”, and then “Create Rule Area from selection”. I then reduce the size of the track back to it’s original width, and together with the option for “not connecting to pads” I get the separation I’m looking for.

The last thing I could probably put into a Python script, but my Python is a bit rusty, and I don’t know the API for KiCad. So if this is the way to do it, I’d love to hear some directions to get started.

Thanks!
Mic

KiCad does not have this feature. You could open a feature request for it and we can investigate and see how popular a request it is. I don’t think there’s any trivial way to fake this feature using existing capabilities.

Thanks for your reply.

Then I’m very interested in any non-trivial ways.

Create keepouts (rule areas) surrounding the tracks etc that you don’t want to pour over.

I’m not so sure.

(rule samenet
(condition "A.Type == 'Zone' && A.NetName == B.NetName")
(constraint physical_clearance (min 0.2mm))
)

This needs more refinement, for example a named zone.

2 Likes

This is absolutely fabulous!!

Thank you very much for this answer.

It’s an underdocumented part of KiCad, but it’s actually easier than in Altium. Very nice.

This is the full rule that works for me:


(rule gnd_top_separation
(layer "F.Cu")
(condition "A.Type == 'Zone' && A.NetName == 'GND' && B.NetName == 'GND'")
(constraint physical_clearance(min 0.25mm))
)
2 Likes

It’s not really undocumented, it’s in the Syntax documentation reachable from the dialog. But admittedly it’s not in v7.0 or even nightly official reference manual. This is a deficiency/bug in the manual.

I believe this was a DRC rule that was added in v7, and I think I’m slacking in updating the custom rule table in the v7+ manual.

1 Like

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