For set_z_fade_height use set_bed_leveling_enabled

This commit is contained in:
Scott Lahteine 2018-03-29 18:16:20 -05:00
parent d1734a089a
commit 1a75165f35
2 changed files with 7 additions and 21 deletions

View File

@ -138,30 +138,16 @@ void set_bed_leveling_enabled(const bool enable/*=true*/) {
void set_z_fade_height(const float zfh, const bool do_report/*=true*/) { void set_z_fade_height(const float zfh, const bool do_report/*=true*/) {
if (planner.z_fade_height == zfh) return; // do nothing if no change if (planner.z_fade_height == zfh) return;
const bool level_active = planner.leveling_active; const bool leveling_was_active = planner.leveling_active;
set_bed_leveling_enabled(false);
#if ENABLED(AUTO_BED_LEVELING_UBL)
if (level_active) set_bed_leveling_enabled(false); // turn off before changing fade height for proper apply/unapply leveling to maintain current_position
#endif
planner.set_z_fade_height(zfh); planner.set_z_fade_height(zfh);
if (level_active) { if (leveling_was_active) {
const float oldpos[] = { current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS] }; const float oldpos[] = { current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS] };
#if ENABLED(AUTO_BED_LEVELING_UBL) set_bed_leveling_enabled(true);
set_bed_leveling_enabled(true); // turn back on after changing fade height
#else
set_current_from_steppers_for_axis(
#if ABL_PLANAR
ALL_AXES
#else
Z_AXIS
#endif
);
SYNC_PLAN_POSITION_KINEMATIC();
#endif
if (do_report && memcmp(oldpos, current_position, sizeof(oldpos))) if (do_report && memcmp(oldpos, current_position, sizeof(oldpos)))
report_current_position(); report_current_position();
} }

View File

@ -179,7 +179,7 @@ void GcodeSuite::G28(const bool always_home_all) {
// Disable the leveling matrix before homing // Disable the leveling matrix before homing
#if HAS_LEVELING #if HAS_LEVELING
#if ENABLED(RESTORE_LEVELING_AFTER_G28) #if ENABLED(RESTORE_LEVELING_AFTER_G28)
const bool leveling_state_at_entry = planner.leveling_active; const bool leveling_was_active = planner.leveling_active;
#endif #endif
set_bed_leveling_enabled(false); set_bed_leveling_enabled(false);
#endif #endif
@ -326,7 +326,7 @@ void GcodeSuite::G28(const bool always_home_all) {
#endif #endif
#if ENABLED(RESTORE_LEVELING_AFTER_G28) #if ENABLED(RESTORE_LEVELING_AFTER_G28)
set_bed_leveling_enabled(leveling_state_at_entry); set_bed_leveling_enabled(leveling_was_active);
#endif #endif
clean_up_after_endstop_or_probe_move(); clean_up_after_endstop_or_probe_move();