|
@ -2376,8 +2376,12 @@ static void clean_up_after_endstop_or_probe_move() { |
|
|
(void)bilinear_z_offset(reset); |
|
|
(void)bilinear_z_offset(reset); |
|
|
#endif |
|
|
#endif |
|
|
|
|
|
|
|
|
|
|
|
// Enable or disable leveling compensation in the planner
|
|
|
planner.abl_enabled = enable; |
|
|
planner.abl_enabled = enable; |
|
|
|
|
|
|
|
|
if (!enable) |
|
|
if (!enable) |
|
|
|
|
|
// When disabling just get the current position from the steppers.
|
|
|
|
|
|
// This will yield the smallest error when first converted back to steps.
|
|
|
set_current_from_steppers_for_axis( |
|
|
set_current_from_steppers_for_axis( |
|
|
#if ABL_PLANAR |
|
|
#if ABL_PLANAR |
|
|
ALL_AXES |
|
|
ALL_AXES |
|
@ -2386,9 +2390,11 @@ static void clean_up_after_endstop_or_probe_move() { |
|
|
#endif |
|
|
#endif |
|
|
); |
|
|
); |
|
|
else |
|
|
else |
|
|
|
|
|
// When enabling, remove compensation from the current position,
|
|
|
|
|
|
// so compensation will give the right stepper counts.
|
|
|
planner.unapply_leveling(current_position); |
|
|
planner.unapply_leveling(current_position); |
|
|
|
|
|
|
|
|
#endif |
|
|
#endif // ABL
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
@ -2396,24 +2402,23 @@ static void clean_up_after_endstop_or_probe_move() { |
|
|
|
|
|
|
|
|
void set_z_fade_height(const float zfh) { |
|
|
void set_z_fade_height(const float zfh) { |
|
|
|
|
|
|
|
|
|
|
|
const bool level_active = leveling_is_active(); |
|
|
|
|
|
|
|
|
#if ENABLED(AUTO_BED_LEVELING_UBL) |
|
|
#if ENABLED(AUTO_BED_LEVELING_UBL) |
|
|
|
|
|
|
|
|
const bool level_active = leveling_is_active(); |
|
|
if (level_active) |
|
|
if (level_active) { |
|
|
|
|
|
set_bed_leveling_enabled(false); // turn off before changing fade height for proper apply/unapply leveling to maintain current_position
|
|
|
set_bed_leveling_enabled(false); // turn off before changing fade height for proper apply/unapply leveling to maintain current_position
|
|
|
} |
|
|
|
|
|
planner.z_fade_height = zfh; |
|
|
planner.z_fade_height = zfh; |
|
|
planner.inverse_z_fade_height = RECIPROCAL(zfh); |
|
|
planner.inverse_z_fade_height = RECIPROCAL(zfh); |
|
|
if (level_active) { |
|
|
if (level_active) |
|
|
set_bed_leveling_enabled(true); // turn back on after changing fade height
|
|
|
set_bed_leveling_enabled(true); // turn back on after changing fade height
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#else |
|
|
#else |
|
|
|
|
|
|
|
|
planner.z_fade_height = zfh; |
|
|
planner.z_fade_height = zfh; |
|
|
planner.inverse_z_fade_height = RECIPROCAL(zfh); |
|
|
planner.inverse_z_fade_height = RECIPROCAL(zfh); |
|
|
|
|
|
|
|
|
if (leveling_is_active()) { |
|
|
if (level_active) { |
|
|
set_current_from_steppers_for_axis( |
|
|
set_current_from_steppers_for_axis( |
|
|
#if ABL_PLANAR |
|
|
#if ABL_PLANAR |
|
|
ALL_AXES |
|
|
ALL_AXES |
|
|