Some checks failed
Build and Test / build (pull_request) Has been cancelled
The datum plane detection in getDistanceType() only checked for App::Plane (origin planes). This missed two other class hierarchies: - PartDesign::Plane (inherits Part::Datum, NOT App::Plane) - Part::Plane primitive referenced bare (no Face element) Both produce empty element types (sub-name ends with ".") but failed the isDerivedFrom<App::Plane>() check, falling through to DistanceType::Other and the Planar fallback. This caused incorrect constraint geometry, leading to conflicting/unsatisfiable constraints and solver failures. Add shape-based isDatumPlane/Line/Point helpers that cover all three hierarchies by inspecting the actual OCCT geometry rather than relying on class identity alone. Extend getDistanceType() to use these helpers for all datum-vs-datum and datum-vs-element combinations. Adds TestDatumClassification.py with tests for PartDesign::Plane, Part::Plane (bare ref), and cross-hierarchy datum combinations.
41 KiB
41 KiB