← Back to team overview

kicad-developers team mailing list archive

Re: Must tracks & vias of the same net be contiguous?

 

The track/via insertion routines have two modes: blind-append and insert-where-appropriate.  The board parser current relies on the file being correct and uses append.  Changing it to insert fixes the bug.

I like this change because it makes us more resilient, and because it will fix any other (unknown) bugs due to tracks not being grouped properly.

I don’t like this change because it will make board loading slower.

Another idea would be to keep track of tracks/vias as they come in, and only do the sort if we find some out of order.  That’s definitely more risky, though, and may not be much faster.

I’ll do some timings on a large board….

> On 3 Apr 2018, at 14:36, Wayne Stambaugh <stambaughw@xxxxxxxxx> wrote:
> 
> On 4/3/2018 9:29 AM, Tomasz Wlostowski wrote:
>> On 03/04/18 15:13, Jeff Young wrote:
>>> The clean-up algorithms depend on tracks & vias assigned to the same net to be grouped in the segment list.  Is that supposed to be guaranteed?
>> 
>> It is/used to be like this (there was/is a special sorting function,
>> called at least in the TRACK_CLEANER). I would however rewrite the
>> overlapping segment merging algorithm to not rely on the order of
>> segments in the data structure. If nobody opposes I could give this a try.
>> 
>> Tom
> 
> How much risk are we looking at?  Wouldn't it be more prudent to just
> ensure the sorting is performed before performing the track clean
> operation?  I would rather avoid creating any new issues this close to
> v5.  If we cannot avoid making the change, then we may just have to deal
> with it but I would rather that be the last option.
> 
>> 
>> 
>>> 
>>> (I have a file where it is not the case.)
> 
> I thought the sorting was always performed so that segments and vias
> would always be grouped by their net.  I'm not sure how a board file was
> created with an ungrouped segment.  @JP, care to comment on this?
> 
>>> _______________________________________________
>>> 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
>>> 
>> 
>> 
>> _______________________________________________
>> 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
>> 
> 
> _______________________________________________
> 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



Follow ups

References