Browse Source

Ensure fade factor is recalculated if fade height changes

pull/1/head
Scott Lahteine 7 years ago
parent
commit
32c607ffe2
  1. 1
      Marlin/src/feature/bedlevel/bedlevel.cpp
  2. 8
      Marlin/src/module/planner.h

1
Marlin/src/feature/bedlevel/bedlevel.cpp

@ -139,6 +139,7 @@ void set_bed_leveling_enabled(const bool enable/*=true*/) {
planner.z_fade_height = zfh;
planner.inverse_z_fade_height = RECIPROCAL(zfh);
planner.force_fade_recalc();
if (level_active) {
#if ENABLED(AUTO_BED_LEVELING_UBL)

8
Marlin/src/module/planner.h

@ -202,6 +202,10 @@ class Planner {
*/
static uint32_t cutoff_long;
#if ENABLED(ENABLE_LEVELING_FADE_HEIGHT)
static float last_raw_lz;
#endif
#if ENABLED(DISABLE_INACTIVE_EXTRUDER)
/**
* Counters to manage disabling inactive extruders
@ -273,7 +277,7 @@ class Planner {
* Returns 0.0 if Z is past the specified 'Fade Height'.
*/
inline static float fade_scaling_factor_for_z(const float &lz) {
static float z_fade_factor = 1.0, last_raw_lz = -999.0;
static float z_fade_factor = 1.0;
if (z_fade_height) {
const float raw_lz = RAW_Z_POSITION(lz);
if (raw_lz >= z_fade_height) return 0.0;
@ -286,6 +290,8 @@ class Planner {
return 1.0;
}
FORCE_INLINE static void force_fade_recalc() { last_raw_lz = -999.999; }
#else
FORCE_INLINE static float fade_scaling_factor_for_z(const float &lz) {

Loading…
Cancel
Save