Mailing list archives : pcb-rnd

ID:2489
From:ge...@igor2.repo.hu
Date:Fri, 30 Nov 2018 13:38:51 +0100 (CET)
Subject:[pcb-rnd] FYI: old drc design flaw
Hi all,
 
while working on the new DRC infra and dialog boxes, still running the old 
DRC logics, I figured the old logics has a design flaw that won't be 
fixed. 
 
This is just an FYI mail for those interested in the tech behind pcb-rnd 
(and geda/pcb in this case). The problem will be gone once we switch to 
the programmable drc later on.
 
So about the bug.
 
Let's assume we have two nets, A and B with a lot of copper objects, and 
there is the minimum copper distance between different nets requirement 
set. If there are more than two places where the two nets are too close, 
the DRC code will always find only the first or the first two. Furthermore 
if it finds two, they may even be the same, duplicate.
 
The reason this happens is how the DRC finds the gaps. It simply lists all 
objects in net A, then bloats them up by the minimum gap value and starts 
listing again; the first moment a new item would enter the list, we know 
we got too close to something that was not part of the net without the 
bloat -> gap too small.
 
Well, in reality it's not really a clean listing. It's both listing and 
marking. But not a clean marking either: it uses the same flags (typically 
FOUND and SELECTED) the user also uses... The whole code doing this 
(find.c) is a big mess on all levels, so this bug won't get fixed, but new 
code will be written from scratch later on.
 
Regards,
 
Igor2
 

Reply subtree:
2489 [pcb-rnd] FYI: old drc design flaw from ge...@igor2.repo.hu