Length tuner broken?
Description
The track length tuner does not appear to work.
Steps to reproduce
Add two components, connect them pretending one is an MCU and the other a RAM chip. Take the length of an outer wire (note: there could be a "capture length" feature) then click the outer track again: the program displays the length/length (exact same number) saying it is too short.
You can "optimize" it by adding wiggles until it's happy (saying the same length in the interactive experience) then click. Click the track again and now it is longer.
More generally, clicking tracks to check theirs length after having matched them does not always display the same value. Sometimes checking the same trace twice consecutively gives a different result. On other occasions the optimized length is simply not credible. I have it optimize tracks that are visibly shorter (think the diagonal, vs the outer line of a rectangle) where the optimization shows a solution when dragging the wiggles, but as soon as one clicks to finish the trace that is obviously still much shorter, clicking it again displays a value that is indeed shorter than the set value that was presumably reached. On one occasion the program displayed the wiggled trace length that was shorter than the straight, non-wiggled trace.
I think this feature is not working in the latest nightly at least. It produces decent wiggles but their length cannot be trusted.
I found this the hard way many hours into routing a BGA to another BGA and the final result was not visually credible. I redid the length matching three times with results that does not appear to be plausible. It is possible to repro some of the anomalies using a quick test like the one pictured below.
KiCad Version
Application: KiCad (64-bit)
Version: (5.99.0-11599-g9a9a155d67), release build
Libraries: wxWidgets 3.1.5 libcurl/7.74.0-DEV Schannel zlib/1.2.11
Platform: Windows 10 (build 22427), 64-bit edition, 64 bit, Little endian, wxMSW
Build Info: Date: Jul 31 2021 08:59:20 wxWidgets: 3.1.5 (wchar_t,STL containers) Boost: 1.75.0 OCC: 7.5.0 Curl: 7.74.0-DEV ngspice: 34 Compiler: Visual C++ 1928 without C++ ABI
Build settings: KICAD_USE_OCC=ON KICAD_SPICE=ON
This is a quick example layout I user to try and (successfully) repro some of the behaviors.
Below is my work in progress. The diagonal trace is supposedly the same length as the outer traces, according to the length tuner while dragging the wiggles. Checking it immediately after gives a result that is shorter than the straight-line version(!) and any attempt to add any more wiggles to the trace results in a "too long" length, while is is still visibly shorter. Also the length of the 3rd trace counting down from the top-right cannot possibly be correct. I redid it multiple times and the program insists in telling if matched the length exactly, but the inner traces (that are shorter by nature of being bound by the outer traces) gets more wiggles and appear more credible.