← Back to team overview

kicad-developers team mailing list archive

Re: zone fill with micro-vias


> > I've been fiddling around with the new zones & filling, and I'm super
> > impressed!
> >
> > However, the zone fill algorithm does not know that it does not need
> > to avoid micro or laser-drilled vias from the component to layer 2
> > when filling a ground plane on layer 1.
> > Presumably the layer stack
> > is Component:Layer 2:Layer 1:Copper in this 4-layer board; i saw no
> > options to change the layer connections for these micro-vias(? ). Can
> > fix this if somebody points me in the right direction...
> >
> Fixed.

excellent, thanks!

> >
> > Also, shouldn't a zone fill eliminate ratsnest lines appropriately?
> > How to fix this?
> >
> This is the second step in zone redesign.
> A reliable algorithm to calculate connectivity between pads considering
> zone outlines (i.e. polygons) is not easy to find.
> 2 pads can be in the same zone polygon and not connected, if there are
> tracks (or vias) in this polygon.
> These tracks and vias (+ isolation gap) can create obstacles which break
> connection between pads (or vias).

Yes, agreed.

> This is a very common case.
> Currently, my main problem is :
> - how to determine if pads (or pads + tracks + vias) are connecteds by
> zones when tracks and/or vias create holes in a given zone polygon.
> - the algorithm must be reliable and reasonably fast.

does it? is a few seconds ok, say for refreshing the list of
connected / unconnected pads & vias (say after a button press or so)?

> (Pray to have a connection in all cases is *not* a good algorithm)
> - less critical: how to determine if the remaining copper in a zone has
> no very narrow section and if the connection has everywhere a sufficient
> size

How are the zones filled at this point? If they are filled with other
tracks, then we could just do a region-growing algorithm on all the
tracks in that filled region, much the same way the netlist is created
from segments by propagating net codes. For each net, select one pad
and propagate to all others that are connected by line & endpoint
radius considerations -> those not affected are not connected. I do
not think it is possible to determine whether a via is connected to a
zone without an actual fill 'plan' or 'instantiation'.

> FreePCB does not detect insulated pads in a zone, and we can have
> inside a zone a pad not connected (if tracks encircle this pad)
> I (or an other guy) must study gpcb code.

Or we could just ask them. gEDA people are plenty friendly...i asked
them about the hierarchy stuff.

> Unfortunately, currently i have a lot of work, and i must also finish
> some sections of code relative to the complex hierarchy implantation.

uh... you mean the stuff I grafted into eeschema? Need any help? What
was wrong with what I wrote??

> This is a complex code.
> (Critical bugs i found were solved, but the code needs some work to be
> finished.),.
> So i can't work very well on zones until end of april.

Follow ups