Adds console_test_planar_drag.py — a live FreeCAD console test that reproduces the quaternion branch-jump failure from #338. Test 2 (realistic geometry) reliably triggers the bug: 10/40 drag steps rejected by the C++ validateNewPlacements() simulator when the solver converges to an equivalent but distinct quaternion branch around 240-330 deg axial rotation. Key findings from the test: - The failure is NOT simple hemisphere negation (q vs -q) - The solver finds geometrically valid but quaternion-distinct solutions when Cylindrical + Planar constraints have multiple satisfying orientations - _enforce_quat_continuity only catches sign flips, not these deeper branch jumps - The C++ validator uses acos(w) not acos(|w|), so opposite- hemisphere quaternions show as ~360 deg rotation
25 KiB
25 KiB