|
|
|
@ -84,9 +84,9 @@ void _menu_temp_filament_op(const PauseMode mode, const int8_t extruder) {
|
|
|
|
|
START_MENU();
|
|
|
|
|
if (LCD_HEIGHT >= 4) STATIC_ITEM_P(change_filament_header(mode), SS_CENTER|SS_INVERT);
|
|
|
|
|
BACK_ITEM(MSG_BACK);
|
|
|
|
|
ACTION_ITEM(MSG_PREHEAT_1, [](){ _change_filament_temp(ui.preheat_hotend_temp[0]); });
|
|
|
|
|
ACTION_ITEM(MSG_PREHEAT_2, [](){ _change_filament_temp(ui.preheat_hotend_temp[1]); });
|
|
|
|
|
EDIT_ITEM_FAST(int3, MSG_PREHEAT_CUSTOM, &thermalManager.temp_hotend[_change_filament_temp_extruder].target, EXTRUDE_MINTEMP, heater_maxtemp[extruder] - 15, [](){
|
|
|
|
|
ACTION_ITEM(MSG_PREHEAT_1, []{ _change_filament_temp(ui.preheat_hotend_temp[0]); });
|
|
|
|
|
ACTION_ITEM(MSG_PREHEAT_2, []{ _change_filament_temp(ui.preheat_hotend_temp[1]); });
|
|
|
|
|
EDIT_ITEM_FAST(int3, MSG_PREHEAT_CUSTOM, &thermalManager.temp_hotend[_change_filament_temp_extruder].target, EXTRUDE_MINTEMP, heater_maxtemp[extruder] - 15, []{
|
|
|
|
|
_change_filament_temp(thermalManager.temp_hotend[_change_filament_temp_extruder].target);
|
|
|
|
|
});
|
|
|
|
|
END_MENU();
|
|
|
|
@ -109,42 +109,42 @@ void _menu_temp_filament_op(const PauseMode mode, const int8_t extruder) {
|
|
|
|
|
#if E_STEPPERS == 1
|
|
|
|
|
PGM_P const msg0 = GET_TEXT(MSG_FILAMENTCHANGE);
|
|
|
|
|
if (thermalManager.targetTooColdToExtrude(active_extruder))
|
|
|
|
|
MENU_ITEM_P(submenu, msg0, [](){ _menu_temp_filament_op(PauseMode(editable.int8), 0); });
|
|
|
|
|
MENU_ITEM_P(submenu, msg0, []{ _menu_temp_filament_op(PauseMode(editable.int8), 0); });
|
|
|
|
|
else
|
|
|
|
|
MENU_ITEM_P(gcode, msg0, PSTR("M600 B0"));
|
|
|
|
|
#else
|
|
|
|
|
PGM_P const msg0 = GET_TEXT(MSG_FILAMENTCHANGE_E0);
|
|
|
|
|
PGM_P const msg1 = GET_TEXT(MSG_FILAMENTCHANGE_E1);
|
|
|
|
|
if (thermalManager.targetTooColdToExtrude(0))
|
|
|
|
|
MENU_ITEM_P(submenu, msg0, [](){ _menu_temp_filament_op(PauseMode(editable.int8), 0); });
|
|
|
|
|
MENU_ITEM_P(submenu, msg0, []{ _menu_temp_filament_op(PauseMode(editable.int8), 0); });
|
|
|
|
|
else
|
|
|
|
|
MENU_ITEM_P(gcode, msg0, PSTR("M600 B0 T0"));
|
|
|
|
|
if (thermalManager.targetTooColdToExtrude(1))
|
|
|
|
|
MENU_ITEM_P(submenu, msg1, [](){ _menu_temp_filament_op(PauseMode(editable.int8), 1); });
|
|
|
|
|
MENU_ITEM_P(submenu, msg1, []{ _menu_temp_filament_op(PauseMode(editable.int8), 1); });
|
|
|
|
|
else
|
|
|
|
|
MENU_ITEM_P(gcode, msg1, PSTR("M600 B0 T1"));
|
|
|
|
|
#if E_STEPPERS > 2
|
|
|
|
|
PGM_P const msg2 = GET_TEXT(MSG_FILAMENTCHANGE_E2);
|
|
|
|
|
if (thermalManager.targetTooColdToExtrude(2))
|
|
|
|
|
MENU_ITEM_P(submenu, msg2, [](){ _menu_temp_filament_op(PauseMode(editable.int8), 2); });
|
|
|
|
|
MENU_ITEM_P(submenu, msg2, []{ _menu_temp_filament_op(PauseMode(editable.int8), 2); });
|
|
|
|
|
else
|
|
|
|
|
MENU_ITEM_P(gcode, msg2, PSTR("M600 B0 T2"));
|
|
|
|
|
#if E_STEPPERS > 3
|
|
|
|
|
PGM_P const msg3 = GET_TEXT(MSG_FILAMENTCHANGE_E3);
|
|
|
|
|
if (thermalManager.targetTooColdToExtrude(3))
|
|
|
|
|
MENU_ITEM_P(submenu, msg3, [](){ _menu_temp_filament_op(PauseMode(editable.int8), 3); });
|
|
|
|
|
MENU_ITEM_P(submenu, msg3, []{ _menu_temp_filament_op(PauseMode(editable.int8), 3); });
|
|
|
|
|
else
|
|
|
|
|
MENU_ITEM_P(gcode, msg3, PSTR("M600 B0 T3"));
|
|
|
|
|
#if E_STEPPERS > 4
|
|
|
|
|
PGM_P const msg4 = GET_TEXT(MSG_FILAMENTCHANGE_E4);
|
|
|
|
|
if (thermalManager.targetTooColdToExtrude(4))
|
|
|
|
|
MENU_ITEM_P(submenu, msg4, [](){ _menu_temp_filament_op(PauseMode(editable.int8), 4); });
|
|
|
|
|
MENU_ITEM_P(submenu, msg4, []{ _menu_temp_filament_op(PauseMode(editable.int8), 4); });
|
|
|
|
|
else
|
|
|
|
|
MENU_ITEM_P(gcode, msg4, PSTR("M600 B0 T4"));
|
|
|
|
|
#if E_STEPPERS > 5
|
|
|
|
|
PGM_P const msg5 = GET_TEXT(MSG_FILAMENTCHANGE_E5);
|
|
|
|
|
if (thermalManager.targetTooColdToExtrude(5))
|
|
|
|
|
MENU_ITEM_P(submenu, msg5, [](){ _menu_temp_filament_op(PauseMode(editable.int8), 5); });
|
|
|
|
|
MENU_ITEM_P(submenu, msg5, []{ _menu_temp_filament_op(PauseMode(editable.int8), 5); });
|
|
|
|
|
else
|
|
|
|
|
MENU_ITEM_P(gcode, msg5, PSTR("M600 B0 T5"));
|
|
|
|
|
#endif // E_STEPPERS > 5
|
|
|
|
@ -159,42 +159,42 @@ void _menu_temp_filament_op(const PauseMode mode, const int8_t extruder) {
|
|
|
|
|
#if E_STEPPERS == 1
|
|
|
|
|
PGM_P const msg0 = GET_TEXT(MSG_FILAMENTLOAD);
|
|
|
|
|
if (thermalManager.targetTooColdToExtrude(active_extruder))
|
|
|
|
|
MENU_ITEM_P(submenu, msg0, [](){ _menu_temp_filament_op(PAUSE_MODE_LOAD_FILAMENT, 0); });
|
|
|
|
|
MENU_ITEM_P(submenu, msg0, []{ _menu_temp_filament_op(PAUSE_MODE_LOAD_FILAMENT, 0); });
|
|
|
|
|
else
|
|
|
|
|
MENU_ITEM_P(gcode, msg0, PSTR("M701"));
|
|
|
|
|
#else
|
|
|
|
|
PGM_P const msg0 = GET_TEXT(MSG_FILAMENTLOAD_E0);
|
|
|
|
|
PGM_P const msg1 = GET_TEXT(MSG_FILAMENTLOAD_E1);
|
|
|
|
|
if (thermalManager.targetTooColdToExtrude(0))
|
|
|
|
|
MENU_ITEM_P(submenu, msg0, [](){ _menu_temp_filament_op(PAUSE_MODE_LOAD_FILAMENT, 0); });
|
|
|
|
|
MENU_ITEM_P(submenu, msg0, []{ _menu_temp_filament_op(PAUSE_MODE_LOAD_FILAMENT, 0); });
|
|
|
|
|
else
|
|
|
|
|
MENU_ITEM_P(gcode, msg0, PSTR("M701 T0"));
|
|
|
|
|
if (thermalManager.targetTooColdToExtrude(1))
|
|
|
|
|
MENU_ITEM_P(submenu, msg1, [](){ _menu_temp_filament_op(PAUSE_MODE_LOAD_FILAMENT, 1); });
|
|
|
|
|
MENU_ITEM_P(submenu, msg1, []{ _menu_temp_filament_op(PAUSE_MODE_LOAD_FILAMENT, 1); });
|
|
|
|
|
else
|
|
|
|
|
MENU_ITEM_P(gcode, msg1, PSTR("M701 T1"));
|
|
|
|
|
#if E_STEPPERS > 2
|
|
|
|
|
PGM_P const msg2 = GET_TEXT(MSG_FILAMENTLOAD_E2);
|
|
|
|
|
if (thermalManager.targetTooColdToExtrude(2))
|
|
|
|
|
MENU_ITEM_P(submenu, msg2, [](){ _menu_temp_filament_op(PAUSE_MODE_LOAD_FILAMENT, 2); });
|
|
|
|
|
MENU_ITEM_P(submenu, msg2, []{ _menu_temp_filament_op(PAUSE_MODE_LOAD_FILAMENT, 2); });
|
|
|
|
|
else
|
|
|
|
|
MENU_ITEM_P(gcode, msg2, PSTR("M701 T2"));
|
|
|
|
|
#if E_STEPPERS > 3
|
|
|
|
|
PGM_P const msg3 = GET_TEXT(MSG_FILAMENTLOAD_E3);
|
|
|
|
|
if (thermalManager.targetTooColdToExtrude(3))
|
|
|
|
|
MENU_ITEM_P(submenu, msg3, [](){ _menu_temp_filament_op(PAUSE_MODE_LOAD_FILAMENT, 3); });
|
|
|
|
|
MENU_ITEM_P(submenu, msg3, []{ _menu_temp_filament_op(PAUSE_MODE_LOAD_FILAMENT, 3); });
|
|
|
|
|
else
|
|
|
|
|
MENU_ITEM_P(gcode, msg3, PSTR("M701 T3"));
|
|
|
|
|
#if E_STEPPERS > 4
|
|
|
|
|
PGM_P const msg4 = GET_TEXT(MSG_FILAMENTLOAD_E4);
|
|
|
|
|
if (thermalManager.targetTooColdToExtrude(4))
|
|
|
|
|
MENU_ITEM_P(submenu, msg4, [](){ _menu_temp_filament_op(PAUSE_MODE_LOAD_FILAMENT, 4); });
|
|
|
|
|
MENU_ITEM_P(submenu, msg4, []{ _menu_temp_filament_op(PAUSE_MODE_LOAD_FILAMENT, 4); });
|
|
|
|
|
else
|
|
|
|
|
MENU_ITEM_P(gcode, msg4, PSTR("M701 T4"));
|
|
|
|
|
#if E_STEPPERS > 5
|
|
|
|
|
PGM_P const msg5 = GET_TEXT(MSG_FILAMENTLOAD_E5);
|
|
|
|
|
if (thermalManager.targetTooColdToExtrude(5))
|
|
|
|
|
MENU_ITEM_P(submenu, msg5, [](){ _menu_temp_filament_op(PAUSE_MODE_LOAD_FILAMENT, 5); });
|
|
|
|
|
MENU_ITEM_P(submenu, msg5, []{ _menu_temp_filament_op(PAUSE_MODE_LOAD_FILAMENT, 5); });
|
|
|
|
|
else
|
|
|
|
|
MENU_ITEM_P(gcode, msg5, PSTR("M701 T5"));
|
|
|
|
|
#endif // E_STEPPERS > 5
|
|
|
|
@ -208,7 +208,7 @@ void _menu_temp_filament_op(const PauseMode mode, const int8_t extruder) {
|
|
|
|
|
if (thermalManager.targetHotEnoughToExtrude(active_extruder))
|
|
|
|
|
GCODES_ITEM(MSG_FILAMENTUNLOAD, PSTR("M702"));
|
|
|
|
|
else
|
|
|
|
|
SUBMENU(MSG_FILAMENTUNLOAD, [](){ _menu_temp_filament_op(PAUSE_MODE_UNLOAD_FILAMENT, 0); });
|
|
|
|
|
SUBMENU(MSG_FILAMENTUNLOAD, []{ _menu_temp_filament_op(PAUSE_MODE_UNLOAD_FILAMENT, 0); });
|
|
|
|
|
#else
|
|
|
|
|
#if ENABLED(FILAMENT_UNLOAD_ALL_EXTRUDERS)
|
|
|
|
|
if (JOIN_N(E_STEPPERS, &&,
|
|
|
|
@ -220,36 +220,36 @@ void _menu_temp_filament_op(const PauseMode mode, const int8_t extruder) {
|
|
|
|
|
thermalManager.targetHotEnoughToExtrude(5))
|
|
|
|
|
) GCODES_ITEM(MSG_FILAMENTUNLOAD_ALL, PSTR("M702"));
|
|
|
|
|
else
|
|
|
|
|
SUBMENU(MSG_FILAMENTUNLOAD_ALL, [](){ _menu_temp_filament_op(PAUSE_MODE_UNLOAD_FILAMENT, -1); });
|
|
|
|
|
SUBMENU(MSG_FILAMENTUNLOAD_ALL, []{ _menu_temp_filament_op(PAUSE_MODE_UNLOAD_FILAMENT, -1); });
|
|
|
|
|
#endif
|
|
|
|
|
if (thermalManager.targetHotEnoughToExtrude(0))
|
|
|
|
|
GCODES_ITEM(MSG_FILAMENTUNLOAD_E0, PSTR("M702 T0"));
|
|
|
|
|
else
|
|
|
|
|
SUBMENU(MSG_FILAMENTUNLOAD_E0, [](){ _menu_temp_filament_op(PAUSE_MODE_UNLOAD_FILAMENT, 0); });
|
|
|
|
|
SUBMENU(MSG_FILAMENTUNLOAD_E0, []{ _menu_temp_filament_op(PAUSE_MODE_UNLOAD_FILAMENT, 0); });
|
|
|
|
|
if (thermalManager.targetHotEnoughToExtrude(1))
|
|
|
|
|
GCODES_ITEM(MSG_FILAMENTUNLOAD_E1, PSTR("M702 T1"));
|
|
|
|
|
else
|
|
|
|
|
SUBMENU(MSG_FILAMENTUNLOAD_E1, [](){ _menu_temp_filament_op(PAUSE_MODE_UNLOAD_FILAMENT, 1); });
|
|
|
|
|
SUBMENU(MSG_FILAMENTUNLOAD_E1, []{ _menu_temp_filament_op(PAUSE_MODE_UNLOAD_FILAMENT, 1); });
|
|
|
|
|
#if E_STEPPERS > 2
|
|
|
|
|
if (thermalManager.targetHotEnoughToExtrude(2))
|
|
|
|
|
GCODES_ITEM(MSG_FILAMENTUNLOAD_E2, PSTR("M702 T2"));
|
|
|
|
|
else
|
|
|
|
|
SUBMENU(MSG_FILAMENTUNLOAD_E2, [](){ _menu_temp_filament_op(PAUSE_MODE_UNLOAD_FILAMENT, 2); });
|
|
|
|
|
SUBMENU(MSG_FILAMENTUNLOAD_E2, []{ _menu_temp_filament_op(PAUSE_MODE_UNLOAD_FILAMENT, 2); });
|
|
|
|
|
#if E_STEPPERS > 3
|
|
|
|
|
if (thermalManager.targetHotEnoughToExtrude(3))
|
|
|
|
|
GCODES_ITEM(MSG_FILAMENTUNLOAD_E3, PSTR("M702 T3"));
|
|
|
|
|
else
|
|
|
|
|
SUBMENU(MSG_FILAMENTUNLOAD_E3, [](){ _menu_temp_filament_op(PAUSE_MODE_UNLOAD_FILAMENT, 3); });
|
|
|
|
|
SUBMENU(MSG_FILAMENTUNLOAD_E3, []{ _menu_temp_filament_op(PAUSE_MODE_UNLOAD_FILAMENT, 3); });
|
|
|
|
|
#if E_STEPPERS > 4
|
|
|
|
|
if (thermalManager.targetHotEnoughToExtrude(4))
|
|
|
|
|
GCODES_ITEM(MSG_FILAMENTUNLOAD_E4, PSTR("M702 T4"));
|
|
|
|
|
else
|
|
|
|
|
SUBMENU(MSG_FILAMENTUNLOAD_E4, [](){ _menu_temp_filament_op(PAUSE_MODE_UNLOAD_FILAMENT, 4); });
|
|
|
|
|
SUBMENU(MSG_FILAMENTUNLOAD_E4, []{ _menu_temp_filament_op(PAUSE_MODE_UNLOAD_FILAMENT, 4); });
|
|
|
|
|
#if E_STEPPERS > 5
|
|
|
|
|
if (thermalManager.targetHotEnoughToExtrude(5))
|
|
|
|
|
GCODES_ITEM(MSG_FILAMENTUNLOAD_E5, PSTR("M702 T5"));
|
|
|
|
|
else
|
|
|
|
|
SUBMENU(MSG_FILAMENTUNLOAD_E5, [](){ _menu_temp_filament_op(PAUSE_MODE_UNLOAD_FILAMENT, 5); });
|
|
|
|
|
SUBMENU(MSG_FILAMENTUNLOAD_E5, []{ _menu_temp_filament_op(PAUSE_MODE_UNLOAD_FILAMENT, 5); });
|
|
|
|
|
#endif // E_STEPPERS > 5
|
|
|
|
|
#endif // E_STEPPERS > 4
|
|
|
|
|
#endif // E_STEPPERS > 3
|
|
|
|
@ -298,13 +298,13 @@ void menu_pause_option() {
|
|
|
|
|
#if LCD_HEIGHT > 2
|
|
|
|
|
STATIC_ITEM(MSG_FILAMENT_CHANGE_OPTION_HEADER);
|
|
|
|
|
#endif
|
|
|
|
|
ACTION_ITEM(MSG_FILAMENT_CHANGE_OPTION_PURGE, [](){ pause_menu_response = PAUSE_RESPONSE_EXTRUDE_MORE; });
|
|
|
|
|
ACTION_ITEM(MSG_FILAMENT_CHANGE_OPTION_PURGE, []{ pause_menu_response = PAUSE_RESPONSE_EXTRUDE_MORE; });
|
|
|
|
|
#if HAS_FILAMENT_SENSOR
|
|
|
|
|
if (runout.filament_ran_out)
|
|
|
|
|
EDIT_ITEM(bool, MSG_RUNOUT_SENSOR, &runout.enabled, runout.reset);
|
|
|
|
|
else
|
|
|
|
|
#endif
|
|
|
|
|
ACTION_ITEM(MSG_FILAMENT_CHANGE_OPTION_RESUME, [](){ pause_menu_response = PAUSE_RESPONSE_RESUME_PRINT; });
|
|
|
|
|
ACTION_ITEM(MSG_FILAMENT_CHANGE_OPTION_RESUME, []{ pause_menu_response = PAUSE_RESPONSE_RESUME_PRINT; });
|
|
|
|
|
END_MENU();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|