Attached is a minimal sample of the alleged bug: the layout contains only two tracks on the top layer: a 0.15mm wide track of length 2.55mm, and a 0.42mm track of length 0 (it does show as a disc). The edges of those tracks are 0.12mm away from each other.
The DRC says that the tracks cross
DRC-bug.kicad_pcb (4.8 KB)
It is my opinion that the above by itself describes the bug. However, for some background on this (i.e., how did I stumble into this and why do I care): I’m trying to achieve stubless vias (vias that do not produce a stub in inner layers due to KiCAD’s inability to have pads of different diameters for different layers). Using notation (d,h) to denote a via with pad’s diameter d and hole’s diameter h, I am writing a program that scans the .kicad_pcb
file and replaces every via (d,h) with a via (h + 0.002mm, h) + pads (of diameter d) on outer layers + pads on any layer where a track connects to the via.
For the pads, I noticed that KiCAD accepts tracks of length 0, so it seems like the most effective way to put a round pad: just create a track of width d (the diameter of the original via) and length 0 (i.e., the track goes from the position of the via, to the position of the via).
The funny thing is: in the original board where I’m trying the program, there are hundreds of vias, and many tens of vias placed pretty much in the same arrangement as this one (it’s a via to fan-out from a BGA, so there are many many others that are similarly connected).
And yet, the DRC gives me only this one error. No nets unconnected, no objects too close, nothing: just this one tracks crossed error. (the minimal sample comes from that board; I just erased everything else, and the error still shows up)
KiCAD’s version info:
Application: Pcbnew
Version: 5.1.9-73d0e3b20d~88~ubuntu18.04.1, release build
Libraries:
wxWidgets 3.0.4
libcurl/7.58.0 OpenSSL/1.1.1 zlib/1.2.11 libidn2/2.0.4 libpsl/0.19.1 (+libidn2/2.0.4) nghttp2/1.30.0 librtmp/2.3
Platform: Linux 5.4.0-66-generic x86_64, 64 bit, Little endian, wxGTK
Build Info:
wxWidgets: 3.0.4 (wchar_t,wx containers,compatible with 2.8) GTK+ 3.22
Boost: 1.65.1
OpenCASCADE Community Edition: 6.9.1
Curl: 7.58.0
Compiler: GCC 7.5.0 with C++ ABI 1011
Build settings:
USE_WX_GRAPHICS_CONTEXT=OFF
USE_WX_OVERLAY=ON
KICAD_SCRIPTING=ON
KICAD_SCRIPTING_MODULES=ON
KICAD_SCRIPTING_PYTHON3=ON
KICAD_SCRIPTING_WXPYTHON=ON
KICAD_SCRIPTING_WXPYTHON_PHOENIX=ON
KICAD_SCRIPTING_ACTION_MENU=ON
BUILD_GITHUB_PLUGIN=ON
KICAD_USE_OCE=ON
KICAD_USE_OCC=OFF
KICAD_SPICE=ON