Fill zones + interactive router = sadness

So I do a lot of power dense DC-DC type stuff, so I tend to throw a ton of copper all over the place for heat sinking, to the point that both sides are almost completely done with fill zones of copper.

None of the interactive routing modes seem to be aware of their existence. They behave as if there is nothing there at all, when in fact there is a huge fill zone with a copper pour. Is there some trick to using the interactive router with fill zones?

I suspect this is a ‘not yet implemented’ situation. I suppose I could trace the outside of each fill zone with a copper trace as a sort of workaround, but if I am doing that, I might as well just route the nets manually anyway.

Just thought I’d ask in case I’m missing something (since half the time, I am heh).

Well, what do you expect? Active avoidance of filled areas? Instant refilling?

I would expect avoidance of filled zones on the copper layers like any other copper. As for unfilled zones I would imagine it would route through those, since there is no copper there yet. But that isn’t really what’s at issue.

My point is the interactive router acts as if there is nothing there when there are FILLED zones, i.e., there is copper laid down, and will route directly through any filled copper zone as if there is no copper at all there. Pads, traces, anything else on the copper layers is avoided.

Auto-refilling etc. is beyond the scope of my post, but perhaps that could be useful as another check box in the router options. I dunno. I just want the interactive router to actually behave correctly, and routing through a solid pour of copper is not correct behavior, in my opinion.

Well, I see your point if a zone is used instead of tracks (maybe for a DC/DC converter), deliberately placed with a specific shape & place and so forth.

That is somewhat different to just applying a flood fill at the end when all tracks have been placed. I am guilty of using both approaches. But, as of now, there is no easy way of telling the program which is which. If you just flood fill at the end, you may want to be able to change tracks and route as usual and redo the fill after that.

It might be possible to enclose certain zones with keep-out (no tracks).

I suggest you file a bug report & tag it with “wishlist”

I tend to fill everything with ground at the end of my routing, and expect to be able to route any old where if I need to go back and modify stuff. So the behavior that Metacollin describes would very much get in my way. OTOH, I imagine that a keep-out would cause problems because you generally do want to connect your fill to a net. Having a “keep out anything but net thus-and-so” would satisfy both of us, I think, or a “make this pour exclusive”.

I second Tim’s answer. I’ve never seen any P&S router which would avoid copper zones…

Tom

PS. Auto-refill is an option, but would have to wait until the zone filling code is cleaned up and optimized (i.e. spatial indexing of zones)

Hmmm, I think maybe I simply have an odd and niche work flow and what I am complaining about is basically a complaint I, and only I, have :blush:.

So, I am not even using fill zones for their fill zone-ness perse, all I want is to draw a solid plane of copper in much the same way you’d use the polygon tool in any drawing program. As far as I can tell, the only means of achieving this in KiCad is with the fill zone, but I am not using any of the normal fill zone features. I don’t have any traces or pads or what have you for it to avoid, any thermals I want generated. I’m literally just trying to lay down copper where I need it. Something like this. I think the only fill zone I’m using as a proper fill zone and not just a way to put down copper polygons is the bottom ground pour (which isn’t the entire bottom even):

On that particular board, there was no need of the interactive router behaving as I want it to (or really interactive routing at all) but on other boards, I have some fill zones with gaps but must not be split and are exactly how I want them, and it would be nice to route around them.

I suspect I’m just doing things strangely and bitching about stuff that most of the time don’t even matter. I didn’t quite realize this when I posted. I’ll live - really all I have to do is manually route a trace outlining a fillzone. Maybe I can script it, once I learn the scripting API. Some day ;).

Hmm, I get what the intention is, but it’s not a filled zone.
I’ve done the same things, manually keep tracks out of the target zone and fill with a higher priority.

What I’d like to have, as a new feature, is the option to convert a conventional track to a ‘poly-track’ of sorts. Currently a track is a single chain of lines connecting two pads. What I’d love to have is the option to split such a track into a closed unregular polygon loop. Dragging each node to define and optimize the outlines. P&S could treat this as a pad or keep-out zone.

This is an older thread, but there is a new release and I am interested in this behaviour.
I think there are two issues here, usage and a feature not complete yet.

If you want maximum copper using pour, then the pour by nature is elastic, so you cannot expect a previous pour to act as a routing barrier.
The more common way to mange this in PCB design, is with Pour+Keepouts.

There is a keepout that you can set to pour over, but trace-&via avoid.
This allows a large copper reserve to be allocated, but still leave trace room.
When poured, final copper will be at least this large.

This looks to work ok in Default,Add trace, where it gives a status message of
‘Track inside a keepout area’
if any corner goes inside the keepout.

It appears that all the data base building blocks are there.

However, it seems that the (rather nice) new OpenGL.Shove Router, does not yet pickup on the Keepout entities, even in build 4.0.2 ?

Search in the bugs does not find this mentioned, but I guess the designers do know about it ?

Some CAD packages allow PCB trace lock-down or preserve, but KiCad seems to not have that feature* ?

That can also assist in copper control, where you define what will be an edge border trace and then lock that, while others are routed. This needs care, as too much lock-down defeats shove…

*Addit: Under DefaultView.Trace.Flags, you can tag as Locked, but the Shove-mode (currently) ignores that too…

Addit2: I did discover something of a workaround, from an artifact in another ‘feature’.
In current build, you can unroute a trace segment, and each end of that unroute is then treated as locked by the Shove Router.
This means you can carefully place a fill area border trace, then in shove mode, unroute one seg, and then other traces will avoid those corners. Yes, it’s rough, but it may be enough to be workable until segment-lock is fixed.

The fix should be easy, as clearly there is already a means to lock a corner build into Shove, it just needs better user control & linking to Locked flag.