Fix junction deviation and jerk settings behavior (#14004)

* Fix junction deviation and jerk settings behavior

Process settings now follow the selected printer's junction deviation
configuration. When machine_max_junction_deviation is enabled,
default_junction_deviation is shown and jerk settings are hidden. When
junction deviation is disabled, jerk settings are restored and
default_junction_deviation is hidden.

Fix a validation issue where junction deviation mismatch warnings could
be reported even when machine_max_junction_deviation was set to 0.
Warnings now apply only when junction deviation is active and point
directly to default_junction_deviation.

Also simplify Motion ability page visibility checks by reusing local
firmware-flavor booleans.

* GUI tweak

- separate Junction Deviation segment
- JD and Jerk stay visible
This commit is contained in:
Kiss Lorand
2026-06-08 15:27:37 +03:00
committed by GitHub
parent 1e1d9cbaf8
commit bd41eebba9
4 changed files with 62 additions and 38 deletions

View File

@@ -1836,15 +1836,12 @@ StringObjectException Print::validate(StringObjectException *warning, Polygons*
}
}
}
// Check junction deviation
// Orca: Only marlin FW supports max junction deviation. Dont display warning if firmware is not supporting it.
const bool support_max_junction_deviation = ( m_config.gcode_flavor == gcfMarlinFirmware);
if (warning_key.empty() && m_default_object_config.default_junction_deviation.value > max_junction_deviation && support_max_junction_deviation) {
// check junction deviation
else if (m_default_object_config.default_junction_deviation.value > max_junction_deviation) {
warning->string = L( "Junction deviation setting exceeds the printer's maximum value (machine_max_junction_deviation).\n"
"Orca will automatically cap the junction deviation to ensure it doesn't surpass the printer's capabilities.\n"
"You can adjust the machine_max_junction_deviation value in your printer's configuration to get higher limits.");
warning->opt_key = warning_key;
warning->opt_key = "default_junction_deviation";
}
// check acceleration