The attached project has a large number of very close collisions in DRC:
All are 1µm off or less. They were all placed with the router in "walk around" or "highlight collisions" without "allow DRC violations". The router and DRC appear to disagree on them — DRC fails them, but the router passes them.
Go to one of the clearance violations and try to adjust the track. The router will not highlight a collision on it, as it believes the route is already valid.
KiCad Version
Application: KiCad PCB Editor arm64 on arm64Version: 7.99.0-1326-ge4fe27993e, release buildLibraries: wxWidgets 3.2.2 FreeType 2.12.1 HarfBuzz 5.3.1 FontConfig 2.14.0 libcurl/7.88.1 (SecureTransport) LibreSSL/3.3.6 zlib/1.2.11 nghttp2/1.51.0Platform: macOS Ventura Version 13.4 (Build 22F66), 64 bit, Little endian, wxMacBuild Info: Date: Jun 4 2023 01:20:58 wxWidgets: 3.2.2 (wchar_t,wx containers) Boost: 1.80.0 OCC: 7.6.3 Curl: 7.77.0 ngspice: 40 Compiler: Clang 13.0.0 with C++ ABI 1002Build settings:
Same issue here on 7.99.0-1463-gef686675 (macOS). @jeffyoung is 7.0.6-rc1 a replacement build for the 7.99 nightlies? I was going to grab a more recent macos nightly just now, but saw that there hasn't been a nightly build after the one from June 17th?
I figured as much. In lieu of an official nightly, I built a nightly on my Mac just now. It appears I'm still running into the exact same issue though.
Build info:
Application: KiCad PCB Editor x86_64 on x86_64Version: 7.99.0-1651-gaf71308184, release buildLibraries: wxWidgets 3.2.2 FreeType 2.13.1 HarfBuzz 7.3.0 FontConfig 2.14.2 libcurl/7.85.0 (SecureTransport) LibreSSL/3.3.6 zlib/1.2.11 nghttp2/1.47.0Platform: macOS Ventura Version 13.1 (Build 22C65), 64 bit, Little endian, wxMacBuild Info: Date: Jun 27 2023 14:34:27 wxWidgets: 3.2.2 (wchar_t,wx containers) Boost: 1.82.0 OCC: 7.7.0 Curl: 7.87.0 ngspice: 40 Compiler: Clang 14.0.3 with C++ ABI 1002Build settings:
I checked by running DRC, finding a gazillion clearance issues, picking one, moving the two traces apart, shoving them back together again, and then re-running DRC, only to find the same issues again (although this time with slightly different should vs. actual numbers).
Jeff Youngchanged title from Lots of very near DRC collisions (rounding errors?) to Router laying tracks slightly tighter than DRC allows (was: lots of very near DRC collisions (rounding errors?))
changed title from Lots of very near DRC collisions (rounding errors?) to Router laying tracks slightly tighter than DRC allows (was: lots of very near DRC collisions (rounding errors?))
FYI @jeffyoung This looks like the same bug that was reported over 6 months ago here #14137 (closed) and then marked as closed. I commented on that bug with more examples and duplicated the orginal steps to replicate it.
Also, to build on part of my comment in #14137 (closed) about the super slow interactive router since V6. As a bandaid for this clearance issue, i set my global clearance to 0.199mm so i didn't have hundreds of DRC errors. And now that i am doing some more routing i thought that i should set it to 0.205mm or something, so even when it does create the very small clearance violations, it will still be above 0.2mm. The problem is that now i cannot even move any vias or traces with the interactive router - it just completely hangs until i mash esc and leave it for several seconds.
Could the router slowdown that many people have noted ( #12670 (closed); #10228 (closed); #10881 (closed)) be related to an interaction between these clearance violations and the fact that the interactive router doesn't like to work with copper that is connected to a DRC violation? In the example above I created a whole bunch of DRC errors by increasing the clearance rule, and then i was unable to use the interactive router to move a via or trace that was connected a piece of violating copper, but wasn't violating the rule itself.
Eg in the image belowi'm trying to slightly move a via near the bottom of the image, but it doesn't work because there is a violation on the same track way up in the top of the image:
In "Highlight Collisions" mode it shows the image below, and it lets me drag the via around, but when i release it reverts back to the original position.
In both "shove" and "walk around" modes move it basically freezes, the screen only updates every 2-5 seconds and that continues even after i have released the mouse button. The only way to being it back to working is to mash the escape button
Could the interactive router slow downs be caused by a feedback loop of small clearance errors being created which then leads to the interactive router freaking out until you move the via/track away and the clearance error goes away, until you bring the via/track back to create dense routing and then it all starts again? Note that I mostly only see the slow downs in and around pretty dense areas of routing.
Sorry, i know this isn't exactly related to this issue page, I'm happy to create a new bug ticket, or comment on one of the already closed performance bugs if you would prefer (can a closed bug get re-opened)? I'm rushing to get a design out at the moment though, so i don't have time to do it right now, but i can do it in a few days.