← Back to team overview

kicad-developers team mailing list archive

Re: [RFC] new connectivity algorithm - testers needed

 

Hi Tom,

I just briefly tested it on the demo project kit-dev-coldfire-xilinx_5213 and it works well with some quirks:

    - can not edit via properties (drill and dia) during placement
        - with Q key nor by selecting one from custom via sizes
- Add vias tool use via properties set by Route tracks tool or by selecting one from custom via size *before* selecting Add vias tool

    - shove of free placed vias not working
- when moving freely placed vias then other traces and any other vias are not shoved (maybe something to do with note below) - when moving in OpenGL, the via visual looks to be moved between the top and the first layer below top (see via-move.png and via-move2.png)

- net propagation within track tracks only near track corners or near vias (see via-net.png> 3V3 is propagated from track corners and from already placed vias, vias was placed in arrow direction) - It looks like the need to be placed by touching the drill through to another through drill or track corner

Anyway great work, looking forward to merging it into master.

Jakub


Dne 29.4.2017 v 13:35 Tomasz Wlostowski napsal(a):
On 28.04.2017 23:04, Jakub Kozdon wrote:
Hi Tom,

Can not build on Linux (LMDE2 3.16.0-4-amd64) see log.

KiCad master build like a charm.

Hi Jakub,

Fixed, give it a try if you can...

Cheers,
Tom

Jakub

Dne 25.4.2017 v 17:23 Tomasz Wlostowski napsal(a):
Hi all,

I've pushed the branch [1] containing a rewrite of the pcbnew's
connectivity algorithm. By this algorithm, I mean:
- computing the ratsnest and checking if all connections are complete
- propagating net codes from the pads to the tracks/vias
- removing unconnected copper islands in zones

Compared to the old algorithm, it introduces several new
features/improvements:
- no limitations in via/zone connections - you can have loose (stitching
vias), overlapping copper zones or zones connecting pads/vias without
direct track connections.
- items no longer loose their nets when not connected to any pad.
connecting to a new pad causes automatic net code propagation.
- the algorithm makes zero assumptions about connectivity of the items,
vias in particular. This removes another obstacle importing designs from
other tools (neither Eagle nor Altium make difference between stitching
and 'ordinary' vias).
- ratsnest can be calculated between any sort of copper items (not only
pads). This is a must-have if we want to have copper arcs or arbitrary
copper shapes in the future.
- show local ratsnest works for the GAL
- marking missing connections between overlapping objects on different
layers
- free via placement tool

The branch also contains a bit of refactoring of the base pcbnew code:
- hidden DLISTS behind iterators. Now you can use ordinary C++11 range
based for to iterate over board's primitives. This is the first step
towards cleanin up the storage model.

As with all new stuff, there are some still some issues to sort out:
- the legacy autorouter is currently disabled, as it relies a lot on the
old connectivity algorithm's data model. We're working to migrate it to
the new one alongside porting it to the GAL canvas.
- there's no automated via stitching tool yet. I'm waiting to review
Heikki's patches for the automagic via stitcher.
- the message panel does no longer show the 'links' and 'nodes' counters
as the new ratsnest has no direct counterpart for these. Is there any
purpose for these counters other than diagnostics/debug?
- some code formatting/cleanup may still be necessary

@Heikki - once again, the sooner you'll publish your entire via
stitching code, the higher the chance you'll get it integrated in Kicad.
We can help with that.

I encourage you to check out the branch, build it and test with your
designs. In particular, if you tried zone stitching with single-pad
components, try replacing them with vias and check if the board
connectivity is correctly resolved and there are no DRC errors.

I'll send some boards demonstrating the new features soon.

Your feedback will be greatly appreciated!

Cheers,
Tom

[1] https://github.com/twlostow/kicad-dev/tree/tom-connectivity-apr24

PS. The final branch will also support per-net rat line visibility and
colors as a bonus ;-)

_______________________________________________
Mailing list: https://launchpad.net/~kicad-developers
Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
Unsubscribe : https://launchpad.net/~kicad-developers
More help   : https://help.launchpad.net/ListHelp


Attachment: via-move.png
Description: PNG image

Attachment: via-move2.png
Description: PNG image

Attachment: via-net.png
Description: PNG image


References