eject filament allowed only when nozzle is hot (there can be filament loaded in printer nozzle)

This commit is contained in:
PavelSindler 2018-08-29 13:16:17 +02:00
parent b284c70d9b
commit 8a453e65f8
1 changed files with 29 additions and 5 deletions

View File

@ -954,6 +954,19 @@ void mmu_eject_filament(uint8_t filament, bool recover)
{ {
if (filament < 5) if (filament < 5)
{ {
if (degHotend0() > EXTRUDE_MINTEMP)
{
st_synchronize();
lcd_update_enable(false);
lcd_clear();
lcd_set_cursor(0, 1); lcd_puts_P(_i("Ejecting filament"));
current_position[E_AXIS] -= 80;
plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], 2500 / 60, active_extruder);
st_synchronize();
lcd_update_enable(true);
mmu_command(MMU_CMD_E0 + filament); mmu_command(MMU_CMD_E0 + filament);
manage_response(false, false); manage_response(false, false);
if (recover) if (recover)
@ -964,6 +977,17 @@ void mmu_eject_filament(uint8_t filament, bool recover)
} }
} }
else else
{
lcd_clear();
lcd_set_cursor(0, 0);
lcd_puts_P(_T(MSG_ERROR));
lcd_set_cursor(0, 2);
lcd_puts_P(_T(MSG_PREHEAT_NOZZLE));
delay(2000);
lcd_clear();
}
}
else
{ {
puts_P(PSTR("Filament nr out of range!")); puts_P(PSTR("Filament nr out of range!"));
} }