Add Z_AFTER_DEACTIVATE to account for gravity (#18906)
This commit is contained in:
parent
e82e94be5b
commit
301569bee6
|
@ -1076,18 +1076,18 @@
|
||||||
#define Z_ENABLE_ON 0
|
#define Z_ENABLE_ON 0
|
||||||
#define E_ENABLE_ON 0 // For all extruders
|
#define E_ENABLE_ON 0 // For all extruders
|
||||||
|
|
||||||
// Disables axis stepper immediately when it's not being used.
|
// Disable axis steppers immediately when they're not being stepped.
|
||||||
// WARNING: When motors turn off there is a chance of losing position accuracy!
|
// WARNING: When motors turn off there is a chance of losing position accuracy!
|
||||||
#define DISABLE_X false
|
#define DISABLE_X false
|
||||||
#define DISABLE_Y false
|
#define DISABLE_Y false
|
||||||
#define DISABLE_Z false
|
#define DISABLE_Z false
|
||||||
|
|
||||||
// Warn on display about possibly reduced accuracy
|
// Turn off the display blinking that warns about possible accuracy reduction
|
||||||
//#define DISABLE_REDUCED_ACCURACY_WARNING
|
//#define DISABLE_REDUCED_ACCURACY_WARNING
|
||||||
|
|
||||||
// @section extruder
|
// @section extruder
|
||||||
|
|
||||||
#define DISABLE_E false // For all extruders
|
#define DISABLE_E false // Disable the extruder when not stepping
|
||||||
#define DISABLE_INACTIVE_EXTRUDER // Keep only the active extruder enabled
|
#define DISABLE_INACTIVE_EXTRUDER // Keep only the active extruder enabled
|
||||||
|
|
||||||
// @section machine
|
// @section machine
|
||||||
|
|
|
@ -809,24 +809,30 @@
|
||||||
#define INVERT_Z_STEP_PIN false
|
#define INVERT_Z_STEP_PIN false
|
||||||
#define INVERT_E_STEP_PIN false
|
#define INVERT_E_STEP_PIN false
|
||||||
|
|
||||||
// Default stepper release if idle. Set to 0 to deactivate.
|
/**
|
||||||
// Steppers will shut down DEFAULT_STEPPER_DEACTIVE_TIME seconds after the last move when DISABLE_INACTIVE_? is true.
|
* Idle Stepper Shutdown
|
||||||
// Time can be set by M18 and M84.
|
* Set DISABLE_INACTIVE_? 'true' to shut down axis steppers after an idle period.
|
||||||
|
* The Deactive Time can be overridden with M18 and M84. Set to 0 for No Timeout.
|
||||||
|
*/
|
||||||
#define DEFAULT_STEPPER_DEACTIVE_TIME 120
|
#define DEFAULT_STEPPER_DEACTIVE_TIME 120
|
||||||
#define DISABLE_INACTIVE_X true
|
#define DISABLE_INACTIVE_X true
|
||||||
#define DISABLE_INACTIVE_Y true
|
#define DISABLE_INACTIVE_Y true
|
||||||
#define DISABLE_INACTIVE_Z true // Set to false if the nozzle will fall down on your printed part when print has finished.
|
#define DISABLE_INACTIVE_Z true // Set 'false' if the nozzle could fall onto your printed part!
|
||||||
#define DISABLE_INACTIVE_E true
|
#define DISABLE_INACTIVE_E true
|
||||||
|
|
||||||
#define DEFAULT_MINIMUMFEEDRATE 0.0 // minimum feedrate
|
// If the Nozzle or Bed falls when the Z stepper is disabled, set its resting position here.
|
||||||
#define DEFAULT_MINTRAVELFEEDRATE 0.0
|
//#define Z_AFTER_DEACTIVATE Z_HOME_POS
|
||||||
|
|
||||||
//#define HOME_AFTER_DEACTIVATE // Require rehoming after steppers are deactivated
|
//#define HOME_AFTER_DEACTIVATE // Require rehoming after steppers are deactivated
|
||||||
|
|
||||||
// Minimum time that a segment needs to take if the buffer is emptied
|
// Minimum time that a segment needs to take as the buffer gets emptied
|
||||||
#define DEFAULT_MINSEGMENTTIME 20000 // (µs)
|
#define DEFAULT_MINSEGMENTTIME 20000 // (µs) Set with M205 B.
|
||||||
|
|
||||||
// Slow down the machine if the look ahead buffer is (by default) half full.
|
// Default Minimum Feedrates for printing and travel moves
|
||||||
|
#define DEFAULT_MINIMUMFEEDRATE 0.0 // (mm/s) Minimum feedrate. Set with M205 S.
|
||||||
|
#define DEFAULT_MINTRAVELFEEDRATE 0.0 // (mm/s) Minimum travel feedrate. Set with M205 T.
|
||||||
|
|
||||||
|
// Slow down the machine if the lookahead buffer is (by default) half full.
|
||||||
// Increase the slowdown divisor for larger buffer sizes.
|
// Increase the slowdown divisor for larger buffer sizes.
|
||||||
#define SLOWDOWN
|
#define SLOWDOWN
|
||||||
#if ENABLED(SLOWDOWN)
|
#if ENABLED(SLOWDOWN)
|
||||||
|
|
|
@ -819,16 +819,9 @@ void ST7920_Lite_Status_Screen::update_status_or_position(bool forceUpdate) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (countdown == 0 && (forceUpdate || position_changed()
|
if (countdown == 0 && (forceUpdate || position_changed()
|
||||||
#if DISABLED(DISABLE_REDUCED_ACCURACY_WARNING)
|
|| TERN(DISABLE_REDUCED_ACCURACY_WARNING, 0, blink_changed())
|
||||||
|| blink_changed()
|
))
|
||||||
#endif
|
draw_position(current_position, TERN(DISABLE_REDUCED_ACCURACY_WARNING, 0, all_axes_known()));
|
||||||
)) {
|
|
||||||
draw_position(current_position, true
|
|
||||||
#if DISABLED(DISABLE_REDUCED_ACCURACY_WARNING)
|
|
||||||
&& all_axes_known()
|
|
||||||
#endif
|
|
||||||
);
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1281,7 +1281,7 @@ void Planner::recalculate() {
|
||||||
void Planner::check_axes_activity() {
|
void Planner::check_axes_activity() {
|
||||||
|
|
||||||
#if ANY(DISABLE_X, DISABLE_Y, DISABLE_Z, DISABLE_E)
|
#if ANY(DISABLE_X, DISABLE_Y, DISABLE_Z, DISABLE_E)
|
||||||
xyze_bool_t axis_active = { false };
|
xyze_bool_t axis_active = { true, true, true, true };
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if HAS_FAN
|
#if HAS_FAN
|
||||||
|
@ -1316,7 +1316,10 @@ void Planner::check_axes_activity() {
|
||||||
#if ANY(DISABLE_X, DISABLE_Y, DISABLE_Z, DISABLE_E)
|
#if ANY(DISABLE_X, DISABLE_Y, DISABLE_Z, DISABLE_E)
|
||||||
for (uint8_t b = block_buffer_tail; b != block_buffer_head; b = next_block_index(b)) {
|
for (uint8_t b = block_buffer_tail; b != block_buffer_head; b = next_block_index(b)) {
|
||||||
block_t *block = &block_buffer[b];
|
block_t *block = &block_buffer[b];
|
||||||
LOOP_XYZE(i) if (block->steps[i]) axis_active[i] = true;
|
if (ENABLED(DISABLE_X) && block->steps[X_AXIS]) axis_active[X_AXIS] = true;
|
||||||
|
if (ENABLED(DISABLE_Y) && block->steps[Y_AXIS]) axis_active[Y_AXIS] = true;
|
||||||
|
if (ENABLED(DISABLE_Z) && block->steps[Z_AXIS]) axis_active[Z_AXIS] = true;
|
||||||
|
if (ENABLED(DISABLE_E) && block->steps[E_AXIS]) axis_active[E_AXIS] = true;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
|
@ -848,7 +848,13 @@ void reset_stepper_drivers(); // Called by settings.load / settings.reset
|
||||||
#define DISABLE_AXIS_Y() do{ DISABLE_STEPPER_Y(); DISABLE_STEPPER_Y2(); CBI(axis_known_position, Y_AXIS); }while(0)
|
#define DISABLE_AXIS_Y() do{ DISABLE_STEPPER_Y(); DISABLE_STEPPER_Y2(); CBI(axis_known_position, Y_AXIS); }while(0)
|
||||||
|
|
||||||
#define ENABLE_AXIS_Z() do{ ENABLE_STEPPER_Z(); ENABLE_STEPPER_Z2(); ENABLE_STEPPER_Z3(); ENABLE_STEPPER_Z4(); }while(0)
|
#define ENABLE_AXIS_Z() do{ ENABLE_STEPPER_Z(); ENABLE_STEPPER_Z2(); ENABLE_STEPPER_Z3(); ENABLE_STEPPER_Z4(); }while(0)
|
||||||
#define DISABLE_AXIS_Z() do{ DISABLE_STEPPER_Z(); DISABLE_STEPPER_Z2(); DISABLE_STEPPER_Z3(); DISABLE_STEPPER_Z4(); CBI(axis_known_position, Z_AXIS); }while(0)
|
|
||||||
|
#ifdef Z_AFTER_DEACTIVATE
|
||||||
|
#define Z_RESET() do{ current_position.z = Z_AFTER_DEACTIVATE; planner.sync_plan_position(); }while(0)
|
||||||
|
#else
|
||||||
|
#define Z_RESET()
|
||||||
|
#endif
|
||||||
|
#define DISABLE_AXIS_Z() do{ DISABLE_STEPPER_Z(); DISABLE_STEPPER_Z2(); DISABLE_STEPPER_Z3(); DISABLE_STEPPER_Z4(); CBI(axis_known_position, Z_AXIS); Z_RESET(); }while(0)
|
||||||
|
|
||||||
//
|
//
|
||||||
// Extruder steppers enable / disable macros
|
// Extruder steppers enable / disable macros
|
||||||
|
|
Loading…
Reference in a new issue