stop print during auto home and mesh bed leveling improved

This commit is contained in:
PavelSindler 2017-05-19 13:52:13 +02:00
parent 67c3e75a20
commit e5d10074cf
2 changed files with 29 additions and 13 deletions

View File

@ -2938,20 +2938,33 @@ void process_commands()
// We don't know where we are! HOME! // We don't know where we are! HOME!
// Push the commands to the front of the message queue in the reverse order! // Push the commands to the front of the message queue in the reverse order!
// There shall be always enough space reserved for these commands. // There shall be always enough space reserved for these commands.
repeatcommand_front(); // repeat G80 with all its parameters if (lcd_commands_type != LCD_COMMAND_STOP_PRINT) {
enquecommand_front_P((PSTR("G28 W0"))); repeatcommand_front(); // repeat G80 with all its parameters
enquecommand_front_P((PSTR("G28 W0")));
}
else {
mesh_bed_leveling_flag = false;
}
break; break;
} }
if (run == false && temp_cal_active == true && calibration_status_pinda() == true && target_temperature_bed >= 50) { if (run == false && temp_cal_active == true && calibration_status_pinda() == true && target_temperature_bed >= 50) {
temp_compensation_start(); if (lcd_commands_type != LCD_COMMAND_STOP_PRINT) {
run = true; temp_compensation_start();
repeatcommand_front(); // repeat G80 with all its parameters run = true;
enquecommand_front_P((PSTR("G28 W0"))); repeatcommand_front(); // repeat G80 with all its parameters
enquecommand_front_P((PSTR("G28 W0")));
}
else {
mesh_bed_leveling_flag = false;
}
break; break;
} }
run = false; run = false;
if (lcd_commands_type == LCD_COMMAND_STOP_PRINT) {
mesh_bed_leveling_flag = false;
break;
}
// Save custom message state, set a new custom message state to display: Calibrating point 9. // Save custom message state, set a new custom message state to display: Calibrating point 9.
bool custom_message_old = custom_message; bool custom_message_old = custom_message;
unsigned int custom_message_type_old = custom_message_type; unsigned int custom_message_type_old = custom_message_type;

View File

@ -661,7 +661,7 @@ void lcd_commands()
cancel_heatup = true; cancel_heatup = true;
setTargetBed(0); setTargetBed(0);
#ifndef SNMM #ifndef SNMM
setTargetHotend(0, 0); //to heating when changing filament for multicolor setTargetHotend(0, 0); //heating when changing filament for multicolor
setTargetHotend(0, 1); setTargetHotend(0, 1);
setTargetHotend(0, 2); setTargetHotend(0, 2);
#endif #endif
@ -3743,18 +3743,21 @@ void lcd_sdcard_stop()
} }
if ((int32_t)encoderPosition == 2) if ((int32_t)encoderPosition == 2)
{ {
cancel_heatup = true; cancel_heatup = true;
#ifdef MESH_BED_LEVELING #ifdef MESH_BED_LEVELING
mbl.active = false; mbl.active = false;
#endif #endif
// Stop the stoppers, update the position from the stoppers. // Stop the stoppers, update the position from the stoppers.
planner_abort_hard(); if (mesh_bed_leveling_flag == false && homing_flag == false) {
// Because the planner_abort_hard() initialized current_position[Z] from the stepper, planner_abort_hard();
// Z baystep is no more applied. Reset it. // Because the planner_abort_hard() initialized current_position[Z] from the stepper,
babystep_reset(); // Z baystep is no more applied. Reset it.
babystep_reset();
}
// Clean the input command queue. // Clean the input command queue.
cmdqueue_reset(); cmdqueue_reset();
lcd_setstatuspgm(MSG_PRINT_ABORTED); lcd_setstatuspgm(MSG_PRINT_ABORTED);
lcd_update(2);
card.sdprinting = false; card.sdprinting = false;
card.closefile(); card.closefile();