Revert/cleanup mininum extruder height during M600
This change restores the minimum extruder height for filament purge during M600 from the current 50mm back to 27mm from FW 3.9. We do this by introducing a new option for unload_filament() to indicate that the unload is part of an automatic swap, and in such cases avoid raising more than absolutely necessary (this will _also_ come in handy to avoid the extra purge in PR #2318 during M600). A new define MIN_Z_FOR_SWAP is introduced for this purpose. MIN_Z_FOR_UNLOAD is still used for manual lcd unload and for M702 and hasn't been changed.
This commit is contained in:
parent
10de97c042
commit
8d04316497
@ -551,9 +551,10 @@ enum CalibrationStatus
|
||||
|
||||
// Try to maintain a minimum distance from the bed even when Z is
|
||||
// unknown when doing the following operations
|
||||
#define MIN_Z_FOR_LOAD 50
|
||||
#define MIN_Z_FOR_UNLOAD 50
|
||||
#define MIN_Z_FOR_PREHEAT 10
|
||||
#define MIN_Z_FOR_LOAD 50 // lcd filament loading or autoload
|
||||
#define MIN_Z_FOR_UNLOAD 50 // lcd filament unloading
|
||||
#define MIN_Z_FOR_SWAP 27 // filament change (including M600)
|
||||
#define MIN_Z_FOR_PREHEAT 10 // lcd preheat
|
||||
|
||||
#include "Configuration_adv.h"
|
||||
#include "thermistortables.h"
|
||||
|
@ -3676,7 +3676,7 @@ static void gcode_M600(bool automatic, float x_position, float y_position, float
|
||||
|
||||
// Unload filament
|
||||
if (mmu_enabled) extr_unload(); //unload just current filament for multimaterial printers (used also in M702)
|
||||
else unload_filament(); //unload filament for single material (used also in M702)
|
||||
else unload_filament(true); //unload filament for single material (used also in M702)
|
||||
//finish moves
|
||||
st_synchronize();
|
||||
|
||||
|
@ -4885,7 +4885,7 @@ void lcd_wizard(WizState state)
|
||||
lcd_display_message_fullscreen_P(_i("Now I will preheat nozzle for PLA."));
|
||||
wait_preheat();
|
||||
//unload current filament
|
||||
unload_filament();
|
||||
unload_filament(true);
|
||||
//load filament
|
||||
lcd_wizard_load();
|
||||
setTargetHotend(0, 0); //we are finished, cooldown nozzle
|
||||
@ -6200,13 +6200,14 @@ static void change_extr_menu(){
|
||||
}
|
||||
#endif //SNMM
|
||||
|
||||
//unload filament for single material printer (used in M702 gcode)
|
||||
void unload_filament()
|
||||
// unload filament for single material printer (used in M702 gcode)
|
||||
// @param automatic: If true, unload_filament is part of a unload+load sequence (M600)
|
||||
void unload_filament(bool automatic)
|
||||
{
|
||||
custom_message_type = CustomMsg::FilamentLoading;
|
||||
lcd_setstatuspgm(_T(MSG_UNLOADING_FILAMENT));
|
||||
|
||||
raise_z_above(MIN_Z_FOR_UNLOAD);
|
||||
raise_z_above(automatic? MIN_Z_FOR_SWAP: MIN_Z_FOR_UNLOAD);
|
||||
|
||||
// extr_unload2();
|
||||
|
||||
|
@ -195,7 +195,7 @@ extern bool bFilamentAction;
|
||||
void mFilamentItem(uint16_t nTemp,uint16_t nTempBed);
|
||||
void mFilamentItemForce();
|
||||
void lcd_generic_preheat_menu();
|
||||
void unload_filament();
|
||||
void unload_filament(bool automatic = false);
|
||||
|
||||
void stack_error();
|
||||
void lcd_printer_connected();
|
||||
|
Loading…
Reference in New Issue
Block a user