How to fill a zone within a zone


I need a filled zone for a net which is surrounded by another filled zone connected to a different net. If I create and fill a zone for the outer area with a keepout for the inner zone, then attempt to define the inner zone, DRC complains that the “start point is inside or too close (to) an other()area”. Inside? Yes!

I know the usual application for filled zones is for one power plane per layer board but I’m trying to produce a metal-clad PCB single layer design. Its also the kind of thing that would be required for isolation style routing for reproducing two-layer SMPS designs I often see in app. notes.

Is there a Kicad technique I haven’t discovered yet?


Set your smaller inner fills to Priorities higher than 0


OK thanks, but while that now allows me to construct the outline of the inner zone (remembering to select the different net as I set the zone options) nothing happens when I click “Fill Zone” for that specific zone or “Fill or refill all zones”. No error - just nothing.


Oh, I get it. The keepout is unnecessary - just design zones with different priority values. Can’t believe I was being so sllly!


The priority number reflects the order that Kicad fills the zones, when set all the same, I believe it begins at the top left and works down,

The safer way is to define the priorities where if it needs to be defined first it has a higher number, this doesn’t need to stop at 2 planes, you could say have a filled zone thermal pad on a 5V zone inside the major ground plane.


Thanks again. As you can tell I’m just starting out with Kicad but apart from the clunky polygon fill you end up with on a circular PCB outline, I’m loving it already.


The weird circles are actually a reflection of the Industry, most Cheap fabs software cannot support Vector circles on a gerber only line segments, so they define it with line segments, (you can change it to 32 segments to clean it up)

I’m at what i would call an ugly intermediate level with it. I now know what i am doing, but keep getting caught out by forgetting just how small SMD stuff on a board can be, (That and vias under 0.3mm holes get pricy)


Sure, but 32 segments on a 250mm diameter circle isn’t going to turn out very well either. It also seems circular tracks have their own problems so my second thought on how to tidy such edges isn’t really practical either. Given that there’s already a choice between two different numbers of segments/360 deg. I can’t help wondering why this parameter isn’t provided as a numerical entry.


If its a round PCB, just make the plane bigger than the board and it should fill it well.

If the segmenting is still visible turn on corner smoothing, and place corners around the board at fairly close points, the corner smoothing will hide those segment junctions.


You can only fill a zone that has a connection to its net


Even if I define the fill zone well outside the circular edge-cut, the fill still ends up having 32 segments with varying clearance from the edge.
Not explored what corner smoothing does yet.


Ignore what I just said. I was thinking of the problem with the 3D of the filled area. Of course all other forms of output look fine!


Adrian and Rerouter, could you clarify what you meant by this? I am dealing with the same problem right now—filled zones on a circular, 10-cm-diameter board—and the edges look horrible due to the 32-segments-per-360-degrees limitation. It doesn’t matter whether I extend the zone out past my Edge.Cuts circular outline. I checked the gerbers and the 32-segment approximation is definitely still happening.

I’m particularly interested in this idea of “placing corners around the board at fairly close points, [so that] corner smoothing will hide those segment junctions.” How would you do this?


Ok, Looked into it more, as there will normally be a gap to the edge of the board anyway (makes routing less likely to break a bit on the fabs end)

Draw a circle something like 0,6mm smaller diameter than your edge cut circle, then draw your zone with points along that circle smaller than your fillet radius (max is about 10mm), this will let you keep it as circular as I can see with the current options.