Arc coordinates change when saving unmodified board.
Description
Arc coordinates unexpectedly change in the board file when saving a board that has not been modified. I can somewhat understand the mid-point changing because of the back and forth calculation between the arc mid-point and radius center (although it shouldn't). The endpoint changing is a much larger problem. One additional data point is that when the footprint (KiCad footprint Mounting_Wuerth:Mounting_Wuerth_WA-SMSI-4.5mm_H1mm_9774010482) is placed at position 0,0, there is no change when saving the board so it may be an issue in the footprint offset calculation. This also affects the master branch. This issue problematic for two reasons:
- The end-point change can break enclosed outlines resulting in unexpected behavior.
- It causes issues for version control users.
The attached project shows the issue along with the diff file of the changes.
Project archive:
Diff after save with no changes:
Steps to reproduce
- Extract the archived project.
- Make a copy of the original board file.
- Open the project and open the board.
- Save the board.
- Compare the original board file and save board files with a diff tool.
- Observe changes to some of the arc mid-points and end-points.
KiCad Version
Application: KiCad PCB Editor x86_64 on x86_64
Version: 7.0.6-rc2-2-g3926173dfe, debug build
Libraries:
wxWidgets 3.2.2
FreeType 2.12.1
HarfBuzz 6.0.0
FontConfig 2.14.1
libcurl/7.88.1 OpenSSL/3.0.9 zlib/1.2.13 brotli/1.0.9 zstd/1.5.4 libidn2/2.3.3 libpsl/0.21.2 (+libidn2/2.3.3) libssh2/1.10.0 nghttp2/1.54.0 librtmp/2.3
Platform: Debian GNU/Linux trixie/sid, 64 bit, Little endian, wxGTK, gnome, x11
Build Info:
Date: Jun 27 2023 16:52:42
wxWidgets: 3.2.2 (wchar_t,wx containers) GTK+ 3.24
Boost: 1.74.0
OCC: 7.6.3
Curl: 7.88.1
ngspice: 39
Compiler: GCC 12.3.0 with C++ ABI 1017
Build settings:
KICAD_SPICE=ON
KICAD_STDLIB_DEBUG=OFF
KICAD_STDLIB_LIGHT_DEBUG=OFF
KICAD_SANITIZE_ADDRESS=OFF
KICAD_SANITIZE_THREADS=OFF