Use lambdas in menus, where possible (#15452)
This commit is contained in:
parent
cd791f1cba
commit
cc822c1a05
@ -275,6 +275,10 @@ void quickstop_stepper() {
|
||||
sync_plan_position();
|
||||
}
|
||||
|
||||
void enable_e_steppers() {
|
||||
enable_E0(); enable_E1(); enable_E2(); enable_E3(); enable_E4(); enable_E5();
|
||||
}
|
||||
|
||||
void enable_all_steppers() {
|
||||
#if ENABLED(AUTO_POWER_CONTROL)
|
||||
powerManager.power_on();
|
||||
@ -282,30 +286,11 @@ void enable_all_steppers() {
|
||||
enable_X();
|
||||
enable_Y();
|
||||
enable_Z();
|
||||
enable_E0();
|
||||
enable_E1();
|
||||
enable_E2();
|
||||
enable_E3();
|
||||
enable_E4();
|
||||
enable_E5();
|
||||
}
|
||||
|
||||
void enable_e_steppers() {
|
||||
enable_E0();
|
||||
enable_E1();
|
||||
enable_E2();
|
||||
enable_E3();
|
||||
enable_E4();
|
||||
enable_E5();
|
||||
enable_e_steppers();
|
||||
}
|
||||
|
||||
void disable_e_steppers() {
|
||||
disable_E0();
|
||||
disable_E1();
|
||||
disable_E2();
|
||||
disable_E3();
|
||||
disable_E4();
|
||||
disable_E5();
|
||||
disable_E0(); disable_E1(); disable_E2(); disable_E3(); disable_E4(); disable_E5();
|
||||
}
|
||||
|
||||
void disable_e_stepper(const uint8_t e) {
|
||||
|
@ -337,36 +337,38 @@
|
||||
#define MSG_Y2 "Y2"
|
||||
#define MSG_Z2 "Z2"
|
||||
#define MSG_Z3 "Z3"
|
||||
#define MSG_H1 "1"
|
||||
#define MSG_H2 "2"
|
||||
#define MSG_H3 "3"
|
||||
#define MSG_H4 "4"
|
||||
#define MSG_H5 "5"
|
||||
#define MSG_H6 "6"
|
||||
#define MSG_LCD_N0 " 1"
|
||||
#define MSG_LCD_N1 " 2"
|
||||
#define MSG_LCD_N2 " 3"
|
||||
#define MSG_LCD_N3 " 4"
|
||||
#define MSG_LCD_N4 " 5"
|
||||
#define MSG_LCD_N5 " 6"
|
||||
#define MSG_E1 "E1"
|
||||
#define MSG_E2 "E2"
|
||||
#define MSG_E3 "E3"
|
||||
#define MSG_E4 "E4"
|
||||
#define MSG_E5 "E5"
|
||||
#define MSG_E6 "E6"
|
||||
#define MSG_MOVE_E1 "1"
|
||||
#define MSG_MOVE_E2 "2"
|
||||
#define MSG_MOVE_E3 "3"
|
||||
#define MSG_MOVE_E4 "4"
|
||||
#define MSG_MOVE_E5 "5"
|
||||
#define MSG_MOVE_E6 "6"
|
||||
#define MSG_DIAM_E1 " 1"
|
||||
#define MSG_DIAM_E2 " 2"
|
||||
#define MSG_DIAM_E3 " 3"
|
||||
#define MSG_DIAM_E4 " 4"
|
||||
#define MSG_DIAM_E5 " 5"
|
||||
#define MSG_DIAM_E6 " 6"
|
||||
|
||||
/**
|
||||
* Tool indexes for LCD display only
|
||||
*
|
||||
* By convention the LCD shows "E1" for the first extruder.
|
||||
* However, internal to Marlin E0/T0 is the first tool, and
|
||||
* most board silkscreens say "E0." Zero-based labels will
|
||||
* make these indexes consistent but this defies expectation.
|
||||
*
|
||||
*/
|
||||
#if ENABLED(NUMBER_TOOLS_FROM_0)
|
||||
#define LCD_STR_N0 "0"
|
||||
#define LCD_STR_N1 "1"
|
||||
#define LCD_STR_N2 "2"
|
||||
#define LCD_STR_N3 "3"
|
||||
#define LCD_STR_N4 "4"
|
||||
#define LCD_STR_N5 "5"
|
||||
#else
|
||||
#define LCD_STR_N0 "1"
|
||||
#define LCD_STR_N1 "2"
|
||||
#define LCD_STR_N2 "3"
|
||||
#define LCD_STR_N3 "4"
|
||||
#define LCD_STR_N4 "5"
|
||||
#define LCD_STR_N5 "6"
|
||||
#endif
|
||||
|
||||
#define LCD_STR_E0 "E" LCD_STR_N0
|
||||
#define LCD_STR_E1 "E" LCD_STR_N1
|
||||
#define LCD_STR_E2 "E" LCD_STR_N2
|
||||
#define LCD_STR_E3 "E" LCD_STR_N3
|
||||
#define LCD_STR_E4 "E" LCD_STR_N4
|
||||
#define LCD_STR_E5 "E" LCD_STR_N5
|
||||
|
||||
#include INCLUDE_LANGUAGE
|
||||
|
||||
@ -383,8 +385,3 @@
|
||||
#endif
|
||||
|
||||
#include "../lcd/language/language_en.h"
|
||||
|
||||
#ifdef CUSTOM_USER_MENU_TITLE
|
||||
#undef MSG_USER_MENU
|
||||
#define MSG_USER_MENU CUSTOM_USER_MENU_TITLE
|
||||
#endif
|
||||
|
@ -68,6 +68,7 @@ uint8_t screen_history_depth = 0;
|
||||
bool screen_changed;
|
||||
|
||||
// Value Editing
|
||||
chimera_t editable;
|
||||
PGM_P MenuEditItemBase::editLabel;
|
||||
void* MenuEditItemBase::editValue;
|
||||
int32_t MenuEditItemBase::minEditValue, MenuEditItemBase::maxEditValue;
|
||||
@ -201,11 +202,6 @@ void MenuItem_bool::action(PGM_P pstr, bool *ptr, screenFunc_t callback) {
|
||||
///////////////// Menu Tree ////////////////
|
||||
////////////////////////////////////////////
|
||||
|
||||
#if ENABLED(ENABLE_LEVELING_FADE_HEIGHT)
|
||||
float lcd_z_fade_height;
|
||||
void _lcd_set_z_fade_height() { set_z_fade_height(lcd_z_fade_height); }
|
||||
#endif
|
||||
|
||||
#include "../../Marlin.h"
|
||||
|
||||
bool printer_busy() {
|
||||
@ -222,11 +218,6 @@ void MarlinUI::goto_screen(screenFunc_t screen, const uint16_t encoder/*=0*/, co
|
||||
repeat_delay = BUTTON_DELAY_MENU;
|
||||
#endif
|
||||
|
||||
#if ENABLED(ENABLE_LEVELING_FADE_HEIGHT)
|
||||
// Shadow for editing the fade height
|
||||
lcd_z_fade_height = planner.z_fade_height;
|
||||
#endif
|
||||
|
||||
#if ENABLED(LCD_SET_PROGRESS_MANUALLY)
|
||||
progress_reset();
|
||||
#endif
|
||||
|
@ -176,6 +176,24 @@ class MenuItem_function {
|
||||
/////////// Menu Editing Actions ///////////
|
||||
////////////////////////////////////////////
|
||||
|
||||
//
|
||||
// The Menu Edit shadow value
|
||||
// Only one edit value is needed at a time
|
||||
//
|
||||
|
||||
typedef union {
|
||||
bool state;
|
||||
float decimal;
|
||||
int8_t int8;
|
||||
int16_t int16;
|
||||
int32_t int32;
|
||||
uint8_t uint8;
|
||||
uint16_t uint16;
|
||||
uint32_t uint32;
|
||||
} chimera_t;
|
||||
|
||||
extern chimera_t editable;
|
||||
|
||||
// Edit items use long integer encoder units
|
||||
class MenuEditItemBase {
|
||||
private:
|
||||
@ -407,11 +425,6 @@ void _lcd_draw_homing();
|
||||
void _lcd_level_bed_corners();
|
||||
#endif
|
||||
|
||||
#if ENABLED(ENABLE_LEVELING_FADE_HEIGHT)
|
||||
extern float lcd_z_fade_height;
|
||||
void _lcd_set_z_fade_height();
|
||||
#endif
|
||||
|
||||
#if ENABLED(LCD_BED_LEVELING) || (HAS_LEVELING && DISABLED(SLIM_LCD_MENUS))
|
||||
void _lcd_toggle_bed_leveling();
|
||||
#endif
|
||||
|
@ -55,15 +55,12 @@ void menu_backlash();
|
||||
|
||||
#include "../../feature/dac/stepper_dac.h"
|
||||
|
||||
xyze_uint8_t driverPercent;
|
||||
inline void dac_driver_getValues() { LOOP_XYZE(i) driverPercent[i] = dac_current_get_percent((AxisEnum)i); }
|
||||
static void dac_driver_commit() { dac_current_set_percents(driverPercent); }
|
||||
|
||||
void menu_dac() {
|
||||
dac_driver_getValues();
|
||||
static xyze_uint8_t driverPercent;
|
||||
LOOP_XYZE(i) driverPercent[i] = dac_current_get_percent((AxisEnum)i);
|
||||
START_MENU();
|
||||
BACK_ITEM(MSG_ADVANCED_SETTINGS);
|
||||
#define EDIT_DAC_PERCENT(N) EDIT_ITEM(uint8, MSG_##N " " MSG_DAC_PERCENT, &driverPercent[_AXIS(N)], 0, 100, dac_driver_commit)
|
||||
#define EDIT_DAC_PERCENT(A) EDIT_ITEM(uint8, MSG_##A " " MSG_DAC_PERCENT, &driverPercent[_AXIS(A)], 0, 100, [](){ dac_current_set_percents(driverPercent); })
|
||||
EDIT_DAC_PERCENT(X);
|
||||
EDIT_DAC_PERCENT(Y);
|
||||
EDIT_DAC_PERCENT(Z);
|
||||
@ -96,16 +93,6 @@ void menu_backlash();
|
||||
|
||||
#endif
|
||||
|
||||
#if HAS_M206_COMMAND
|
||||
//
|
||||
// Set the home offset based on the current_position
|
||||
//
|
||||
void _lcd_set_home_offsets() {
|
||||
queue.inject_P(PSTR("M428"));
|
||||
ui.return_to_status();
|
||||
}
|
||||
#endif
|
||||
|
||||
#if ENABLED(SD_FIRMWARE_UPDATE)
|
||||
#include "../../module/configuration_store.h"
|
||||
#endif
|
||||
@ -122,17 +109,17 @@ void menu_backlash();
|
||||
#if EXTRUDERS == 1
|
||||
EDIT_ITEM(float52, MSG_ADVANCE_K, &planner.extruder_advance_K[0], 0, 999);
|
||||
#elif EXTRUDERS > 1
|
||||
#define EDIT_ADVANCE_K(N) EDIT_ITEM(float52, MSG_ADVANCE_K MSG_E##N, &planner.extruder_advance_K[N-1], 0, 999)
|
||||
#define EDIT_ADVANCE_K(N) EDIT_ITEM(float52, MSG_ADVANCE_K LCD_STR_E##N, &planner.extruder_advance_K[N], 0, 999)
|
||||
EDIT_ADVANCE_K(0);
|
||||
EDIT_ADVANCE_K(1);
|
||||
EDIT_ADVANCE_K(2);
|
||||
#if EXTRUDERS > 2
|
||||
EDIT_ADVANCE_K(3);
|
||||
EDIT_ADVANCE_K(2);
|
||||
#if EXTRUDERS > 3
|
||||
EDIT_ADVANCE_K(4);
|
||||
EDIT_ADVANCE_K(3);
|
||||
#if EXTRUDERS > 4
|
||||
EDIT_ADVANCE_K(5);
|
||||
EDIT_ADVANCE_K(4);
|
||||
#if EXTRUDERS > 5
|
||||
EDIT_ADVANCE_K(6);
|
||||
EDIT_ADVANCE_K(5);
|
||||
#endif // EXTRUDERS > 5
|
||||
#endif // EXTRUDERS > 4
|
||||
#endif // EXTRUDERS > 3
|
||||
@ -147,18 +134,18 @@ void menu_backlash();
|
||||
#if EXTRUDERS == 1
|
||||
EDIT_ITEM_FAST(float43, MSG_FILAMENT_DIAM, &planner.filament_size[0], 1.5f, 3.25f, planner.calculate_volumetric_multipliers);
|
||||
#else // EXTRUDERS > 1
|
||||
#define EDIT_FIL_DIAM(N) EDIT_ITEM_FAST(float43, MSG_FILAMENT_DIAM MSG_DIAM_E##N, &planner.filament_size[N-1], 1.5f, 3.25f, planner.calculate_volumetric_multipliers)
|
||||
#define EDIT_FIL_DIAM(N) EDIT_ITEM_FAST(float43, MSG_FILAMENT_DIAM LCD_STR_N##N, &planner.filament_size[N], 1.5f, 3.25f, planner.calculate_volumetric_multipliers)
|
||||
EDIT_ITEM_FAST(float43, MSG_FILAMENT_DIAM, &planner.filament_size[active_extruder], 1.5f, 3.25f, planner.calculate_volumetric_multipliers);
|
||||
EDIT_FIL_DIAM(0);
|
||||
EDIT_FIL_DIAM(1);
|
||||
EDIT_FIL_DIAM(2);
|
||||
#if EXTRUDERS > 2
|
||||
EDIT_FIL_DIAM(3);
|
||||
EDIT_FIL_DIAM(2);
|
||||
#if EXTRUDERS > 3
|
||||
EDIT_FIL_DIAM(4);
|
||||
EDIT_FIL_DIAM(3);
|
||||
#if EXTRUDERS > 4
|
||||
EDIT_FIL_DIAM(5);
|
||||
EDIT_FIL_DIAM(4);
|
||||
#if EXTRUDERS > 5
|
||||
EDIT_FIL_DIAM(6);
|
||||
EDIT_FIL_DIAM(5);
|
||||
#endif // EXTRUDERS > 5
|
||||
#endif // EXTRUDERS > 4
|
||||
#endif // EXTRUDERS > 3
|
||||
@ -179,18 +166,18 @@ void menu_backlash();
|
||||
#if EXTRUDERS == 1
|
||||
EDIT_ITEM_FAST(float3, MSG_FILAMENT_UNLOAD, &fc_settings[0].unload_length, 0, extrude_maxlength);
|
||||
#elif EXTRUDERS > 1
|
||||
#define EDIT_FIL_UNLOAD(N) EDIT_ITEM_FAST(float3, MSG_FILAMENT_UNLOAD MSG_DIAM_E##N, &fc_settings[N-1].unload_length, 0, extrude_maxlength)
|
||||
#define EDIT_FIL_UNLOAD(N) EDIT_ITEM_FAST(float3, MSG_FILAMENT_UNLOAD LCD_STR_N##N, &fc_settings[N].unload_length, 0, extrude_maxlength)
|
||||
EDIT_ITEM_FAST(float3, MSG_FILAMENT_UNLOAD, &fc_settings[active_extruder].unload_length, 0, extrude_maxlength);
|
||||
EDIT_FIL_UNLOAD(0);
|
||||
EDIT_FIL_UNLOAD(1);
|
||||
EDIT_FIL_UNLOAD(2);
|
||||
#if EXTRUDERS > 2
|
||||
EDIT_FIL_UNLOAD(3);
|
||||
EDIT_FIL_UNLOAD(2);
|
||||
#if EXTRUDERS > 3
|
||||
EDIT_FIL_UNLOAD(4);
|
||||
EDIT_FIL_UNLOAD(3);
|
||||
#if EXTRUDERS > 4
|
||||
EDIT_FIL_UNLOAD(5);
|
||||
EDIT_FIL_UNLOAD(4);
|
||||
#if EXTRUDERS > 5
|
||||
EDIT_FIL_UNLOAD(6);
|
||||
EDIT_FIL_UNLOAD(5);
|
||||
#endif // EXTRUDERS > 5
|
||||
#endif // EXTRUDERS > 4
|
||||
#endif // EXTRUDERS > 3
|
||||
@ -200,18 +187,18 @@ void menu_backlash();
|
||||
#if EXTRUDERS == 1
|
||||
EDIT_ITEM_FAST(float3, MSG_FILAMENT_LOAD, &fc_settings[0].load_length, 0, extrude_maxlength);
|
||||
#elif EXTRUDERS > 1
|
||||
#define EDIT_FIL_LOAD(N) EDIT_ITEM_FAST(float3, MSG_FILAMENT_LOAD MSG_DIAM_E##N, &fc_settings[N-1].load_length, 0, extrude_maxlength)
|
||||
#define EDIT_FIL_LOAD(N) EDIT_ITEM_FAST(float3, MSG_FILAMENT_LOAD LCD_STR_N##N, &fc_settings[N].load_length, 0, extrude_maxlength)
|
||||
EDIT_ITEM_FAST(float3, MSG_FILAMENT_LOAD, &fc_settings[active_extruder].load_length, 0, extrude_maxlength);
|
||||
EDIT_FIL_LOAD(0);
|
||||
EDIT_FIL_LOAD(1);
|
||||
EDIT_FIL_LOAD(2);
|
||||
#if EXTRUDERS > 2
|
||||
EDIT_FIL_LOAD(3);
|
||||
EDIT_FIL_LOAD(2);
|
||||
#if EXTRUDERS > 3
|
||||
EDIT_FIL_LOAD(4);
|
||||
EDIT_FIL_LOAD(3);
|
||||
#if EXTRUDERS > 4
|
||||
EDIT_FIL_LOAD(5);
|
||||
EDIT_FIL_LOAD(4);
|
||||
#if EXTRUDERS > 5
|
||||
EDIT_FIL_LOAD(6);
|
||||
EDIT_FIL_LOAD(5);
|
||||
#endif // EXTRUDERS > 5
|
||||
#endif // EXTRUDERS > 4
|
||||
#endif // EXTRUDERS > 3
|
||||
@ -280,45 +267,9 @@ void menu_backlash();
|
||||
PID_PARAM(Kd, e) = scalePID_d(raw_Kd);
|
||||
thermalManager.updatePID();
|
||||
}
|
||||
#define _DEFINE_PIDTEMP_BASE_FUNCS(N) \
|
||||
void copy_and_scalePID_i_E ## N() { copy_and_scalePID_i(N); } \
|
||||
void copy_and_scalePID_d_E ## N() { copy_and_scalePID_d(N); }
|
||||
|
||||
#else
|
||||
|
||||
#define _DEFINE_PIDTEMP_BASE_FUNCS(N) //
|
||||
|
||||
#endif
|
||||
|
||||
#if ENABLED(PID_AUTOTUNE_MENU)
|
||||
#define DEFINE_PIDTEMP_FUNCS(N) \
|
||||
_DEFINE_PIDTEMP_BASE_FUNCS(N); \
|
||||
void lcd_autotune_callback_E ## N() { _lcd_autotune(N); } //
|
||||
#else
|
||||
#define DEFINE_PIDTEMP_FUNCS(N) _DEFINE_PIDTEMP_BASE_FUNCS(N); //
|
||||
#endif
|
||||
|
||||
#if HOTENDS
|
||||
DEFINE_PIDTEMP_FUNCS(0);
|
||||
#if ENABLED(PID_PARAMS_PER_HOTEND)
|
||||
#if HOTENDS > 1
|
||||
DEFINE_PIDTEMP_FUNCS(1);
|
||||
#if HOTENDS > 2
|
||||
DEFINE_PIDTEMP_FUNCS(2);
|
||||
#if HOTENDS > 3
|
||||
DEFINE_PIDTEMP_FUNCS(3);
|
||||
#if HOTENDS > 4
|
||||
DEFINE_PIDTEMP_FUNCS(4);
|
||||
#if HOTENDS > 5
|
||||
DEFINE_PIDTEMP_FUNCS(5);
|
||||
#endif // HOTENDS > 5
|
||||
#endif // HOTENDS > 4
|
||||
#endif // HOTENDS > 3
|
||||
#endif // HOTENDS > 2
|
||||
#endif // HOTENDS > 1
|
||||
#endif // PID_PARAMS_PER_HOTEND
|
||||
#endif // HOTENDS
|
||||
|
||||
#define SHOW_MENU_ADVANCED_TEMPERATURE ((ENABLED(AUTOTEMP) && HAS_TEMP_HOTEND) || EITHER(PID_AUTOTUNE_MENU, PID_EDIT_MENU))
|
||||
|
||||
//
|
||||
@ -353,8 +304,8 @@ void menu_backlash();
|
||||
raw_Ki = unscalePID_i(PID_PARAM(Ki, eindex)); \
|
||||
raw_Kd = unscalePID_d(PID_PARAM(Kd, eindex)); \
|
||||
EDIT_ITEM(float52sign, MSG_PID_P ELABEL, &PID_PARAM(Kp, eindex), 1, 9990); \
|
||||
EDIT_ITEM(float52sign, MSG_PID_I ELABEL, &raw_Ki, 0.01f, 9990, copy_and_scalePID_i_E ## eindex); \
|
||||
EDIT_ITEM(float52sign, MSG_PID_D ELABEL, &raw_Kd, 1, 9990, copy_and_scalePID_d_E ## eindex)
|
||||
EDIT_ITEM(float52sign, MSG_PID_I ELABEL, &raw_Ki, 0.01f, 9990, [](){ copy_and_scalePID_i(eindex); }); \
|
||||
EDIT_ITEM(float52sign, MSG_PID_D ELABEL, &raw_Kd, 1, 9990, [](){ copy_and_scalePID_d(eindex); })
|
||||
|
||||
#if ENABLED(PID_EXTRUSION_SCALING)
|
||||
#define _PID_EDIT_MENU_ITEMS(ELABEL, eindex) \
|
||||
@ -373,22 +324,22 @@ void menu_backlash();
|
||||
#if ENABLED(PID_AUTOTUNE_MENU)
|
||||
#define PID_EDIT_MENU_ITEMS(ELABEL, eindex) \
|
||||
_PID_EDIT_MENU_ITEMS(ELABEL, eindex); \
|
||||
EDIT_ITEM_FAST(int3, MSG_PID_AUTOTUNE ELABEL, &autotune_temp[eindex], 150, heater_maxtemp[eindex] - 15, lcd_autotune_callback_E ## eindex)
|
||||
EDIT_ITEM_FAST(int3, MSG_PID_AUTOTUNE ELABEL, &autotune_temp[eindex], 150, heater_maxtemp[eindex] - 15, [](){ _lcd_autotune(eindex); })
|
||||
#else
|
||||
#define PID_EDIT_MENU_ITEMS(ELABEL, eindex) _PID_EDIT_MENU_ITEMS(ELABEL, eindex)
|
||||
#endif
|
||||
|
||||
#if ENABLED(PID_PARAMS_PER_HOTEND) && HOTENDS > 1
|
||||
PID_EDIT_MENU_ITEMS(" " MSG_E1, 0);
|
||||
PID_EDIT_MENU_ITEMS(" " MSG_E2, 1);
|
||||
PID_EDIT_MENU_ITEMS(" " LCD_STR_E0, 0);
|
||||
PID_EDIT_MENU_ITEMS(" " LCD_STR_E1, 1);
|
||||
#if HOTENDS > 2
|
||||
PID_EDIT_MENU_ITEMS(" " MSG_E3, 2);
|
||||
PID_EDIT_MENU_ITEMS(" " LCD_STR_E2, 2);
|
||||
#if HOTENDS > 3
|
||||
PID_EDIT_MENU_ITEMS(" " MSG_E4, 3);
|
||||
PID_EDIT_MENU_ITEMS(" " LCD_STR_E3, 3);
|
||||
#if HOTENDS > 4
|
||||
PID_EDIT_MENU_ITEMS(" " MSG_E5, 4);
|
||||
PID_EDIT_MENU_ITEMS(" " LCD_STR_E4, 4);
|
||||
#if HOTENDS > 5
|
||||
PID_EDIT_MENU_ITEMS(" " MSG_E6, 5);
|
||||
PID_EDIT_MENU_ITEMS(" " LCD_STR_E5, 5);
|
||||
#endif // HOTENDS > 5
|
||||
#endif // HOTENDS > 4
|
||||
#endif // HOTENDS > 3
|
||||
@ -404,47 +355,14 @@ void menu_backlash();
|
||||
|
||||
#if DISABLED(SLIM_LCD_MENUS)
|
||||
|
||||
void _reset_acceleration_rates() { planner.reset_acceleration_rates(); }
|
||||
#if ENABLED(DISTINCT_E_FACTORS)
|
||||
void _reset_e_acceleration_rate(const uint8_t e) { if (e == active_extruder) _reset_acceleration_rates(); }
|
||||
void _reset_e0_acceleration_rate() { _reset_e_acceleration_rate(0); }
|
||||
void _reset_e1_acceleration_rate() { _reset_e_acceleration_rate(1); }
|
||||
#if E_STEPPERS > 2
|
||||
void _reset_e2_acceleration_rate() { _reset_e_acceleration_rate(2); }
|
||||
#if E_STEPPERS > 3
|
||||
void _reset_e3_acceleration_rate() { _reset_e_acceleration_rate(3); }
|
||||
#if E_STEPPERS > 4
|
||||
void _reset_e4_acceleration_rate() { _reset_e_acceleration_rate(4); }
|
||||
#if E_STEPPERS > 5
|
||||
void _reset_e5_acceleration_rate() { _reset_e_acceleration_rate(5); }
|
||||
#endif // E_STEPPERS > 5
|
||||
#endif // E_STEPPERS > 4
|
||||
#endif // E_STEPPERS > 3
|
||||
#endif // E_STEPPERS > 2
|
||||
#endif
|
||||
|
||||
void _planner_refresh_positioning() { planner.refresh_positioning(); }
|
||||
#if ENABLED(DISTINCT_E_FACTORS)
|
||||
void _planner_refresh_e_positioning(const uint8_t e) {
|
||||
inline void _reset_e_acceleration_rate(const uint8_t e) { if (e == active_extruder) planner.reset_acceleration_rates(); }
|
||||
inline void _planner_refresh_e_positioning(const uint8_t e) {
|
||||
if (e == active_extruder)
|
||||
_planner_refresh_positioning();
|
||||
planner.refresh_positioning();
|
||||
else
|
||||
planner.steps_to_mm[E_AXIS_N(e)] = 1.0f / planner.settings.axis_steps_per_mm[E_AXIS_N(e)];
|
||||
}
|
||||
void _planner_refresh_e0_positioning() { _planner_refresh_e_positioning(0); }
|
||||
void _planner_refresh_e1_positioning() { _planner_refresh_e_positioning(1); }
|
||||
#if E_STEPPERS > 2
|
||||
void _planner_refresh_e2_positioning() { _planner_refresh_e_positioning(2); }
|
||||
#if E_STEPPERS > 3
|
||||
void _planner_refresh_e3_positioning() { _planner_refresh_e_positioning(3); }
|
||||
#if E_STEPPERS > 4
|
||||
void _planner_refresh_e4_positioning() { _planner_refresh_e_positioning(4); }
|
||||
#if E_STEPPERS > 5
|
||||
void _planner_refresh_e5_positioning() { _planner_refresh_e_positioning(5); }
|
||||
#endif // E_STEPPERS > 5
|
||||
#endif // E_STEPPERS > 4
|
||||
#endif // E_STEPPERS > 3
|
||||
#endif // E_STEPPERS > 2
|
||||
#endif
|
||||
|
||||
// M203 / M205 Velocity options
|
||||
@ -473,18 +391,18 @@ void menu_backlash();
|
||||
EDIT_VMAX(C);
|
||||
|
||||
#if ENABLED(DISTINCT_E_FACTORS)
|
||||
#define EDIT_VMAX_E(N) EDIT_ITEM_FAST(float3, MSG_VMAX MSG_E##N, &planner.settings.max_feedrate_mm_s[E_AXIS_N(N-1)], 1, max_fr_edit_scaled.e)
|
||||
#define EDIT_VMAX_E(N) EDIT_ITEM_FAST(float3, MSG_VMAX LCD_STR_E##N, &planner.settings.max_feedrate_mm_s[E_AXIS_N(N)], 1, max_fr_edit_scaled.e)
|
||||
EDIT_ITEM_FAST(float3, MSG_VMAX MSG_E, &planner.settings.max_feedrate_mm_s[E_AXIS_N(active_extruder)], 1, max_fr_edit_scaled.e);
|
||||
EDIT_VMAX_E(0);
|
||||
EDIT_VMAX_E(1);
|
||||
EDIT_VMAX_E(2);
|
||||
#if E_STEPPERS > 2
|
||||
EDIT_VMAX_E(3);
|
||||
EDIT_VMAX_E(2);
|
||||
#if E_STEPPERS > 3
|
||||
EDIT_VMAX_E(4);
|
||||
EDIT_VMAX_E(3);
|
||||
#if E_STEPPERS > 4
|
||||
EDIT_VMAX_E(5);
|
||||
EDIT_VMAX_E(4);
|
||||
#if E_STEPPERS > 5
|
||||
EDIT_VMAX_E(6);
|
||||
EDIT_VMAX_E(5);
|
||||
#endif // E_STEPPERS > 5
|
||||
#endif // E_STEPPERS > 4
|
||||
#endif // E_STEPPERS > 3
|
||||
@ -533,31 +451,31 @@ void menu_backlash();
|
||||
const xyze_ulong_t &max_accel_edit_scaled = max_accel_edit;
|
||||
#endif
|
||||
|
||||
#define EDIT_AMAX(Q,L) EDIT_ITEM_FAST(long5_25, MSG_AMAX MSG_##Q, &planner.settings.max_acceleration_mm_per_s2[_AXIS(Q)], L, max_accel_edit_scaled[_AXIS(Q)], _reset_acceleration_rates)
|
||||
#define EDIT_AMAX(Q,L) EDIT_ITEM_FAST(long5_25, MSG_AMAX MSG_##Q, &planner.settings.max_acceleration_mm_per_s2[_AXIS(Q)], L, max_accel_edit_scaled[_AXIS(Q)], [](){ planner.reset_acceleration_rates(); })
|
||||
|
||||
EDIT_AMAX(A,100);
|
||||
EDIT_AMAX(B,100);
|
||||
EDIT_AMAX(C, 10);
|
||||
|
||||
#if ENABLED(DISTINCT_E_FACTORS)
|
||||
#define EDIT_AMAX_E(N,E) EDIT_ITEM_FAST(long5_25, MSG_AMAX MSG_E##N, &planner.settings.max_acceleration_mm_per_s2[E_AXIS_N(E)], 100, max_accel_edit_scaled.e, _reset_e##E##_acceleration_rate)
|
||||
EDIT_ITEM_FAST(long5_25, MSG_AMAX MSG_E, &planner.settings.max_acceleration_mm_per_s2[E_AXIS_N(active_extruder)], 100, max_accel_edit_scaled.e, _reset_acceleration_rates);
|
||||
EDIT_AMAX_E(1,0);
|
||||
EDIT_AMAX_E(2,1);
|
||||
#define EDIT_AMAX_E(N) EDIT_ITEM_FAST(long5_25, MSG_AMAX LCD_STR_E##N, &planner.settings.max_acceleration_mm_per_s2[E_AXIS_N(N)], 100, max_accel_edit_scaled.e, [](){ _reset_e_acceleration_rate(N); })
|
||||
EDIT_ITEM_FAST(long5_25, MSG_AMAX MSG_E, &planner.settings.max_acceleration_mm_per_s2[E_AXIS_N(active_extruder)], 100, max_accel_edit_scaled.e, [](){ planner.reset_acceleration_rates(); });
|
||||
EDIT_AMAX_E(0);
|
||||
EDIT_AMAX_E(1);
|
||||
#if E_STEPPERS > 2
|
||||
EDIT_AMAX_E(3,2);
|
||||
EDIT_AMAX_E(2);
|
||||
#if E_STEPPERS > 3
|
||||
EDIT_AMAX_E(4,3);
|
||||
EDIT_AMAX_E(3);
|
||||
#if E_STEPPERS > 4
|
||||
EDIT_AMAX_E(5,4);
|
||||
EDIT_AMAX_E(4);
|
||||
#if E_STEPPERS > 5
|
||||
EDIT_AMAX_E(6,5);
|
||||
EDIT_AMAX_E(5);
|
||||
#endif // E_STEPPERS > 5
|
||||
#endif // E_STEPPERS > 4
|
||||
#endif // E_STEPPERS > 3
|
||||
#endif // E_STEPPERS > 2
|
||||
#elif E_STEPPERS
|
||||
EDIT_ITEM_FAST(long5_25, MSG_AMAX MSG_E, &planner.settings.max_acceleration_mm_per_s2[E_AXIS], 100, max_accel_edit_scaled.e, _reset_acceleration_rates);
|
||||
EDIT_ITEM_FAST(long5_25, MSG_AMAX MSG_E, &planner.settings.max_acceleration_mm_per_s2[E_AXIS], 100, max_accel_edit_scaled.e, [](){ planner.reset_acceleration_rates(); });
|
||||
#endif
|
||||
|
||||
END_MENU();
|
||||
@ -606,30 +524,30 @@ void menu_backlash();
|
||||
START_MENU();
|
||||
BACK_ITEM(MSG_ADVANCED_SETTINGS);
|
||||
|
||||
#define EDIT_QSTEPS(Q) EDIT_ITEM_FAST(float51, MSG_##Q##STEPS, &planner.settings.axis_steps_per_mm[_AXIS(Q)], 5, 9999, _planner_refresh_positioning)
|
||||
#define EDIT_QSTEPS(Q) EDIT_ITEM_FAST(float51, MSG_##Q##STEPS, &planner.settings.axis_steps_per_mm[_AXIS(Q)], 5, 9999, [](){ planner.refresh_positioning(); })
|
||||
EDIT_QSTEPS(A);
|
||||
EDIT_QSTEPS(B);
|
||||
EDIT_QSTEPS(C);
|
||||
|
||||
#if ENABLED(DISTINCT_E_FACTORS)
|
||||
#define EDIT_ESTEPS(N,E) EDIT_ITEM_FAST(float51, MSG_E##N##STEPS, &planner.settings.axis_steps_per_mm[E_AXIS_N(E)], 5, 9999, _planner_refresh_e##E##_positioning)
|
||||
EDIT_ITEM_FAST(float51, MSG_ESTEPS, &planner.settings.axis_steps_per_mm[E_AXIS_N(active_extruder)], 5, 9999, _planner_refresh_positioning);
|
||||
EDIT_ESTEPS(1,0);
|
||||
EDIT_ESTEPS(2,1);
|
||||
#define EDIT_ESTEPS(N) EDIT_ITEM_FAST(float51, MSG_E##N##STEPS, &planner.settings.axis_steps_per_mm[E_AXIS_N(N)], 5, 9999, [](){ _planner_refresh_e_positioning(N); })
|
||||
EDIT_ITEM_FAST(float51, MSG_ESTEPS, &planner.settings.axis_steps_per_mm[E_AXIS_N(active_extruder)], 5, 9999, [](){ planner.refresh_positioning(); });
|
||||
EDIT_ESTEPS(0);
|
||||
EDIT_ESTEPS(1);
|
||||
#if E_STEPPERS > 2
|
||||
EDIT_ESTEPS(3,2);
|
||||
EDIT_ESTEPS(2);
|
||||
#if E_STEPPERS > 3
|
||||
EDIT_ESTEPS(4,3);
|
||||
EDIT_ESTEPS(3);
|
||||
#if E_STEPPERS > 4
|
||||
EDIT_ESTEPS(5,4);
|
||||
EDIT_ESTEPS(4);
|
||||
#if E_STEPPERS > 5
|
||||
EDIT_ESTEPS(6,5);
|
||||
EDIT_ESTEPS(5);
|
||||
#endif // E_STEPPERS > 5
|
||||
#endif // E_STEPPERS > 4
|
||||
#endif // E_STEPPERS > 3
|
||||
#endif // E_STEPPERS > 2
|
||||
#elif E_STEPPERS
|
||||
EDIT_ITEM_FAST(float51, MSG_ESTEPS, &planner.settings.axis_steps_per_mm[E_AXIS], 5, 9999, _planner_refresh_positioning);
|
||||
EDIT_ITEM_FAST(float51, MSG_ESTEPS, &planner.settings.axis_steps_per_mm[E_AXIS], 5, 9999, [](){ planner.refresh_positioning(); });
|
||||
#endif
|
||||
|
||||
END_MENU();
|
||||
@ -671,7 +589,7 @@ void menu_advanced_settings() {
|
||||
//
|
||||
// Set Home Offsets
|
||||
//
|
||||
ACTION_ITEM(MSG_SET_HOME_OFFSETS, _lcd_set_home_offsets);
|
||||
ACTION_ITEM(MSG_SET_HOME_OFFSETS, [](){ queue.inject_P(PSTR("M428")); ui.return_to_status(); });
|
||||
#endif
|
||||
|
||||
// M203 / M205 - Feedrate items
|
||||
@ -714,17 +632,17 @@ void menu_advanced_settings() {
|
||||
#if EXTRUDERS == 1
|
||||
EDIT_ITEM(float52, MSG_ADVANCE_K, &planner.extruder_advance_K[0], 0, 999);
|
||||
#elif EXTRUDERS > 1
|
||||
#define EDIT_ADVANCE_K(N) EDIT_ITEM(float52, MSG_ADVANCE_K MSG_E##N, &planner.extruder_advance_K[N-1], 0, 999)
|
||||
#define EDIT_ADVANCE_K(N) EDIT_ITEM(float52, MSG_ADVANCE_K LCD_STR_E##N, &planner.extruder_advance_K[N], 0, 999)
|
||||
EDIT_ADVANCE_K(0);
|
||||
EDIT_ADVANCE_K(1);
|
||||
EDIT_ADVANCE_K(2);
|
||||
#if EXTRUDERS > 2
|
||||
EDIT_ADVANCE_K(3);
|
||||
EDIT_ADVANCE_K(2);
|
||||
#if EXTRUDERS > 3
|
||||
EDIT_ADVANCE_K(4);
|
||||
EDIT_ADVANCE_K(3);
|
||||
#if EXTRUDERS > 4
|
||||
EDIT_ADVANCE_K(5);
|
||||
EDIT_ADVANCE_K(4);
|
||||
#if EXTRUDERS > 5
|
||||
EDIT_ADVANCE_K(6);
|
||||
EDIT_ADVANCE_K(5);
|
||||
#endif // EXTRUDERS > 5
|
||||
#endif // EXTRUDERS > 4
|
||||
#endif // EXTRUDERS > 3
|
||||
|
@ -260,13 +260,15 @@ void menu_bed_leveling() {
|
||||
|
||||
// Homed and leveling is valid? Then leveling can be toggled.
|
||||
if (is_homed && leveling_is_valid()) {
|
||||
bool new_level_state = planner.leveling_active;
|
||||
EDIT_ITEM(bool, MSG_BED_LEVELING, &new_level_state, _lcd_toggle_bed_leveling);
|
||||
bool show_state = planner.leveling_active;
|
||||
EDIT_ITEM(bool, MSG_BED_LEVELING, &show_state, _lcd_toggle_bed_leveling);
|
||||
}
|
||||
|
||||
// Z Fade Height
|
||||
#if ENABLED(ENABLE_LEVELING_FADE_HEIGHT)
|
||||
EDIT_ITEM_FAST(float3, MSG_Z_FADE_HEIGHT, &lcd_z_fade_height, 0, 100, _lcd_set_z_fade_height);
|
||||
// Shadow for editing the fade height
|
||||
editable.decimal = planner.z_fade_height;
|
||||
EDIT_ITEM_FAST(float3, MSG_Z_FADE_HEIGHT, &editable.decimal, 0, 100, [](){ set_z_fade_height(editable.decimal); });
|
||||
#endif
|
||||
|
||||
//
|
||||
|
@ -54,13 +54,6 @@ void menu_advanced_settings();
|
||||
void menu_delta_calibrate();
|
||||
#endif
|
||||
|
||||
static void lcd_factory_settings() {
|
||||
settings.reset();
|
||||
#if HAS_BUZZER
|
||||
ui.completion_feedback();
|
||||
#endif
|
||||
}
|
||||
|
||||
#if ENABLED(LCD_PROGRESS_BAR_TEST)
|
||||
|
||||
#include "../lcdprint.h"
|
||||
@ -166,12 +159,10 @@ static void lcd_factory_settings() {
|
||||
|
||||
GCODES_ITEM(MSG_IDEX_MODE_AUTOPARK, PSTR("M605 S1\nG28 X\nG1 X100"));
|
||||
const bool need_g28 = !(TEST(axis_known_position, Y_AXIS) && TEST(axis_known_position, Z_AXIS));
|
||||
|
||||
GCODES_ITEM(MSG_IDEX_MODE_DUPLICATE, need_g28
|
||||
? PSTR("M605 S1\nT0\nG28\nM605 S2 X200\nG28 X\nG1 X100") // If Y or Z is not homed, do a full G28 first
|
||||
: PSTR("M605 S1\nT0\nM605 S2 X200\nG28 X\nG1 X100")
|
||||
);
|
||||
|
||||
GCODES_ITEM(MSG_IDEX_MODE_MIRRORED_COPY, need_g28
|
||||
? PSTR("M605 S1\nT0\nG28\nM605 S2 X200\nG28 X\nG1 X100\nM605 S3 X200") // If Y or Z is not homed, do a full G28 first
|
||||
: PSTR("M605 S1\nT0\nM605 S2 X200\nG28 X\nG1 X100\nM605 S3 X200")
|
||||
@ -408,7 +399,12 @@ void menu_configuration() {
|
||||
#endif
|
||||
|
||||
if (!busy)
|
||||
ACTION_ITEM(MSG_RESTORE_FAILSAFE, lcd_factory_settings);
|
||||
ACTION_ITEM(MSG_RESTORE_FAILSAFE, [](){
|
||||
settings.reset();
|
||||
#if HAS_BUZZER
|
||||
ui.completion_feedback();
|
||||
#endif
|
||||
});
|
||||
|
||||
END_MENU();
|
||||
}
|
||||
|
@ -47,39 +47,23 @@ void _lcd_user_gcode(PGM_P const cmd) {
|
||||
#endif
|
||||
}
|
||||
|
||||
#if defined(USER_DESC_1) && defined(USER_GCODE_1)
|
||||
void lcd_user_gcode_1() { _lcd_user_gcode(PSTR(USER_GCODE_1 _DONE_SCRIPT)); }
|
||||
#endif
|
||||
#if defined(USER_DESC_2) && defined(USER_GCODE_2)
|
||||
void lcd_user_gcode_2() { _lcd_user_gcode(PSTR(USER_GCODE_2 _DONE_SCRIPT)); }
|
||||
#endif
|
||||
#if defined(USER_DESC_3) && defined(USER_GCODE_3)
|
||||
void lcd_user_gcode_3() { _lcd_user_gcode(PSTR(USER_GCODE_3 _DONE_SCRIPT)); }
|
||||
#endif
|
||||
#if defined(USER_DESC_4) && defined(USER_GCODE_4)
|
||||
void lcd_user_gcode_4() { _lcd_user_gcode(PSTR(USER_GCODE_4 _DONE_SCRIPT)); }
|
||||
#endif
|
||||
#if defined(USER_DESC_5) && defined(USER_GCODE_5)
|
||||
void lcd_user_gcode_5() { _lcd_user_gcode(PSTR(USER_GCODE_5 _DONE_SCRIPT)); }
|
||||
#endif
|
||||
|
||||
void menu_user() {
|
||||
START_MENU();
|
||||
BACK_ITEM(MSG_MAIN);
|
||||
#if defined(USER_DESC_1) && defined(USER_GCODE_1)
|
||||
ACTION_ITEM(USER_DESC_1, lcd_user_gcode_1);
|
||||
ACTION_ITEM(USER_DESC_1, [](){ _lcd_user_gcode(PSTR(USER_GCODE_1 _DONE_SCRIPT)); });
|
||||
#endif
|
||||
#if defined(USER_DESC_2) && defined(USER_GCODE_2)
|
||||
ACTION_ITEM(USER_DESC_2, lcd_user_gcode_2);
|
||||
ACTION_ITEM(USER_DESC_2, [](){ _lcd_user_gcode(PSTR(USER_GCODE_2 _DONE_SCRIPT)); });
|
||||
#endif
|
||||
#if defined(USER_DESC_3) && defined(USER_GCODE_3)
|
||||
ACTION_ITEM(USER_DESC_3, lcd_user_gcode_3);
|
||||
ACTION_ITEM(USER_DESC_3, [](){ _lcd_user_gcode(PSTR(USER_GCODE_3 _DONE_SCRIPT)); });
|
||||
#endif
|
||||
#if defined(USER_DESC_4) && defined(USER_GCODE_4)
|
||||
ACTION_ITEM(USER_DESC_4, lcd_user_gcode_4);
|
||||
ACTION_ITEM(USER_DESC_4, [](){ _lcd_user_gcode(PSTR(USER_GCODE_4 _DONE_SCRIPT)); });
|
||||
#endif
|
||||
#if defined(USER_DESC_5) && defined(USER_GCODE_5)
|
||||
ACTION_ITEM(USER_DESC_5, lcd_user_gcode_5);
|
||||
ACTION_ITEM(USER_DESC_5, [](){ _lcd_user_gcode(PSTR(USER_GCODE_5 _DONE_SCRIPT)); });
|
||||
#endif
|
||||
END_MENU();
|
||||
}
|
||||
|
@ -94,14 +94,13 @@ void _man_probe_pt(const xy_pos_t &xy) {
|
||||
|
||||
#endif
|
||||
|
||||
void _recalc_delta_settings() {
|
||||
#if HAS_LEVELING
|
||||
reset_bed_level(); // After changing kinematics bed-level data is no longer valid
|
||||
#endif
|
||||
recalc_delta_settings();
|
||||
}
|
||||
|
||||
void lcd_delta_settings() {
|
||||
auto _recalc_delta_settings = []() {
|
||||
#if HAS_LEVELING
|
||||
reset_bed_level(); // After changing kinematics bed-level data is no longer valid
|
||||
#endif
|
||||
recalc_delta_settings();
|
||||
};
|
||||
START_MENU();
|
||||
BACK_ITEM(MSG_DELTA_CALIBRATE);
|
||||
EDIT_ITEM(float52sign, MSG_DELTA_HEIGHT, &delta_height, delta_height - 10, delta_height + 10, _recalc_delta_settings);
|
||||
|
@ -55,17 +55,19 @@ inline PGM_P _change_filament_temp_command() {
|
||||
return PSTR(MSG_FILAMENTCHANGE);
|
||||
}
|
||||
|
||||
// Initiate Filament Load/Unload/Change at the specified temperature
|
||||
static void _change_filament_temp(const uint16_t temperature) {
|
||||
char cmd[11];
|
||||
sprintf_P(cmd, _change_filament_temp_command(), _change_filament_temp_extruder);
|
||||
thermalManager.setTargetHotend(temperature, _change_filament_temp_extruder);
|
||||
lcd_enqueue_one_now(cmd);
|
||||
}
|
||||
inline void _lcd_change_filament_temp_1_func() { _change_filament_temp(ui.preheat_hotend_temp[0]); }
|
||||
inline void _lcd_change_filament_temp_2_func() { _change_filament_temp(ui.preheat_hotend_temp[1]); }
|
||||
inline void _lcd_change_filament_temp_custom_cb() { _change_filament_temp(thermalManager.temp_hotend[_change_filament_temp_extruder].target); }
|
||||
|
||||
static PGM_P change_filament_header(const PauseMode mode) {
|
||||
//
|
||||
// Menu to choose the temperature and start Filament Change
|
||||
//
|
||||
|
||||
inline PGM_P change_filament_header(const PauseMode mode) {
|
||||
switch (mode) {
|
||||
case PAUSE_MODE_LOAD_FILAMENT:
|
||||
return PSTR(MSG_FILAMENTLOAD);
|
||||
@ -76,66 +78,19 @@ static PGM_P change_filament_header(const PauseMode mode) {
|
||||
return PSTR(MSG_FILAMENTCHANGE);
|
||||
}
|
||||
|
||||
void _menu_temp_filament_op(const PauseMode inMode, const int8_t extruder) {
|
||||
// If no print is active, just label as "filament change"
|
||||
const PauseMode mode = (inMode != PAUSE_MODE_PAUSE_PRINT || printingIsPaused()) ? inMode : PAUSE_MODE_CHANGE_FILAMENT;
|
||||
void _menu_temp_filament_op(const PauseMode mode, const int8_t extruder) {
|
||||
_change_filament_temp_mode = mode;
|
||||
_change_filament_temp_extruder = 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, _lcd_change_filament_temp_1_func);
|
||||
ACTION_ITEM(MSG_PREHEAT_2, _lcd_change_filament_temp_2_func);
|
||||
uint16_t max_temp;
|
||||
switch (extruder) {
|
||||
default: max_temp = HEATER_0_MAXTEMP;
|
||||
#if HOTENDS > 1
|
||||
case 1: max_temp = HEATER_1_MAXTEMP; break;
|
||||
#if HOTENDS > 2
|
||||
case 2: max_temp = HEATER_2_MAXTEMP; break;
|
||||
#if HOTENDS > 3
|
||||
case 3: max_temp = HEATER_3_MAXTEMP; break;
|
||||
#if HOTENDS > 4
|
||||
case 4: max_temp = HEATER_4_MAXTEMP; break;
|
||||
#if HOTENDS > 5
|
||||
case 5: max_temp = HEATER_5_MAXTEMP; break;
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
EDIT_ITEM_FAST(int3, MSG_PREHEAT_CUSTOM, &thermalManager.temp_hotend[_change_filament_temp_extruder].target, EXTRUDE_MINTEMP, max_temp - 15, _lcd_change_filament_temp_custom_cb);
|
||||
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();
|
||||
}
|
||||
#if E_STEPPERS
|
||||
void menu_temp_e0_filament_change() { _menu_temp_filament_op(PAUSE_MODE_PAUSE_PRINT, 0); }
|
||||
void menu_temp_e0_filament_load() { _menu_temp_filament_op(PAUSE_MODE_LOAD_FILAMENT, 0); }
|
||||
void menu_temp_e0_filament_unload() { _menu_temp_filament_op(PAUSE_MODE_UNLOAD_FILAMENT, 0); }
|
||||
#if E_STEPPERS > 1
|
||||
void menu_temp_e1_filament_change() { _menu_temp_filament_op(PAUSE_MODE_PAUSE_PRINT, 1); }
|
||||
void menu_temp_e1_filament_load() { _menu_temp_filament_op(PAUSE_MODE_LOAD_FILAMENT, 1); }
|
||||
void menu_temp_e1_filament_unload() { _menu_temp_filament_op(PAUSE_MODE_UNLOAD_FILAMENT, 1); }
|
||||
#if ENABLED(FILAMENT_UNLOAD_ALL_EXTRUDERS)
|
||||
void menu_unload_filament_all_temp() { _menu_temp_filament_op(PAUSE_MODE_UNLOAD_FILAMENT, -1); }
|
||||
#endif
|
||||
#if E_STEPPERS > 2
|
||||
void menu_temp_e2_filament_change() { _menu_temp_filament_op(PAUSE_MODE_PAUSE_PRINT, 2); }
|
||||
void menu_temp_e2_filament_load() { _menu_temp_filament_op(PAUSE_MODE_LOAD_FILAMENT, 2); }
|
||||
void menu_temp_e2_filament_unload() { _menu_temp_filament_op(PAUSE_MODE_UNLOAD_FILAMENT, 2); }
|
||||
#if E_STEPPERS > 3
|
||||
void menu_temp_e3_filament_change() { _menu_temp_filament_op(PAUSE_MODE_PAUSE_PRINT, 3); }
|
||||
void menu_temp_e3_filament_load() { _menu_temp_filament_op(PAUSE_MODE_LOAD_FILAMENT, 3); }
|
||||
void menu_temp_e3_filament_unload() { _menu_temp_filament_op(PAUSE_MODE_UNLOAD_FILAMENT, 3); }
|
||||
#if E_STEPPERS > 4
|
||||
void menu_temp_e4_filament_change() { _menu_temp_filament_op(PAUSE_MODE_PAUSE_PRINT, 4); }
|
||||
void menu_temp_e4_filament_load() { _menu_temp_filament_op(PAUSE_MODE_LOAD_FILAMENT, 4); }
|
||||
void menu_temp_e4_filament_unload() { _menu_temp_filament_op(PAUSE_MODE_UNLOAD_FILAMENT, 4); }
|
||||
#endif // E_STEPPERS > 4
|
||||
#endif // E_STEPPERS > 3
|
||||
#endif // E_STEPPERS > 2
|
||||
#endif // E_STEPPERS > 1
|
||||
#endif // E_STEPPERS
|
||||
|
||||
/**
|
||||
*
|
||||
@ -147,46 +102,49 @@ void _menu_temp_filament_op(const PauseMode inMode, const int8_t extruder) {
|
||||
START_MENU();
|
||||
BACK_ITEM(MSG_MAIN);
|
||||
|
||||
// Say "filament change" when no print is active
|
||||
editable.int8 = printingIsPaused() ? PAUSE_MODE_PAUSE_PRINT : PAUSE_MODE_CHANGE_FILAMENT;
|
||||
|
||||
// Change filament
|
||||
#if E_STEPPERS == 1
|
||||
PGM_P msg0 = PSTR(MSG_FILAMENTCHANGE);
|
||||
PGM_P const msg0 = PSTR(MSG_FILAMENTCHANGE);
|
||||
if (thermalManager.targetTooColdToExtrude(active_extruder))
|
||||
MENU_ITEM_P(submenu, msg0, menu_temp_e0_filament_change);
|
||||
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 msg0 = PSTR(MSG_FILAMENTCHANGE " " MSG_E1);
|
||||
PGM_P msg1 = PSTR(MSG_FILAMENTCHANGE " " MSG_E2);
|
||||
PGM_P const msg0 = PSTR(MSG_FILAMENTCHANGE " " LCD_STR_E0);
|
||||
PGM_P const msg1 = PSTR(MSG_FILAMENTCHANGE " " LCD_STR_E1);
|
||||
if (thermalManager.targetTooColdToExtrude(0))
|
||||
MENU_ITEM_P(submenu, msg0, menu_temp_e0_filament_change);
|
||||
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_e1_filament_change);
|
||||
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 msg2 = PSTR(MSG_FILAMENTCHANGE " " MSG_E3);
|
||||
PGM_P const msg2 = PSTR(MSG_FILAMENTCHANGE " " LCD_STR_E2);
|
||||
if (thermalManager.targetTooColdToExtrude(2))
|
||||
MENU_ITEM_P(submenu, msg2, menu_temp_e2_filament_change);
|
||||
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 msg3 = PSTR(MSG_FILAMENTCHANGE " " MSG_E4);
|
||||
PGM_P const msg3 = PSTR(MSG_FILAMENTCHANGE " " LCD_STR_E3);
|
||||
if (thermalManager.targetTooColdToExtrude(3))
|
||||
MENU_ITEM_P(submenu, msg3, menu_temp_e3_filament_change);
|
||||
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 msg4 = PSTR(MSG_FILAMENTCHANGE " " MSG_E5);
|
||||
PGM_P const msg4 = PSTR(MSG_FILAMENTCHANGE " " LCD_STR_E4);
|
||||
if (thermalManager.targetTooColdToExtrude(4))
|
||||
MENU_ITEM_P(submenu, msg4, menu_temp_e4_filament_change);
|
||||
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 msg5 = PSTR(MSG_FILAMENTCHANGE " " MSG_E6);
|
||||
PGM_P const msg5 = PSTR(MSG_FILAMENTCHANGE " " LCD_STR_E5);
|
||||
if (thermalManager.targetTooColdToExtrude(5))
|
||||
MENU_ITEM_P(submenu, msg5, menu_temp_e5_filament_change);
|
||||
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
|
||||
@ -199,44 +157,44 @@ void _menu_temp_filament_op(const PauseMode inMode, const int8_t extruder) {
|
||||
if (!printer_busy()) {
|
||||
// Load filament
|
||||
#if E_STEPPERS == 1
|
||||
PGM_P msg0 = PSTR(MSG_FILAMENTLOAD);
|
||||
PGM_P const msg0 = PSTR(MSG_FILAMENTLOAD);
|
||||
if (thermalManager.targetTooColdToExtrude(active_extruder))
|
||||
MENU_ITEM_P(submenu, msg0, menu_temp_e0_filament_load);
|
||||
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 msg0 = PSTR(MSG_FILAMENTLOAD " " MSG_E1);
|
||||
PGM_P msg1 = PSTR(MSG_FILAMENTLOAD " " MSG_E2);
|
||||
PGM_P const msg0 = PSTR(MSG_FILAMENTLOAD " " LCD_STR_E0);
|
||||
PGM_P const msg1 = PSTR(MSG_FILAMENTLOAD " " LCD_STR_E1);
|
||||
if (thermalManager.targetTooColdToExtrude(0))
|
||||
MENU_ITEM_P(submenu, msg0, menu_temp_e0_filament_load);
|
||||
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_e1_filament_load);
|
||||
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 msg2 = PSTR(MSG_FILAMENTLOAD " " MSG_E3);
|
||||
PGM_P const msg2 = PSTR(MSG_FILAMENTLOAD " " LCD_STR_E2);
|
||||
if (thermalManager.targetTooColdToExtrude(2))
|
||||
MENU_ITEM_P(submenu, msg2, menu_temp_e2_filament_load);
|
||||
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 msg3 = PSTR(MSG_FILAMENTLOAD " " MSG_E4);
|
||||
PGM_P const msg3 = PSTR(MSG_FILAMENTLOAD " " LCD_STR_E3);
|
||||
if (thermalManager.targetTooColdToExtrude(3))
|
||||
MENU_ITEM_P(submenu, msg3, menu_temp_e3_filament_load);
|
||||
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 msg4 = PSTR(MSG_FILAMENTLOAD " " MSG_E5);
|
||||
PGM_P const msg4 = PSTR(MSG_FILAMENTLOAD " " LCD_STR_E4);
|
||||
if (thermalManager.targetTooColdToExtrude(4))
|
||||
MENU_ITEM_P(submenu, msg4, menu_temp_e4_filament_load);
|
||||
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 msg5 = PSTR(MSG_FILAMENTLOAD " " MSG_E6);
|
||||
PGM_P const msg5 = PSTR(MSG_FILAMENTLOAD " " LCD_STR_E5);
|
||||
if (thermalManager.targetTooColdToExtrude(5))
|
||||
MENU_ITEM_P(submenu, msg5, menu_temp_e5_filament_load);
|
||||
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
|
||||
@ -250,7 +208,7 @@ void _menu_temp_filament_op(const PauseMode inMode, const int8_t extruder) {
|
||||
if (thermalManager.targetHotEnoughToExtrude(active_extruder))
|
||||
GCODES_ITEM(MSG_FILAMENTUNLOAD, PSTR("M702"));
|
||||
else
|
||||
SUBMENU(MSG_FILAMENTUNLOAD, menu_temp_e0_filament_unload);
|
||||
SUBMENU(MSG_FILAMENTUNLOAD, [](){ _menu_temp_filament_op(PAUSE_MODE_UNLOAD_FILAMENT, 0); });
|
||||
#else
|
||||
#if ENABLED(FILAMENT_UNLOAD_ALL_EXTRUDERS)
|
||||
if (JOIN_N(E_STEPPERS, &&,
|
||||
@ -262,36 +220,36 @@ void _menu_temp_filament_op(const PauseMode inMode, const int8_t extruder) {
|
||||
thermalManager.targetHotEnoughToExtrude(5))
|
||||
) GCODES_ITEM(MSG_FILAMENTUNLOAD_ALL, PSTR("M702"));
|
||||
else
|
||||
SUBMENU(MSG_FILAMENTUNLOAD_ALL, menu_unload_filament_all_temp);
|
||||
SUBMENU(MSG_FILAMENTUNLOAD_ALL, [](){ _menu_temp_filament_op(PAUSE_MODE_UNLOAD_FILAMENT, -1); });
|
||||
#endif
|
||||
if (thermalManager.targetHotEnoughToExtrude(0))
|
||||
GCODES_ITEM(MSG_FILAMENTUNLOAD " " MSG_E1, PSTR("M702 T0"));
|
||||
GCODES_ITEM(MSG_FILAMENTUNLOAD " " LCD_STR_E0, PSTR("M702 T0"));
|
||||
else
|
||||
SUBMENU(MSG_FILAMENTUNLOAD " " MSG_E1, menu_temp_e0_filament_unload);
|
||||
SUBMENU(MSG_FILAMENTUNLOAD " " LCD_STR_E0, [](){ _menu_temp_filament_op(PAUSE_MODE_UNLOAD_FILAMENT, 0); });
|
||||
if (thermalManager.targetHotEnoughToExtrude(1))
|
||||
GCODES_ITEM(MSG_FILAMENTUNLOAD " " MSG_E2, PSTR("M702 T1"));
|
||||
GCODES_ITEM(MSG_FILAMENTUNLOAD " " LCD_STR_E1, PSTR("M702 T1"));
|
||||
else
|
||||
SUBMENU(MSG_FILAMENTUNLOAD " " MSG_E2, menu_temp_e1_filament_unload);
|
||||
SUBMENU(MSG_FILAMENTUNLOAD " " LCD_STR_E1, [](){ _menu_temp_filament_op(PAUSE_MODE_UNLOAD_FILAMENT, 1); });
|
||||
#if E_STEPPERS > 2
|
||||
if (thermalManager.targetHotEnoughToExtrude(2))
|
||||
GCODES_ITEM(MSG_FILAMENTUNLOAD " " MSG_E3, PSTR("M702 T2"));
|
||||
GCODES_ITEM(MSG_FILAMENTUNLOAD " " LCD_STR_E2, PSTR("M702 T2"));
|
||||
else
|
||||
SUBMENU(MSG_FILAMENTUNLOAD " " MSG_E3, menu_temp_e2_filament_unload);
|
||||
SUBMENU(MSG_FILAMENTUNLOAD " " LCD_STR_E2, [](){ _menu_temp_filament_op(PAUSE_MODE_UNLOAD_FILAMENT, 2); });
|
||||
#if E_STEPPERS > 3
|
||||
if (thermalManager.targetHotEnoughToExtrude(3))
|
||||
GCODES_ITEM(MSG_FILAMENTUNLOAD " " MSG_E4, PSTR("M702 T3"));
|
||||
GCODES_ITEM(MSG_FILAMENTUNLOAD " " LCD_STR_E3, PSTR("M702 T3"));
|
||||
else
|
||||
SUBMENU(MSG_FILAMENTUNLOAD " " MSG_E4, menu_temp_e3_filament_unload);
|
||||
SUBMENU(MSG_FILAMENTUNLOAD " " LCD_STR_E3, [](){ _menu_temp_filament_op(PAUSE_MODE_UNLOAD_FILAMENT, 3); });
|
||||
#if E_STEPPERS > 4
|
||||
if (thermalManager.targetHotEnoughToExtrude(4))
|
||||
GCODES_ITEM(MSG_FILAMENTUNLOAD " " MSG_E5, PSTR("M702 T4"));
|
||||
GCODES_ITEM(MSG_FILAMENTUNLOAD " " LCD_STR_E4, PSTR("M702 T4"));
|
||||
else
|
||||
SUBMENU(MSG_FILAMENTUNLOAD " " MSG_E5, menu_temp_e4_filament_unload);
|
||||
SUBMENU(MSG_FILAMENTUNLOAD " " LCD_STR_E4, [](){ _menu_temp_filament_op(PAUSE_MODE_UNLOAD_FILAMENT, 4); });
|
||||
#if E_STEPPERS > 5
|
||||
if (thermalManager.targetHotEnoughToExtrude(5))
|
||||
GCODES_ITEM(MSG_FILAMENTUNLOAD " " MSG_E6, PSTR("M702 T5"));
|
||||
GCODES_ITEM(MSG_FILAMENTUNLOAD " " LCD_STR_E5, PSTR("M702 T5"));
|
||||
else
|
||||
SUBMENU(MSG_FILAMENTUNLOAD " " MSG_E6, menu_temp_e5_filament_unload);
|
||||
SUBMENU(MSG_FILAMENTUNLOAD " " LCD_STR_E5, [](){ _menu_temp_filament_op(PAUSE_MODE_UNLOAD_FILAMENT, 5); });
|
||||
#endif // E_STEPPERS > 5
|
||||
#endif // E_STEPPERS > 4
|
||||
#endif // E_STEPPERS > 3
|
||||
@ -336,26 +294,18 @@ static PGM_P pause_header() {
|
||||
++_thisItemNr; \
|
||||
}while(0)
|
||||
|
||||
void lcd_pause_resume_print() {
|
||||
pause_menu_response = PAUSE_RESPONSE_RESUME_PRINT;
|
||||
}
|
||||
|
||||
void lcd_pause_extrude_more() {
|
||||
pause_menu_response = PAUSE_RESPONSE_EXTRUDE_MORE;
|
||||
}
|
||||
|
||||
void menu_pause_option() {
|
||||
START_MENU();
|
||||
#if LCD_HEIGHT > 2
|
||||
STATIC_ITEM(MSG_FILAMENT_CHANGE_OPTION_HEADER);
|
||||
#endif
|
||||
ACTION_ITEM(MSG_FILAMENT_CHANGE_OPTION_PURGE, lcd_pause_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, lcd_pause_resume_print);
|
||||
ACTION_ITEM(MSG_FILAMENT_CHANGE_OPTION_RESUME, [](){ pause_menu_response = PAUSE_RESPONSE_RESUME_PRINT; });
|
||||
END_MENU();
|
||||
}
|
||||
|
||||
|
@ -62,7 +62,7 @@ void menu_configuration();
|
||||
#endif
|
||||
|
||||
#if ENABLED(ADVANCED_PAUSE_FEATURE)
|
||||
void menu_temp_e0_filament_change();
|
||||
void _menu_temp_filament_op(const PauseMode, const int8_t);
|
||||
void menu_change_filament();
|
||||
#endif
|
||||
|
||||
@ -170,6 +170,10 @@ void menu_main() {
|
||||
SUBMENU(MSG_CONFIGURATION, menu_configuration);
|
||||
|
||||
#if ENABLED(CUSTOM_USER_MENUS)
|
||||
#ifdef CUSTOM_USER_MENU_TITLE
|
||||
#undef MSG_USER_MENU
|
||||
#define MSG_USER_MENU CUSTOM_USER_MENU_TITLE
|
||||
#endif
|
||||
SUBMENU(MSG_USER_MENU, menu_user);
|
||||
#endif
|
||||
|
||||
@ -178,7 +182,7 @@ void menu_main() {
|
||||
if (thermalManager.targetHotEnoughToExtrude(active_extruder))
|
||||
GCODES_ITEM(MSG_FILAMENTCHANGE, PSTR("M600 B0"));
|
||||
else
|
||||
SUBMENU(MSG_FILAMENTCHANGE, menu_temp_e0_filament_change);
|
||||
SUBMENU(MSG_FILAMENTCHANGE, [](){ _menu_temp_filament_op(PAUSE_MODE_LOAD_FILAMENT, 0); });
|
||||
#else
|
||||
SUBMENU(MSG_FILAMENTCHANGE, menu_change_filament);
|
||||
#endif
|
||||
|
@ -31,13 +31,6 @@
|
||||
#include "menu.h"
|
||||
#include "../../sd/cardreader.h"
|
||||
|
||||
#if !PIN_EXISTS(SD_DETECT)
|
||||
void lcd_sd_refresh() {
|
||||
encoderTopLine = 0;
|
||||
card.mount();
|
||||
}
|
||||
#endif
|
||||
|
||||
void lcd_sd_updir() {
|
||||
ui.encoderPosition = card.cdup() ? ENCODER_STEPS_PER_MENU_ITEM : 0;
|
||||
encoderTopLine = 0;
|
||||
@ -141,7 +134,7 @@ void menu_media() {
|
||||
BACK_ITEM(MSG_MAIN);
|
||||
if (card.flag.workDirIsRoot) {
|
||||
#if !PIN_EXISTS(SD_DETECT)
|
||||
ACTION_ITEM(LCD_STR_REFRESH MSG_REFRESH, lcd_sd_refresh);
|
||||
ACTION_ITEM(LCD_STR_REFRESH MSG_REFRESH, [](){ encoderTopLine = 0; card.mount(); });
|
||||
#endif
|
||||
}
|
||||
else if (card.isMounted())
|
||||
|
@ -42,15 +42,10 @@ void _mmu2_load_filamentToNozzle(uint8_t index) {
|
||||
if (mmu2.load_filament_to_nozzle(index)) ui.reset_status();
|
||||
}
|
||||
|
||||
inline void action_mmu2_load_filament_to_nozzl_e(const uint8_t tool) {
|
||||
inline void action_mmu2_load_filament_to_nozzle(const uint8_t tool) {
|
||||
_mmu2_load_filamentToNozzle(tool);
|
||||
ui.return_to_status();
|
||||
}
|
||||
inline void action_mmu2_load_filament_to_nozzle_0() { action_mmu2_load_filament_to_nozzl_e(0); }
|
||||
inline void action_mmu2_load_filament_to_nozzle_1() { action_mmu2_load_filament_to_nozzl_e(1); }
|
||||
inline void action_mmu2_load_filament_to_nozzle_2() { action_mmu2_load_filament_to_nozzl_e(2); }
|
||||
inline void action_mmu2_load_filament_to_nozzle_3() { action_mmu2_load_filament_to_nozzl_e(3); }
|
||||
inline void action_mmu2_load_filament_to_nozzle_4() { action_mmu2_load_filament_to_nozzl_e(4); }
|
||||
|
||||
void _mmu2_load_filament(uint8_t index) {
|
||||
ui.return_to_status();
|
||||
@ -63,32 +58,27 @@ void action_mmu2_load_all() {
|
||||
_mmu2_load_filament(i);
|
||||
ui.return_to_status();
|
||||
}
|
||||
inline void action_mmu2_load_filament_0() { _mmu2_load_filament(0); }
|
||||
inline void action_mmu2_load_filament_1() { _mmu2_load_filament(1); }
|
||||
inline void action_mmu2_load_filament_2() { _mmu2_load_filament(2); }
|
||||
inline void action_mmu2_load_filament_3() { _mmu2_load_filament(3); }
|
||||
inline void action_mmu2_load_filament_4() { _mmu2_load_filament(4); }
|
||||
|
||||
void menu_mmu2_load_filament() {
|
||||
START_MENU();
|
||||
BACK_ITEM(MSG_MMU2_MENU);
|
||||
ACTION_ITEM(MSG_MMU2_ALL, action_mmu2_load_all);
|
||||
ACTION_ITEM(MSG_MMU2_FILAMENT0, action_mmu2_load_filament_0);
|
||||
ACTION_ITEM(MSG_MMU2_FILAMENT1, action_mmu2_load_filament_1);
|
||||
ACTION_ITEM(MSG_MMU2_FILAMENT2, action_mmu2_load_filament_2);
|
||||
ACTION_ITEM(MSG_MMU2_FILAMENT3, action_mmu2_load_filament_3);
|
||||
ACTION_ITEM(MSG_MMU2_FILAMENT4, action_mmu2_load_filament_4);
|
||||
ACTION_ITEM(MSG_MMU2_FILAMENT0, [](){ _mmu2_load_filament(0); });
|
||||
ACTION_ITEM(MSG_MMU2_FILAMENT1, [](){ _mmu2_load_filament(1); });
|
||||
ACTION_ITEM(MSG_MMU2_FILAMENT2, [](){ _mmu2_load_filament(2); });
|
||||
ACTION_ITEM(MSG_MMU2_FILAMENT3, [](){ _mmu2_load_filament(3); });
|
||||
ACTION_ITEM(MSG_MMU2_FILAMENT4, [](){ _mmu2_load_filament(4); });
|
||||
END_MENU();
|
||||
}
|
||||
|
||||
void menu_mmu2_load_to_nozzle() {
|
||||
START_MENU();
|
||||
BACK_ITEM(MSG_MMU2_MENU);
|
||||
ACTION_ITEM(MSG_MMU2_FILAMENT0, action_mmu2_load_filament_to_nozzle_0);
|
||||
ACTION_ITEM(MSG_MMU2_FILAMENT1, action_mmu2_load_filament_to_nozzle_1);
|
||||
ACTION_ITEM(MSG_MMU2_FILAMENT2, action_mmu2_load_filament_to_nozzle_2);
|
||||
ACTION_ITEM(MSG_MMU2_FILAMENT3, action_mmu2_load_filament_to_nozzle_3);
|
||||
ACTION_ITEM(MSG_MMU2_FILAMENT4, action_mmu2_load_filament_to_nozzle_4);
|
||||
ACTION_ITEM(MSG_MMU2_FILAMENT0, [](){ action_mmu2_load_filament_to_nozzle(0); });
|
||||
ACTION_ITEM(MSG_MMU2_FILAMENT1, [](){ action_mmu2_load_filament_to_nozzle(1); });
|
||||
ACTION_ITEM(MSG_MMU2_FILAMENT2, [](){ action_mmu2_load_filament_to_nozzle(2); });
|
||||
ACTION_ITEM(MSG_MMU2_FILAMENT3, [](){ action_mmu2_load_filament_to_nozzle(3); });
|
||||
ACTION_ITEM(MSG_MMU2_FILAMENT4, [](){ action_mmu2_load_filament_to_nozzle(4); });
|
||||
END_MENU();
|
||||
}
|
||||
|
||||
@ -102,11 +92,6 @@ void _mmu2_eject_filament(uint8_t index) {
|
||||
ui.status_printf_P(0, PSTR(MSG_MMU2_EJECTING_FILAMENT), int(index + 1));
|
||||
if (mmu2.eject_filament(index, true)) ui.reset_status();
|
||||
}
|
||||
inline void action_mmu2_eject_filament_0() { _mmu2_eject_filament(0); }
|
||||
inline void action_mmu2_eject_filament_1() { _mmu2_eject_filament(1); }
|
||||
inline void action_mmu2_eject_filament_2() { _mmu2_eject_filament(2); }
|
||||
inline void action_mmu2_eject_filament_3() { _mmu2_eject_filament(3); }
|
||||
inline void action_mmu2_eject_filament_4() { _mmu2_eject_filament(4); }
|
||||
|
||||
void action_mmu2_unload_filament() {
|
||||
ui.reset_status();
|
||||
@ -119,11 +104,11 @@ void action_mmu2_unload_filament() {
|
||||
void menu_mmu2_eject_filament() {
|
||||
START_MENU();
|
||||
BACK_ITEM(MSG_MMU2_MENU);
|
||||
ACTION_ITEM(MSG_MMU2_FILAMENT0, action_mmu2_eject_filament_0);
|
||||
ACTION_ITEM(MSG_MMU2_FILAMENT1, action_mmu2_eject_filament_1);
|
||||
ACTION_ITEM(MSG_MMU2_FILAMENT2, action_mmu2_eject_filament_2);
|
||||
ACTION_ITEM(MSG_MMU2_FILAMENT3, action_mmu2_eject_filament_3);
|
||||
ACTION_ITEM(MSG_MMU2_FILAMENT4, action_mmu2_eject_filament_4);
|
||||
ACTION_ITEM(MSG_MMU2_FILAMENT0, [](){ _mmu2_eject_filament(0); });
|
||||
ACTION_ITEM(MSG_MMU2_FILAMENT1, [](){ _mmu2_eject_filament(1); });
|
||||
ACTION_ITEM(MSG_MMU2_FILAMENT2, [](){ _mmu2_eject_filament(2); });
|
||||
ACTION_ITEM(MSG_MMU2_FILAMENT3, [](){ _mmu2_eject_filament(3); });
|
||||
ACTION_ITEM(MSG_MMU2_FILAMENT4, [](){ _mmu2_eject_filament(4); });
|
||||
END_MENU();
|
||||
}
|
||||
|
||||
@ -155,22 +140,17 @@ inline void action_mmu2_choose(const uint8_t tool) {
|
||||
currentTool = tool;
|
||||
mmuMenuWait = false;
|
||||
}
|
||||
inline void action_mmu2_choose0() { action_mmu2_choose(0); }
|
||||
inline void action_mmu2_choose1() { action_mmu2_choose(1); }
|
||||
inline void action_mmu2_choose2() { action_mmu2_choose(2); }
|
||||
inline void action_mmu2_choose3() { action_mmu2_choose(3); }
|
||||
inline void action_mmu2_choose4() { action_mmu2_choose(4); }
|
||||
|
||||
void menu_mmu2_choose_filament() {
|
||||
START_MENU();
|
||||
#if LCD_HEIGHT > 2
|
||||
STATIC_ITEM(MSG_MMU2_CHOOSE_FILAMENT_HEADER, SS_CENTER|SS_INVERT);
|
||||
#endif
|
||||
ACTION_ITEM(MSG_MMU2_FILAMENT0, action_mmu2_choose0);
|
||||
ACTION_ITEM(MSG_MMU2_FILAMENT1, action_mmu2_choose1);
|
||||
ACTION_ITEM(MSG_MMU2_FILAMENT2, action_mmu2_choose2);
|
||||
ACTION_ITEM(MSG_MMU2_FILAMENT3, action_mmu2_choose3);
|
||||
ACTION_ITEM(MSG_MMU2_FILAMENT4, action_mmu2_choose4);
|
||||
ACTION_ITEM(MSG_MMU2_FILAMENT0, [](){ action_mmu2_choose(0); });
|
||||
ACTION_ITEM(MSG_MMU2_FILAMENT1, [](){ action_mmu2_choose(1); });
|
||||
ACTION_ITEM(MSG_MMU2_FILAMENT2, [](){ action_mmu2_choose(2); });
|
||||
ACTION_ITEM(MSG_MMU2_FILAMENT3, [](){ action_mmu2_choose(3); });
|
||||
ACTION_ITEM(MSG_MMU2_FILAMENT4, [](){ action_mmu2_choose(4); });
|
||||
END_MENU();
|
||||
}
|
||||
|
||||
@ -178,21 +158,16 @@ void menu_mmu2_choose_filament() {
|
||||
// MMU2 Filament Runout
|
||||
//
|
||||
|
||||
inline void action_mmu2_M600_load_current_filament() { mmu2.load_filament(currentTool); }
|
||||
inline void action_mmu2_M600_load_current_filament_to_nozzle() { mmu2.load_filament_to_nozzle(currentTool); }
|
||||
inline void action_mmu2_M600_unload_filament() { mmu2.unload(); }
|
||||
inline void action_mmu2_M600_resume() { mmuMenuWait = false; }
|
||||
|
||||
void menu_mmu2_pause() {
|
||||
currentTool = mmu2.get_current_tool();
|
||||
START_MENU();
|
||||
#if LCD_HEIGHT > 2
|
||||
STATIC_ITEM(MSG_MMU2_FILAMENT_CHANGE_HEADER, SS_CENTER|SS_INVERT);
|
||||
#endif
|
||||
ACTION_ITEM(MSG_MMU2_RESUME, action_mmu2_M600_resume);
|
||||
ACTION_ITEM(MSG_MMU2_UNLOAD_FILAMENT, action_mmu2_M600_unload_filament);
|
||||
ACTION_ITEM(MSG_MMU2_LOAD_FILAMENT, action_mmu2_M600_load_current_filament);
|
||||
ACTION_ITEM(MSG_MMU2_LOAD_TO_NOZZLE, action_mmu2_M600_load_current_filament_to_nozzle);
|
||||
ACTION_ITEM(MSG_MMU2_RESUME, [](){ mmuMenuWait = false; });
|
||||
ACTION_ITEM(MSG_MMU2_UNLOAD_FILAMENT, [](){ mmu2.unload(); });
|
||||
ACTION_ITEM(MSG_MMU2_LOAD_FILAMENT, [](){ mmu2.load_filament(currentTool); });
|
||||
ACTION_ITEM(MSG_MMU2_LOAD_TO_NOZZLE, [](){ mmu2.load_filament_to_nozzle(currentTool); });
|
||||
END_MENU();
|
||||
}
|
||||
|
||||
|
@ -161,7 +161,7 @@ void lcd_move_z() { _lcd_move_xyz(PSTR(MSG_MOVE_Z), Z_AXIS); }
|
||||
|
||||
#if E_MANUAL
|
||||
|
||||
static void _lcd_move_e(
|
||||
static void lcd_move_e(
|
||||
#if E_MANUAL > 1
|
||||
const int8_t eindex=-1
|
||||
#endif
|
||||
@ -190,16 +190,16 @@ void lcd_move_z() { _lcd_move_xyz(PSTR(MSG_MOVE_Z), Z_AXIS); }
|
||||
pos_label = PSTR(MSG_MOVE_E);
|
||||
#else
|
||||
switch (eindex) {
|
||||
default: pos_label = PSTR(MSG_MOVE_E MSG_MOVE_E1); break;
|
||||
case 1: pos_label = PSTR(MSG_MOVE_E MSG_MOVE_E2); break;
|
||||
default: pos_label = PSTR(MSG_MOVE_E LCD_STR_N0); break;
|
||||
case 1: pos_label = PSTR(MSG_MOVE_E LCD_STR_N1); break;
|
||||
#if E_MANUAL > 2
|
||||
case 2: pos_label = PSTR(MSG_MOVE_E MSG_MOVE_E3); break;
|
||||
case 2: pos_label = PSTR(MSG_MOVE_E LCD_STR_N2); break;
|
||||
#if E_MANUAL > 3
|
||||
case 3: pos_label = PSTR(MSG_MOVE_E MSG_MOVE_E4); break;
|
||||
case 3: pos_label = PSTR(MSG_MOVE_E LCD_STR_N3); break;
|
||||
#if E_MANUAL > 4
|
||||
case 4: pos_label = PSTR(MSG_MOVE_E MSG_MOVE_E5); break;
|
||||
case 4: pos_label = PSTR(MSG_MOVE_E LCD_STR_N4); break;
|
||||
#if E_MANUAL > 5
|
||||
case 5: pos_label = PSTR(MSG_MOVE_E MSG_MOVE_E6); break;
|
||||
case 5: pos_label = PSTR(MSG_MOVE_E LCD_STR_N5); break;
|
||||
#endif // E_MANUAL > 5
|
||||
#endif // E_MANUAL > 4
|
||||
#endif // E_MANUAL > 3
|
||||
@ -218,24 +218,6 @@ void lcd_move_z() { _lcd_move_xyz(PSTR(MSG_MOVE_Z), Z_AXIS); }
|
||||
}
|
||||
}
|
||||
|
||||
inline void lcd_move_e() { _lcd_move_e(); }
|
||||
#if E_MANUAL > 1
|
||||
inline void lcd_move_e0() { _lcd_move_e(0); }
|
||||
inline void lcd_move_e1() { _lcd_move_e(1); }
|
||||
#if E_MANUAL > 2
|
||||
inline void lcd_move_e2() { _lcd_move_e(2); }
|
||||
#if E_MANUAL > 3
|
||||
inline void lcd_move_e3() { _lcd_move_e(3); }
|
||||
#if E_MANUAL > 4
|
||||
inline void lcd_move_e4() { _lcd_move_e(4); }
|
||||
#if E_MANUAL > 5
|
||||
inline void lcd_move_e5() { _lcd_move_e(5); }
|
||||
#endif // E_MANUAL > 5
|
||||
#endif // E_MANUAL > 4
|
||||
#endif // E_MANUAL > 3
|
||||
#endif // E_MANUAL > 2
|
||||
#endif // E_MANUAL > 1
|
||||
|
||||
#endif // E_MANUAL
|
||||
|
||||
//
|
||||
@ -253,9 +235,6 @@ void _goto_manual_move(const float scale) {
|
||||
move_menu_scale = scale;
|
||||
ui.goto_screen(_manual_move_func_ptr);
|
||||
}
|
||||
void menu_move_10mm() { _goto_manual_move(10); }
|
||||
void menu_move_1mm() { _goto_manual_move( 1); }
|
||||
void menu_move_01mm() { _goto_manual_move( 0.1f); }
|
||||
|
||||
void _menu_move_distance(const AxisEnum axis, const screenFunc_t func, const int8_t eindex=-1) {
|
||||
_manual_move_func_ptr = func;
|
||||
@ -280,9 +259,9 @@ void _menu_move_distance(const AxisEnum axis, const screenFunc_t func, const int
|
||||
#endif
|
||||
{
|
||||
BACK_ITEM(MSG_MOVE_AXIS);
|
||||
SUBMENU(MSG_MOVE_10MM, menu_move_10mm);
|
||||
SUBMENU(MSG_MOVE_1MM, menu_move_1mm);
|
||||
SUBMENU(MSG_MOVE_01MM, menu_move_01mm);
|
||||
SUBMENU(MSG_MOVE_10MM, [](){ _goto_manual_move(10); });
|
||||
SUBMENU(MSG_MOVE_1MM, [](){ _goto_manual_move( 1); });
|
||||
SUBMENU(MSG_MOVE_01MM, [](){ _goto_manual_move( 0.1f); });
|
||||
if (axis == Z_AXIS && (SHORT_MANUAL_Z_MOVE) > 0.0f && (SHORT_MANUAL_Z_MOVE) < 0.1f) {
|
||||
SUBMENU("", []{ _goto_manual_move(float(SHORT_MANUAL_Z_MOVE)); });
|
||||
MENU_ITEM_ADDON_START(1);
|
||||
@ -297,36 +276,6 @@ void _menu_move_distance(const AxisEnum axis, const screenFunc_t func, const int
|
||||
}
|
||||
END_MENU();
|
||||
}
|
||||
void lcd_move_get_x_amount() { _menu_move_distance(X_AXIS, lcd_move_x); }
|
||||
void lcd_move_get_y_amount() { _menu_move_distance(Y_AXIS, lcd_move_y); }
|
||||
void lcd_move_get_z_amount() { _menu_move_distance(Z_AXIS, lcd_move_z); }
|
||||
|
||||
#if E_MANUAL
|
||||
void lcd_move_get_e_amount() { _menu_move_distance(E_AXIS, lcd_move_e, -1); }
|
||||
#if E_MANUAL > 1
|
||||
void lcd_move_get_e0_amount() { _menu_move_distance(E_AXIS, lcd_move_e0, 0); }
|
||||
void lcd_move_get_e1_amount() { _menu_move_distance(E_AXIS, lcd_move_e1, 1); }
|
||||
#if E_MANUAL > 2
|
||||
void lcd_move_get_e2_amount() { _menu_move_distance(E_AXIS, lcd_move_e2, 2); }
|
||||
#if E_MANUAL > 3
|
||||
void lcd_move_get_e3_amount() { _menu_move_distance(E_AXIS, lcd_move_e3, 3); }
|
||||
#if E_MANUAL > 4
|
||||
void lcd_move_get_e4_amount() { _menu_move_distance(E_AXIS, lcd_move_e4, 4); }
|
||||
#if E_MANUAL > 5
|
||||
void lcd_move_get_e5_amount() { _menu_move_distance(E_AXIS, lcd_move_e5, 5); }
|
||||
#endif // E_MANUAL > 5
|
||||
#endif // E_MANUAL > 4
|
||||
#endif // E_MANUAL > 3
|
||||
#endif // E_MANUAL > 2
|
||||
#endif // E_MANUAL > 1
|
||||
#endif // E_MANUAL
|
||||
|
||||
#if ENABLED(DELTA)
|
||||
void lcd_lower_z_to_clip_height() {
|
||||
line_to_z(delta_clip_start_height);
|
||||
ui.synchronize();
|
||||
}
|
||||
#endif
|
||||
|
||||
void menu_move() {
|
||||
START_MENU();
|
||||
@ -350,88 +299,85 @@ void menu_move() {
|
||||
true
|
||||
#endif
|
||||
) {
|
||||
SUBMENU(MSG_MOVE_X, lcd_move_get_x_amount);
|
||||
SUBMENU(MSG_MOVE_Y, lcd_move_get_y_amount);
|
||||
SUBMENU(MSG_MOVE_X, [](){ _menu_move_distance(X_AXIS, lcd_move_x); });
|
||||
SUBMENU(MSG_MOVE_Y, [](){ _menu_move_distance(Y_AXIS, lcd_move_y); });
|
||||
}
|
||||
#if ENABLED(DELTA)
|
||||
else
|
||||
ACTION_ITEM(MSG_FREE_XY, lcd_lower_z_to_clip_height);
|
||||
ACTION_ITEM(MSG_FREE_XY, [](){ line_to_z(delta_clip_start_height); ui.synchronize(); });
|
||||
#endif
|
||||
|
||||
SUBMENU(MSG_MOVE_Z, lcd_move_get_z_amount);
|
||||
SUBMENU(MSG_MOVE_Z, [](){ _menu_move_distance(Y_AXIS, lcd_move_y); });
|
||||
}
|
||||
else
|
||||
GCODES_ITEM(MSG_AUTO_HOME, PSTR("G28"));
|
||||
|
||||
#if ANY(SWITCHING_EXTRUDER, SWITCHING_NOZZLE, MAGNETIC_SWITCHING_TOOLHEAD)
|
||||
|
||||
#if EXTRUDERS == 6
|
||||
#if EXTRUDERS >= 4
|
||||
switch (active_extruder) {
|
||||
case 0: GCODES_ITEM(MSG_SELECT " " MSG_E2, PSTR("T1")); break;
|
||||
case 1: GCODES_ITEM(MSG_SELECT " " MSG_E1, PSTR("T0")); break;
|
||||
case 2: GCODES_ITEM(MSG_SELECT " " MSG_E4, PSTR("T3")); break;
|
||||
case 3: GCODES_ITEM(MSG_SELECT " " MSG_E3, PSTR("T2")); break;
|
||||
case 4: GCODES_ITEM(MSG_SELECT " " MSG_E6, PSTR("T5")); break;
|
||||
case 5: GCODES_ITEM(MSG_SELECT " " MSG_E5, PSTR("T4")); break;
|
||||
}
|
||||
#elif EXTRUDERS == 5 || EXTRUDERS == 4
|
||||
switch (active_extruder) {
|
||||
case 0: GCODES_ITEM(MSG_SELECT " " MSG_E2, PSTR("T1")); break;
|
||||
case 1: GCODES_ITEM(MSG_SELECT " " MSG_E1, PSTR("T0")); break;
|
||||
case 2: GCODES_ITEM(MSG_SELECT " " MSG_E4, PSTR("T3")); break;
|
||||
case 3: GCODES_ITEM(MSG_SELECT " " MSG_E3, PSTR("T2")); break;
|
||||
case 0: GCODES_ITEM(MSG_SELECT " " LCD_STR_E1, PSTR("T1")); break;
|
||||
case 1: GCODES_ITEM(MSG_SELECT " " LCD_STR_E0, PSTR("T0")); break;
|
||||
case 2: GCODES_ITEM(MSG_SELECT " " LCD_STR_E3, PSTR("T3")); break;
|
||||
case 3: GCODES_ITEM(MSG_SELECT " " LCD_STR_E2, PSTR("T2")); break;
|
||||
#if EXTRUDERS == 6
|
||||
case 4: GCODES_ITEM(MSG_SELECT " " LCD_STR_E5, PSTR("T5")); break;
|
||||
case 5: GCODES_ITEM(MSG_SELECT " " LCD_STR_E4, PSTR("T4")); break;
|
||||
#endif
|
||||
}
|
||||
#elif EXTRUDERS == 3
|
||||
if (active_extruder < 2) {
|
||||
if (active_extruder)
|
||||
GCODES_ITEM(MSG_SELECT " " MSG_E1, PSTR("T0"));
|
||||
GCODES_ITEM(MSG_SELECT " " LCD_STR_E0, PSTR("T0"));
|
||||
else
|
||||
GCODES_ITEM(MSG_SELECT " " MSG_E2, PSTR("T1"));
|
||||
GCODES_ITEM(MSG_SELECT " " LCD_STR_E1, PSTR("T1"));
|
||||
}
|
||||
#else
|
||||
if (active_extruder)
|
||||
GCODES_ITEM(MSG_SELECT " " MSG_E1, PSTR("T0"));
|
||||
GCODES_ITEM(MSG_SELECT " " LCD_STR_E0, PSTR("T0"));
|
||||
else
|
||||
GCODES_ITEM(MSG_SELECT " " MSG_E2, PSTR("T1"));
|
||||
GCODES_ITEM(MSG_SELECT " " LCD_STR_E1, PSTR("T1"));
|
||||
#endif
|
||||
|
||||
#elif ENABLED(DUAL_X_CARRIAGE)
|
||||
|
||||
if (active_extruder)
|
||||
GCODES_ITEM(MSG_SELECT " " MSG_E1, PSTR("T0"));
|
||||
GCODES_ITEM(MSG_SELECT " " LCD_STR_E0, PSTR("T0"));
|
||||
else
|
||||
GCODES_ITEM(MSG_SELECT " " MSG_E2, PSTR("T1"));
|
||||
GCODES_ITEM(MSG_SELECT " " LCD_STR_E1, PSTR("T1"));
|
||||
|
||||
#endif
|
||||
|
||||
#if E_MANUAL
|
||||
|
||||
// The current extruder
|
||||
SUBMENU(MSG_MOVE_E, [](){ _menu_move_distance(E_AXIS, [](){ lcd_move_e(); }, -1); });
|
||||
|
||||
#define SUBMENU_MOVE_E(N) SUBMENU(MSG_MOVE_E LCD_STR_N##N, [](){ _menu_move_distance(E_AXIS, [](){ lcd_move_e(N); }, N); });
|
||||
|
||||
#if EITHER(SWITCHING_EXTRUDER, SWITCHING_NOZZLE)
|
||||
|
||||
// Only the current...
|
||||
SUBMENU(MSG_MOVE_E, lcd_move_get_e_amount);
|
||||
// ...and the non-switching
|
||||
#if E_MANUAL == 5
|
||||
SUBMENU(MSG_MOVE_E MSG_MOVE_E5, lcd_move_get_e4_amount);
|
||||
SUBMENU_MOVE_E(4);
|
||||
#elif E_MANUAL == 3
|
||||
SUBMENU(MSG_MOVE_E MSG_MOVE_E3, lcd_move_get_e2_amount);
|
||||
SUBMENU_MOVE_E(2);
|
||||
#endif
|
||||
|
||||
#else
|
||||
|
||||
// Independent extruders with one E-stepper per hotend
|
||||
SUBMENU(MSG_MOVE_E, lcd_move_get_e_amount);
|
||||
#if E_MANUAL > 1
|
||||
SUBMENU(MSG_MOVE_E MSG_MOVE_E1, lcd_move_get_e0_amount);
|
||||
SUBMENU(MSG_MOVE_E MSG_MOVE_E2, lcd_move_get_e1_amount);
|
||||
SUBMENU_MOVE_E(0);
|
||||
SUBMENU_MOVE_E(1);
|
||||
#if E_MANUAL > 2
|
||||
SUBMENU(MSG_MOVE_E MSG_MOVE_E3, lcd_move_get_e2_amount);
|
||||
SUBMENU_MOVE_E(2);
|
||||
#if E_MANUAL > 3
|
||||
SUBMENU(MSG_MOVE_E MSG_MOVE_E4, lcd_move_get_e3_amount);
|
||||
SUBMENU_MOVE_E(3);
|
||||
#if E_MANUAL > 4
|
||||
SUBMENU(MSG_MOVE_E MSG_MOVE_E5, lcd_move_get_e4_amount);
|
||||
SUBMENU_MOVE_E(4);
|
||||
#if E_MANUAL > 5
|
||||
SUBMENU(MSG_MOVE_E MSG_MOVE_E6, lcd_move_get_e5_amount);
|
||||
SUBMENU_MOVE_E(5);
|
||||
#endif // E_MANUAL > 5
|
||||
#endif // E_MANUAL > 4
|
||||
#endif // E_MANUAL > 3
|
||||
@ -501,11 +447,12 @@ void menu_motion() {
|
||||
GCODES_ITEM(MSG_LEVEL_BED, PSTR("G28\nG29"));
|
||||
#endif
|
||||
if (all_axes_homed() && leveling_is_valid()) {
|
||||
bool new_level_state = planner.leveling_active;
|
||||
EDIT_ITEM(bool, MSG_BED_LEVELING, &new_level_state, _lcd_toggle_bed_leveling);
|
||||
bool show_state = planner.leveling_active;
|
||||
EDIT_ITEM(bool, MSG_BED_LEVELING, &show_state, _lcd_toggle_bed_leveling);
|
||||
}
|
||||
#if ENABLED(ENABLE_LEVELING_FADE_HEIGHT)
|
||||
EDIT_ITEM_FAST(float3, MSG_Z_FADE_HEIGHT, &lcd_z_fade_height, 0, 100, _lcd_set_z_fade_height);
|
||||
editable.decimal = planner.z_fade_height;
|
||||
EDIT_ITEM_FAST(float3, MSG_Z_FADE_HEIGHT, &editable.decimal, 0, 100, [](){ set_z_fade_height(editable.decimal); });
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
@ -68,117 +68,33 @@ void _lcd_preheat(const int16_t endnum, const int16_t temph, const int16_t tempb
|
||||
ui.return_to_status();
|
||||
}
|
||||
|
||||
#if HOTENDS > 1
|
||||
|
||||
void lcd_preheat_m1_e1_only() { _lcd_preheat(1, ui.preheat_hotend_temp[0], -1, ui.preheat_fan_speed[0]); }
|
||||
void lcd_preheat_m2_e1_only() { _lcd_preheat(1, ui.preheat_hotend_temp[1], -1, ui.preheat_fan_speed[1]); }
|
||||
#if HAS_HEATED_BED
|
||||
void lcd_preheat_m1_e1() { _lcd_preheat(1, ui.preheat_hotend_temp[0], ui.preheat_bed_temp[0], ui.preheat_fan_speed[0]); }
|
||||
void lcd_preheat_m2_e1() { _lcd_preheat(1, ui.preheat_hotend_temp[1], ui.preheat_bed_temp[1], ui.preheat_fan_speed[1]); }
|
||||
#endif
|
||||
#if HOTENDS > 2
|
||||
void lcd_preheat_m1_e2_only() { _lcd_preheat(2, ui.preheat_hotend_temp[0], -1, ui.preheat_fan_speed[0]); }
|
||||
void lcd_preheat_m2_e2_only() { _lcd_preheat(2, ui.preheat_hotend_temp[1], -1, ui.preheat_fan_speed[1]); }
|
||||
#if HAS_HEATED_BED
|
||||
void lcd_preheat_m1_e2() { _lcd_preheat(2, ui.preheat_hotend_temp[0], ui.preheat_bed_temp[0], ui.preheat_fan_speed[0]); }
|
||||
void lcd_preheat_m2_e2() { _lcd_preheat(2, ui.preheat_hotend_temp[1], ui.preheat_bed_temp[1], ui.preheat_fan_speed[1]); }
|
||||
#endif
|
||||
#if HOTENDS > 3
|
||||
void lcd_preheat_m1_e3_only() { _lcd_preheat(3, ui.preheat_hotend_temp[0], -1, ui.preheat_fan_speed[0]); }
|
||||
void lcd_preheat_m2_e3_only() { _lcd_preheat(3, ui.preheat_hotend_temp[1], -1, ui.preheat_fan_speed[1]); }
|
||||
#if HAS_HEATED_BED
|
||||
void lcd_preheat_m1_e3() { _lcd_preheat(3, ui.preheat_hotend_temp[0], ui.preheat_bed_temp[0], ui.preheat_fan_speed[0]); }
|
||||
void lcd_preheat_m2_e3() { _lcd_preheat(3, ui.preheat_hotend_temp[1], ui.preheat_bed_temp[1], ui.preheat_fan_speed[1]); }
|
||||
#endif
|
||||
#if HOTENDS > 4
|
||||
void lcd_preheat_m1_e4_only() { _lcd_preheat(4, ui.preheat_hotend_temp[0], -1, ui.preheat_fan_speed[0]); }
|
||||
void lcd_preheat_m2_e4_only() { _lcd_preheat(4, ui.preheat_hotend_temp[1], -1, ui.preheat_fan_speed[1]); }
|
||||
#if HAS_HEATED_BED
|
||||
void lcd_preheat_m1_e4() { _lcd_preheat(4, ui.preheat_hotend_temp[0], ui.preheat_bed_temp[0], ui.preheat_fan_speed[0]); }
|
||||
void lcd_preheat_m2_e4() { _lcd_preheat(4, ui.preheat_hotend_temp[1], ui.preheat_bed_temp[1], ui.preheat_fan_speed[1]); }
|
||||
#endif
|
||||
#if HOTENDS > 5
|
||||
void lcd_preheat_m1_e5_only() { _lcd_preheat(5, ui.preheat_hotend_temp[0], -1, ui.preheat_fan_speed[0]); }
|
||||
void lcd_preheat_m2_e5_only() { _lcd_preheat(5, ui.preheat_hotend_temp[1], -1, ui.preheat_fan_speed[1]); }
|
||||
#if HAS_HEATED_BED
|
||||
void lcd_preheat_m1_e5() { _lcd_preheat(5, ui.preheat_hotend_temp[0], ui.preheat_bed_temp[0], ui.preheat_fan_speed[0]); }
|
||||
void lcd_preheat_m2_e5() { _lcd_preheat(5, ui.preheat_hotend_temp[1], ui.preheat_bed_temp[1], ui.preheat_fan_speed[1]); }
|
||||
#endif
|
||||
#endif // HOTENDS > 5
|
||||
#endif // HOTENDS > 4
|
||||
#endif // HOTENDS > 3
|
||||
#endif // HOTENDS > 2
|
||||
|
||||
#if HAS_HEATED_BED
|
||||
void lcd_preheat_m1_e0();
|
||||
void lcd_preheat_m2_e0();
|
||||
#else
|
||||
void lcd_preheat_m1_e0_only();
|
||||
void lcd_preheat_m2_e0_only();
|
||||
#endif
|
||||
|
||||
void lcd_preheat_m1_all() {
|
||||
#if HOTENDS > 1
|
||||
thermalManager.setTargetHotend(ui.preheat_hotend_temp[0], 1);
|
||||
#if HOTENDS > 2
|
||||
thermalManager.setTargetHotend(ui.preheat_hotend_temp[0], 2);
|
||||
#if HOTENDS > 3
|
||||
thermalManager.setTargetHotend(ui.preheat_hotend_temp[0], 3);
|
||||
#if HOTENDS > 4
|
||||
thermalManager.setTargetHotend(ui.preheat_hotend_temp[0], 4);
|
||||
#if HOTENDS > 5
|
||||
thermalManager.setTargetHotend(ui.preheat_hotend_temp[0], 5);
|
||||
#endif // HOTENDS > 5
|
||||
#endif // HOTENDS > 4
|
||||
#endif // HOTENDS > 3
|
||||
#endif // HOTENDS > 2
|
||||
#endif // HOTENDS > 1
|
||||
#if HAS_HEATED_BED
|
||||
lcd_preheat_m1_e0();
|
||||
#else
|
||||
lcd_preheat_m1_e0_only();
|
||||
#endif
|
||||
#if HAS_TEMP_HOTEND
|
||||
inline void _preheat_end(const uint8_t m, const uint8_t e) {
|
||||
_lcd_preheat(e, ui.preheat_hotend_temp[m], -1, ui.preheat_fan_speed[m]);
|
||||
}
|
||||
|
||||
void lcd_preheat_m2_all() {
|
||||
#if HOTENDS > 1
|
||||
thermalManager.setTargetHotend(ui.preheat_hotend_temp[1], 1);
|
||||
#if HOTENDS > 2
|
||||
thermalManager.setTargetHotend(ui.preheat_hotend_temp[1], 2);
|
||||
#if HOTENDS > 3
|
||||
thermalManager.setTargetHotend(ui.preheat_hotend_temp[1], 3);
|
||||
#if HOTENDS > 4
|
||||
thermalManager.setTargetHotend(ui.preheat_hotend_temp[1], 4);
|
||||
#if HOTENDS > 5
|
||||
thermalManager.setTargetHotend(ui.preheat_hotend_temp[1], 5);
|
||||
#endif // HOTENDS > 5
|
||||
#endif // HOTENDS > 4
|
||||
#endif // HOTENDS > 3
|
||||
#endif // HOTENDS > 2
|
||||
#endif // HOTENDS > 1
|
||||
#if HAS_HEATED_BED
|
||||
lcd_preheat_m2_e0();
|
||||
#else
|
||||
lcd_preheat_m2_e0_only();
|
||||
#endif
|
||||
#if HAS_HEATED_BED
|
||||
inline void _preheat_both(const uint8_t m, const uint8_t e) {
|
||||
_lcd_preheat(e, ui.preheat_hotend_temp[m], ui.preheat_bed_temp[m], ui.preheat_fan_speed[m]);
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
#if HAS_HEATED_BED
|
||||
inline void _preheat_bed(const uint8_t m) {
|
||||
_lcd_preheat(0, 0, ui.preheat_bed_temp[m], ui.preheat_fan_speed[m]);
|
||||
}
|
||||
|
||||
#endif // HOTENDS > 1
|
||||
#endif
|
||||
|
||||
#if HAS_TEMP_HOTEND || HAS_HEATED_BED
|
||||
|
||||
#if HOTENDS
|
||||
void lcd_preheat_m1_e0_only() { _lcd_preheat(0, ui.preheat_hotend_temp[0], -1, ui.preheat_fan_speed[0]); }
|
||||
void lcd_preheat_m2_e0_only() { _lcd_preheat(0, ui.preheat_hotend_temp[1], -1, ui.preheat_fan_speed[1]); }
|
||||
#endif
|
||||
|
||||
#define _PREHEAT_ITEMS(M,N) do{ \
|
||||
ACTION_ITEM(MSG_PREHEAT_##M##_N LCD_STR_N##N, [](){ _preheat_both(M-1, N); }); \
|
||||
ACTION_ITEM(MSG_PREHEAT_##M##_END " " LCD_STR_E##N, [](){ _preheat_end(M-1, N); }); \
|
||||
}while(0)
|
||||
#if HAS_HEATED_BED
|
||||
#if HOTENDS
|
||||
void lcd_preheat_m1_e0() { _lcd_preheat(0, ui.preheat_hotend_temp[0], ui.preheat_bed_temp[0], ui.preheat_fan_speed[0]); }
|
||||
void lcd_preheat_m2_e0() { _lcd_preheat(0, ui.preheat_hotend_temp[1], ui.preheat_bed_temp[1], ui.preheat_fan_speed[1]); }
|
||||
#endif
|
||||
void lcd_preheat_m1_bedonly() { _lcd_preheat(0, 0, ui.preheat_bed_temp[0], ui.preheat_fan_speed[0]); }
|
||||
void lcd_preheat_m2_bedonly() { _lcd_preheat(0, 0, ui.preheat_bed_temp[1], ui.preheat_fan_speed[1]); }
|
||||
#define PREHEAT_ITEMS(M,N) _PREHEAT_ITEMS(M,N)
|
||||
#else
|
||||
#define PREHEAT_ITEMS(M,N) \
|
||||
ACTION_ITEM(MSG_PREHEAT_##M##_N LCD_STR_N##N, [](){ _preheat_end(M-1, N); })
|
||||
#endif
|
||||
|
||||
void menu_preheat_m1() {
|
||||
@ -186,57 +102,37 @@ void _lcd_preheat(const int16_t endnum, const int16_t temph, const int16_t tempb
|
||||
BACK_ITEM(MSG_TEMPERATURE);
|
||||
#if HOTENDS == 1
|
||||
#if HAS_HEATED_BED
|
||||
ACTION_ITEM(MSG_PREHEAT_1, lcd_preheat_m1_e0);
|
||||
ACTION_ITEM(MSG_PREHEAT_1_END, lcd_preheat_m1_e0_only);
|
||||
ACTION_ITEM(MSG_PREHEAT_1, [](){ _preheat_both(0, 0); });
|
||||
ACTION_ITEM(MSG_PREHEAT_1_END, [](){ _preheat_end(0, 0); });
|
||||
#else
|
||||
ACTION_ITEM(MSG_PREHEAT_1, lcd_preheat_m1_e0_only);
|
||||
ACTION_ITEM(MSG_PREHEAT_1, [](){ _preheat_end(0, 0); });
|
||||
#endif
|
||||
#elif HOTENDS > 1
|
||||
#if HAS_HEATED_BED
|
||||
ACTION_ITEM(MSG_PREHEAT_1_N MSG_H1, lcd_preheat_m1_e0);
|
||||
ACTION_ITEM(MSG_PREHEAT_1_END " " MSG_E1, lcd_preheat_m1_e0_only);
|
||||
ACTION_ITEM(MSG_PREHEAT_1_N MSG_H2, lcd_preheat_m1_e1);
|
||||
ACTION_ITEM(MSG_PREHEAT_1_END " " MSG_E2, lcd_preheat_m1_e1_only);
|
||||
#else
|
||||
ACTION_ITEM(MSG_PREHEAT_1_N MSG_H1, lcd_preheat_m1_e0_only);
|
||||
ACTION_ITEM(MSG_PREHEAT_1_N MSG_H2, lcd_preheat_m1_e1_only);
|
||||
_PREHEAT_ITEMS(1,0);
|
||||
#endif
|
||||
PREHEAT_ITEMS(1,1);
|
||||
#if HOTENDS > 2
|
||||
#if HAS_HEATED_BED
|
||||
ACTION_ITEM(MSG_PREHEAT_1_N MSG_H3, lcd_preheat_m1_e2);
|
||||
ACTION_ITEM(MSG_PREHEAT_1_END " " MSG_E3, lcd_preheat_m1_e2_only);
|
||||
#else
|
||||
ACTION_ITEM(MSG_PREHEAT_1_N MSG_H3, lcd_preheat_m1_e2_only);
|
||||
#endif
|
||||
PREHEAT_ITEMS(1,2);
|
||||
#if HOTENDS > 3
|
||||
#if HAS_HEATED_BED
|
||||
ACTION_ITEM(MSG_PREHEAT_1_N MSG_H4, lcd_preheat_m1_e3);
|
||||
ACTION_ITEM(MSG_PREHEAT_1_END " " MSG_E4, lcd_preheat_m1_e3_only);
|
||||
#else
|
||||
ACTION_ITEM(MSG_PREHEAT_1_N MSG_H4, lcd_preheat_m1_e3_only);
|
||||
#endif
|
||||
PREHEAT_ITEMS(1,3);
|
||||
#if HOTENDS > 4
|
||||
#if HAS_HEATED_BED
|
||||
ACTION_ITEM(MSG_PREHEAT_1_N MSG_H5, lcd_preheat_m1_e4);
|
||||
ACTION_ITEM(MSG_PREHEAT_1_END " " MSG_E5, lcd_preheat_m1_e4_only);
|
||||
#else
|
||||
ACTION_ITEM(MSG_PREHEAT_1_N MSG_H5, lcd_preheat_m1_e4_only);
|
||||
#endif
|
||||
PREHEAT_ITEMS(1,4);
|
||||
#if HOTENDS > 5
|
||||
#if HAS_HEATED_BED
|
||||
ACTION_ITEM(MSG_PREHEAT_1_N MSG_H6, lcd_preheat_m1_e5);
|
||||
ACTION_ITEM(MSG_PREHEAT_1_END " " MSG_E6, lcd_preheat_m1_e5_only);
|
||||
#else
|
||||
ACTION_ITEM(MSG_PREHEAT_1_N MSG_H6, lcd_preheat_m1_e5_only);
|
||||
#endif
|
||||
PREHEAT_ITEMS(1,5);
|
||||
#endif // HOTENDS > 5
|
||||
#endif // HOTENDS > 4
|
||||
#endif // HOTENDS > 3
|
||||
#endif // HOTENDS > 2
|
||||
ACTION_ITEM(MSG_PREHEAT_1_ALL, lcd_preheat_m1_all);
|
||||
ACTION_ITEM(MSG_PREHEAT_1_ALL, []() {
|
||||
#if HAS_HEATED_BED
|
||||
_preheat_bed(0);
|
||||
#endif
|
||||
HOTEND_LOOP() thermalManager.setTargetHotend(ui.preheat_hotend_temp[0], e);
|
||||
});
|
||||
#endif // HOTENDS > 1
|
||||
#if HAS_HEATED_BED
|
||||
ACTION_ITEM(MSG_PREHEAT_1_BEDONLY, lcd_preheat_m1_bedonly);
|
||||
ACTION_ITEM(MSG_PREHEAT_1_BEDONLY, [](){ _preheat_bed(0); });
|
||||
#endif
|
||||
END_MENU();
|
||||
}
|
||||
@ -246,57 +142,37 @@ void _lcd_preheat(const int16_t endnum, const int16_t temph, const int16_t tempb
|
||||
BACK_ITEM(MSG_TEMPERATURE);
|
||||
#if HOTENDS == 1
|
||||
#if HAS_HEATED_BED
|
||||
ACTION_ITEM(MSG_PREHEAT_2, lcd_preheat_m2_e0);
|
||||
ACTION_ITEM(MSG_PREHEAT_2_END, lcd_preheat_m2_e0_only);
|
||||
ACTION_ITEM(MSG_PREHEAT_2, [](){ _preheat_both(1, 0); });
|
||||
ACTION_ITEM(MSG_PREHEAT_2_END, [](){ _preheat_end(1, 0); });
|
||||
#else
|
||||
ACTION_ITEM(MSG_PREHEAT_2, lcd_preheat_m2_e0_only);
|
||||
ACTION_ITEM(MSG_PREHEAT_2, [](){ _preheat_end(1, 0); });
|
||||
#endif
|
||||
#elif HOTENDS > 1
|
||||
#if HAS_HEATED_BED
|
||||
ACTION_ITEM(MSG_PREHEAT_2_N MSG_H1, lcd_preheat_m2_e0);
|
||||
ACTION_ITEM(MSG_PREHEAT_2_END " " MSG_E1, lcd_preheat_m2_e0_only);
|
||||
ACTION_ITEM(MSG_PREHEAT_2_N MSG_H2, lcd_preheat_m2_e1);
|
||||
ACTION_ITEM(MSG_PREHEAT_2_END " " MSG_E2, lcd_preheat_m2_e1_only);
|
||||
#else
|
||||
ACTION_ITEM(MSG_PREHEAT_2_N MSG_H1, lcd_preheat_m2_e0_only);
|
||||
ACTION_ITEM(MSG_PREHEAT_2_N MSG_H2, lcd_preheat_m2_e1_only);
|
||||
_PREHEAT_ITEMS(2,0);
|
||||
#endif
|
||||
PREHEAT_ITEMS(2,1);
|
||||
#if HOTENDS > 2
|
||||
#if HAS_HEATED_BED
|
||||
ACTION_ITEM(MSG_PREHEAT_2_N MSG_H3, lcd_preheat_m2_e2);
|
||||
ACTION_ITEM(MSG_PREHEAT_2_END " " MSG_E3, lcd_preheat_m2_e2_only);
|
||||
#else
|
||||
ACTION_ITEM(MSG_PREHEAT_2_N MSG_H3, lcd_preheat_m2_e2_only);
|
||||
#endif
|
||||
PREHEAT_ITEMS(2,2);
|
||||
#if HOTENDS > 3
|
||||
#if HAS_HEATED_BED
|
||||
ACTION_ITEM(MSG_PREHEAT_2_N MSG_H4, lcd_preheat_m2_e3);
|
||||
ACTION_ITEM(MSG_PREHEAT_2_END " " MSG_E4, lcd_preheat_m2_e3_only);
|
||||
#else
|
||||
ACTION_ITEM(MSG_PREHEAT_2_N MSG_H4, lcd_preheat_m2_e3_only);
|
||||
#endif
|
||||
PREHEAT_ITEMS(2,3);
|
||||
#if HOTENDS > 4
|
||||
#if HAS_HEATED_BED
|
||||
ACTION_ITEM(MSG_PREHEAT_2_N MSG_H5, lcd_preheat_m2_e4);
|
||||
ACTION_ITEM(MSG_PREHEAT_2_END " " MSG_E5, lcd_preheat_m2_e4_only);
|
||||
#else
|
||||
ACTION_ITEM(MSG_PREHEAT_2_N MSG_H5, lcd_preheat_m2_e4_only);
|
||||
#endif
|
||||
PREHEAT_ITEMS(2,4);
|
||||
#if HOTENDS > 5
|
||||
#if HAS_HEATED_BED
|
||||
ACTION_ITEM(MSG_PREHEAT_2_N MSG_H6, lcd_preheat_m2_e5);
|
||||
ACTION_ITEM(MSG_PREHEAT_2_END " " MSG_E6, lcd_preheat_m2_e5_only);
|
||||
#else
|
||||
ACTION_ITEM(MSG_PREHEAT_2_N MSG_H6, lcd_preheat_m2_e5_only);
|
||||
#endif
|
||||
PREHEAT_ITEMS(2,5);
|
||||
#endif // HOTENDS > 5
|
||||
#endif // HOTENDS > 4
|
||||
#endif // HOTENDS > 3
|
||||
#endif // HOTENDS > 2
|
||||
ACTION_ITEM(MSG_PREHEAT_2_ALL, lcd_preheat_m2_all);
|
||||
ACTION_ITEM(MSG_PREHEAT_2_ALL, []() {
|
||||
#if HAS_HEATED_BED
|
||||
_preheat_bed(1);
|
||||
#endif
|
||||
HOTEND_LOOP() thermalManager.setTargetHotend(ui.preheat_hotend_temp[1], e);
|
||||
});
|
||||
#endif // HOTENDS > 1
|
||||
#if HAS_HEATED_BED
|
||||
ACTION_ITEM(MSG_PREHEAT_2_BEDONLY, lcd_preheat_m2_bedonly);
|
||||
ACTION_ITEM(MSG_PREHEAT_2_BEDONLY, [](){ _preheat_bed(1); });
|
||||
#endif
|
||||
END_MENU();
|
||||
}
|
||||
@ -318,9 +194,9 @@ void menu_temperature() {
|
||||
// Nozzle [1-5]:
|
||||
//
|
||||
#if HOTENDS == 1
|
||||
EDIT_ITEM_FAST(int3, MSG_NOZZLE, &thermalManager.temp_hotend[0].target, 0, HEATER_0_MAXTEMP - 15, thermalManager.start_watching_E0);
|
||||
EDIT_ITEM_FAST(int3, MSG_NOZZLE, &thermalManager.temp_hotend[0].target, 0, HEATER_0_MAXTEMP - 15, [](){ thermalManager.start_watching_hotend(0); });
|
||||
#elif HOTENDS > 1
|
||||
#define EDIT_TARGET(N) EDIT_ITEM_FAST(int3, MSG_NOZZLE MSG_LCD_N##N, &thermalManager.temp_hotend[N].target, 0, HEATER_##N##_MAXTEMP - 15, thermalManager.start_watching_E##N)
|
||||
#define EDIT_TARGET(N) EDIT_ITEM_FAST(int3, MSG_NOZZLE LCD_STR_N##N, &thermalManager.temp_hotend[N].target, 0, HEATER_##N##_MAXTEMP - 15, [](){ thermalManager.start_watching_hotend(N); })
|
||||
EDIT_TARGET(0);
|
||||
EDIT_TARGET(1);
|
||||
#if HOTENDS > 2
|
||||
@ -360,19 +236,22 @@ void menu_temperature() {
|
||||
//
|
||||
#if FAN_COUNT > 0
|
||||
#if HAS_FAN0
|
||||
EDIT_ITEM_FAST(percent, MSG_FAN_SPEED FAN_SPEED_1_SUFFIX, &thermalManager.lcd_tmpfan_speed[0], 0, 255, thermalManager.lcd_setFanSpeed0);
|
||||
editable.uint8 = thermalManager.fan_speed[0];
|
||||
EDIT_ITEM_FAST(percent, MSG_FAN_SPEED FAN_SPEED_1_SUFFIX, &editable.uint8, 0, 255, [](){ thermalManager.set_fan_speed(0, editable.uint8); });
|
||||
#if ENABLED(EXTRA_FAN_SPEED)
|
||||
EDIT_ITEM_FAST(percent, MSG_EXTRA_FAN_SPEED FAN_SPEED_1_SUFFIX, &thermalManager.new_fan_speed[0], 3, 255);
|
||||
#endif
|
||||
#endif
|
||||
#if HAS_FAN1 || (ENABLED(SINGLENOZZLE) && EXTRUDERS > 1)
|
||||
EDIT_ITEM_FAST(percent, MSG_FAN_SPEED " 2", &thermalManager.lcd_tmpfan_speed[1], 0, 255, thermalManager.lcd_setFanSpeed1);
|
||||
editable.uint8 = thermalManager.fan_speed[1];
|
||||
EDIT_ITEM_FAST(percent, MSG_FAN_SPEED " 2", &editable.uint8, 0, 255, [](){ thermalManager.set_fan_speed(1, editable.uint8); });
|
||||
#if ENABLED(EXTRA_FAN_SPEED)
|
||||
EDIT_ITEM_FAST(percent, MSG_EXTRA_FAN_SPEED " 2", &thermalManager.new_fan_speed[1], 3, 255);
|
||||
#endif
|
||||
#endif
|
||||
#if HAS_FAN2 || (ENABLED(SINGLENOZZLE) && EXTRUDERS > 2)
|
||||
EDIT_ITEM_FAST(percent, MSG_FAN_SPEED " 3", &thermalManager.lcd_tmpfan_speed[2], 0, 255, thermalManager.lcd_setFanSpeed2);
|
||||
editable.uint8 = thermalManager.fan_speed[2];
|
||||
EDIT_ITEM_FAST(percent, MSG_FAN_SPEED " 3", &editable.uint8, 0, 255, [](){ thermalManager.set_fan_speed(2, editable.uint8); });
|
||||
#if ENABLED(EXTRA_FAN_SPEED)
|
||||
EDIT_ITEM_FAST(percent, MSG_EXTRA_FAN_SPEED " 3", &thermalManager.new_fan_speed[2], 3, 255);
|
||||
#endif
|
||||
@ -388,8 +267,8 @@ void menu_temperature() {
|
||||
SUBMENU(MSG_PREHEAT_1, menu_preheat_m1);
|
||||
SUBMENU(MSG_PREHEAT_2, menu_preheat_m2);
|
||||
#else
|
||||
ACTION_ITEM(MSG_PREHEAT_1, lcd_preheat_m1_e0_only);
|
||||
ACTION_ITEM(MSG_PREHEAT_2, lcd_preheat_m2_e0_only);
|
||||
ACTION_ITEM(MSG_PREHEAT_1, [](){ _preheat_end(0, 0); });
|
||||
ACTION_ITEM(MSG_PREHEAT_2, [](){ _preheat_end(1, 0); });
|
||||
#endif
|
||||
|
||||
//
|
||||
|
@ -32,47 +32,7 @@
|
||||
#include "../../module/stepper/indirection.h"
|
||||
#include "../../feature/tmc_util.h"
|
||||
|
||||
#define TMC_EDIT_STORED_I_RMS(ST,MSG) EDIT_ITEM(uint16_4, MSG, &stepper##ST.val_mA, 100, 3000, refresh_stepper_current_##ST)
|
||||
|
||||
#if AXIS_IS_TMC(X)
|
||||
void refresh_stepper_current_X() { stepperX.refresh_stepper_current(); }
|
||||
#endif
|
||||
#if AXIS_IS_TMC(Y)
|
||||
void refresh_stepper_current_Y() { stepperY.refresh_stepper_current(); }
|
||||
#endif
|
||||
#if AXIS_IS_TMC(Z)
|
||||
void refresh_stepper_current_Z() { stepperZ.refresh_stepper_current(); }
|
||||
#endif
|
||||
#if AXIS_IS_TMC(X2)
|
||||
void refresh_stepper_current_X2() { stepperX2.refresh_stepper_current(); }
|
||||
#endif
|
||||
#if AXIS_IS_TMC(Y2)
|
||||
void refresh_stepper_current_Y2() { stepperY2.refresh_stepper_current(); }
|
||||
#endif
|
||||
#if AXIS_IS_TMC(Z2)
|
||||
void refresh_stepper_current_Z2() { stepperZ2.refresh_stepper_current(); }
|
||||
#endif
|
||||
#if AXIS_IS_TMC(Z3)
|
||||
void refresh_stepper_current_Z3() { stepperZ3.refresh_stepper_current(); }
|
||||
#endif
|
||||
#if AXIS_IS_TMC(E0)
|
||||
void refresh_stepper_current_E0() { stepperE0.refresh_stepper_current(); }
|
||||
#endif
|
||||
#if AXIS_IS_TMC(E1)
|
||||
void refresh_stepper_current_E1() { stepperE1.refresh_stepper_current(); }
|
||||
#endif
|
||||
#if AXIS_IS_TMC(E2)
|
||||
void refresh_stepper_current_E2() { stepperE2.refresh_stepper_current(); }
|
||||
#endif
|
||||
#if AXIS_IS_TMC(E3)
|
||||
void refresh_stepper_current_E3() { stepperE3.refresh_stepper_current(); }
|
||||
#endif
|
||||
#if AXIS_IS_TMC(E4)
|
||||
void refresh_stepper_current_E4() { stepperE4.refresh_stepper_current(); }
|
||||
#endif
|
||||
#if AXIS_IS_TMC(E5)
|
||||
void refresh_stepper_current_E5() { stepperE5.refresh_stepper_current(); }
|
||||
#endif
|
||||
#define TMC_EDIT_STORED_I_RMS(ST,MSG) EDIT_ITEM(uint16_4, MSG, &stepper##ST.val_mA, 100, 3000, [](){ stepper##ST.refresh_stepper_current(); })
|
||||
|
||||
void menu_tmc_current() {
|
||||
START_MENU();
|
||||
@ -99,69 +59,29 @@ void menu_tmc_current() {
|
||||
TMC_EDIT_STORED_I_RMS(Z3, MSG_Z3);
|
||||
#endif
|
||||
#if AXIS_IS_TMC(E0)
|
||||
TMC_EDIT_STORED_I_RMS(E0, MSG_E1);
|
||||
TMC_EDIT_STORED_I_RMS(E0, LCD_STR_E0);
|
||||
#endif
|
||||
#if AXIS_IS_TMC(E1)
|
||||
TMC_EDIT_STORED_I_RMS(E1, MSG_E2);
|
||||
TMC_EDIT_STORED_I_RMS(E1, LCD_STR_E1);
|
||||
#endif
|
||||
#if AXIS_IS_TMC(E2)
|
||||
TMC_EDIT_STORED_I_RMS(E2, MSG_E3);
|
||||
TMC_EDIT_STORED_I_RMS(E2, LCD_STR_E2);
|
||||
#endif
|
||||
#if AXIS_IS_TMC(E3)
|
||||
TMC_EDIT_STORED_I_RMS(E3, MSG_E4);
|
||||
TMC_EDIT_STORED_I_RMS(E3, LCD_STR_E3);
|
||||
#endif
|
||||
#if AXIS_IS_TMC(E4)
|
||||
TMC_EDIT_STORED_I_RMS(E4, MSG_E5);
|
||||
TMC_EDIT_STORED_I_RMS(E4, LCD_STR_E4);
|
||||
#endif
|
||||
#if AXIS_IS_TMC(E5)
|
||||
TMC_EDIT_STORED_I_RMS(E5, MSG_E6);
|
||||
TMC_EDIT_STORED_I_RMS(E5, LCD_STR_E5);
|
||||
#endif
|
||||
END_MENU();
|
||||
}
|
||||
|
||||
#if ENABLED(HYBRID_THRESHOLD)
|
||||
|
||||
#define TMC_EDIT_STORED_HYBRID_THRS(ST, MSG) EDIT_ITEM(uint8, MSG, &stepper##ST.stored.hybrid_thrs, 0, 255, refresh_hybrid_thrs_##ST);
|
||||
|
||||
#if AXIS_HAS_STEALTHCHOP(X)
|
||||
void refresh_hybrid_thrs_X() { stepperX.refresh_hybrid_thrs(); }
|
||||
#endif
|
||||
#if AXIS_HAS_STEALTHCHOP(Y)
|
||||
void refresh_hybrid_thrs_Y() { stepperY.refresh_hybrid_thrs(); }
|
||||
#endif
|
||||
#if AXIS_HAS_STEALTHCHOP(Z)
|
||||
void refresh_hybrid_thrs_Z() { stepperZ.refresh_hybrid_thrs(); }
|
||||
#endif
|
||||
#if AXIS_HAS_STEALTHCHOP(X2)
|
||||
void refresh_hybrid_thrs_X2() { stepperX2.refresh_hybrid_thrs(); }
|
||||
#endif
|
||||
#if AXIS_HAS_STEALTHCHOP(Y2)
|
||||
void refresh_hybrid_thrs_Y2() { stepperY2.refresh_hybrid_thrs(); }
|
||||
#endif
|
||||
#if AXIS_HAS_STEALTHCHOP(Z2)
|
||||
void refresh_hybrid_thrs_Z2() { stepperZ2.refresh_hybrid_thrs(); }
|
||||
#endif
|
||||
#if AXIS_HAS_STEALTHCHOP(Z3)
|
||||
void refresh_hybrid_thrs_Z3() { stepperZ3.refresh_hybrid_thrs(); }
|
||||
#endif
|
||||
#if AXIS_HAS_STEALTHCHOP(E0)
|
||||
void refresh_hybrid_thrs_E0() { stepperE0.refresh_hybrid_thrs(); }
|
||||
#endif
|
||||
#if AXIS_HAS_STEALTHCHOP(E1)
|
||||
void refresh_hybrid_thrs_E1() { stepperE1.refresh_hybrid_thrs(); }
|
||||
#endif
|
||||
#if AXIS_HAS_STEALTHCHOP(E2)
|
||||
void refresh_hybrid_thrs_E2() { stepperE2.refresh_hybrid_thrs(); }
|
||||
#endif
|
||||
#if AXIS_HAS_STEALTHCHOP(E3)
|
||||
void refresh_hybrid_thrs_E3() { stepperE3.refresh_hybrid_thrs(); }
|
||||
#endif
|
||||
#if AXIS_HAS_STEALTHCHOP(E4)
|
||||
void refresh_hybrid_thrs_E4() { stepperE4.refresh_hybrid_thrs(); }
|
||||
#endif
|
||||
#if AXIS_HAS_STEALTHCHOP(E5)
|
||||
void refresh_hybrid_thrs_E5() { stepperE5.refresh_hybrid_thrs(); }
|
||||
#endif
|
||||
#define TMC_EDIT_STORED_HYBRID_THRS(ST, MSG) EDIT_ITEM(uint8, MSG, &stepper##ST.stored.hybrid_thrs, 0, 255, [](){ stepper##ST.refresh_hybrid_thrs(); });
|
||||
|
||||
void menu_tmc_hybrid_thrs() {
|
||||
START_MENU();
|
||||
@ -188,22 +108,22 @@ void menu_tmc_current() {
|
||||
TMC_EDIT_STORED_HYBRID_THRS(Z3, MSG_Z3);
|
||||
#endif
|
||||
#if AXIS_HAS_STEALTHCHOP(E0)
|
||||
TMC_EDIT_STORED_HYBRID_THRS(E0, MSG_E1);
|
||||
TMC_EDIT_STORED_HYBRID_THRS(E0, LCD_STR_E0);
|
||||
#endif
|
||||
#if AXIS_HAS_STEALTHCHOP(E1)
|
||||
TMC_EDIT_STORED_HYBRID_THRS(E1, MSG_E2);
|
||||
TMC_EDIT_STORED_HYBRID_THRS(E1, LCD_STR_E1);
|
||||
#endif
|
||||
#if AXIS_HAS_STEALTHCHOP(E2)
|
||||
TMC_EDIT_STORED_HYBRID_THRS(E2, MSG_E3);
|
||||
TMC_EDIT_STORED_HYBRID_THRS(E2, LCD_STR_E2);
|
||||
#endif
|
||||
#if AXIS_HAS_STEALTHCHOP(E3)
|
||||
TMC_EDIT_STORED_HYBRID_THRS(E3, MSG_E4);
|
||||
TMC_EDIT_STORED_HYBRID_THRS(E3, LCD_STR_E3);
|
||||
#endif
|
||||
#if AXIS_HAS_STEALTHCHOP(E4)
|
||||
TMC_EDIT_STORED_HYBRID_THRS(E4, MSG_E5);
|
||||
TMC_EDIT_STORED_HYBRID_THRS(E4, LCD_STR_E4);
|
||||
#endif
|
||||
#if AXIS_HAS_STEALTHCHOP(E5)
|
||||
TMC_EDIT_STORED_HYBRID_THRS(E5, MSG_E6);
|
||||
TMC_EDIT_STORED_HYBRID_THRS(E5, LCD_STR_E5);
|
||||
#endif
|
||||
END_MENU();
|
||||
}
|
||||
@ -212,20 +132,7 @@ void menu_tmc_current() {
|
||||
|
||||
#if ENABLED(SENSORLESS_HOMING)
|
||||
|
||||
#define TMC_EDIT_STORED_SGT(ST) EDIT_ITEM(int4, MSG_##ST, &stepper##ST.stored.homing_thrs, stepper##ST.sgt_min, stepper##ST.sgt_max, refresh_homing_thrs_##ST);
|
||||
|
||||
#if X_SENSORLESS
|
||||
void refresh_homing_thrs_X() { stepperX.refresh_homing_thrs(); }
|
||||
#endif
|
||||
#if X2_SENSORLESS
|
||||
void refresh_homing_thrs_X2() { stepperX2.refresh_homing_thrs(); }
|
||||
#endif
|
||||
#if Y_SENSORLESS
|
||||
void refresh_homing_thrs_Y() { stepperY.refresh_homing_thrs(); }
|
||||
#endif
|
||||
#if Z_SENSORLESS
|
||||
void refresh_homing_thrs_Z() { stepperZ.refresh_homing_thrs(); }
|
||||
#endif
|
||||
#define TMC_EDIT_STORED_SGT(ST) EDIT_ITEM(int4, MSG_##ST, &stepper##ST.stored.homing_thrs, stepper##ST.sgt_min, stepper##ST.sgt_max, [](){ stepper##ST.refresh_homing_thrs(); });
|
||||
|
||||
void menu_tmc_homing_thrs() {
|
||||
START_MENU();
|
||||
@ -249,47 +156,7 @@ void menu_tmc_current() {
|
||||
|
||||
#if HAS_STEALTHCHOP
|
||||
|
||||
#define TMC_EDIT_STEP_MODE(ST, MSG) EDIT_ITEM(bool, MSG, &stepper##ST.stored.stealthChop_enabled, refresh_stepping_mode_##ST)
|
||||
|
||||
#if AXIS_HAS_STEALTHCHOP(X)
|
||||
void refresh_stepping_mode_X() { stepperX.refresh_stepping_mode(); }
|
||||
#endif
|
||||
#if AXIS_HAS_STEALTHCHOP(Y)
|
||||
void refresh_stepping_mode_Y() { stepperY.refresh_stepping_mode(); }
|
||||
#endif
|
||||
#if AXIS_HAS_STEALTHCHOP(Z)
|
||||
void refresh_stepping_mode_Z() { stepperZ.refresh_stepping_mode(); }
|
||||
#endif
|
||||
#if AXIS_HAS_STEALTHCHOP(X2)
|
||||
void refresh_stepping_mode_X2() { stepperX2.refresh_stepping_mode(); }
|
||||
#endif
|
||||
#if AXIS_HAS_STEALTHCHOP(Y2)
|
||||
void refresh_stepping_mode_Y2() { stepperY2.refresh_stepping_mode(); }
|
||||
#endif
|
||||
#if AXIS_HAS_STEALTHCHOP(Z2)
|
||||
void refresh_stepping_mode_Z2() { stepperZ2.refresh_stepping_mode(); }
|
||||
#endif
|
||||
#if AXIS_HAS_STEALTHCHOP(Z3)
|
||||
void refresh_stepping_mode_Z3() { stepperZ3.refresh_stepping_mode(); }
|
||||
#endif
|
||||
#if AXIS_HAS_STEALTHCHOP(E0)
|
||||
void refresh_stepping_mode_E0() { stepperE0.refresh_stepping_mode(); }
|
||||
#endif
|
||||
#if AXIS_HAS_STEALTHCHOP(E1)
|
||||
void refresh_stepping_mode_E1() { stepperE1.refresh_stepping_mode(); }
|
||||
#endif
|
||||
#if AXIS_HAS_STEALTHCHOP(E2)
|
||||
void refresh_stepping_mode_E2() { stepperE2.refresh_stepping_mode(); }
|
||||
#endif
|
||||
#if AXIS_HAS_STEALTHCHOP(E3)
|
||||
void refresh_stepping_mode_E3() { stepperE3.refresh_stepping_mode(); }
|
||||
#endif
|
||||
#if AXIS_HAS_STEALTHCHOP(E4)
|
||||
void refresh_stepping_mode_E4() { stepperE4.refresh_stepping_mode(); }
|
||||
#endif
|
||||
#if AXIS_HAS_STEALTHCHOP(E5)
|
||||
void refresh_stepping_mode_E5() { stepperE5.refresh_stepping_mode(); }
|
||||
#endif
|
||||
#define TMC_EDIT_STEP_MODE(ST, MSG) EDIT_ITEM(bool, MSG, &stepper##ST.stored.stealthChop_enabled, [](){ stepper##ST.refresh_stepping_mode(); })
|
||||
|
||||
void menu_tmc_step_mode() {
|
||||
START_MENU();
|
||||
@ -317,22 +184,22 @@ void menu_tmc_current() {
|
||||
TMC_EDIT_STEP_MODE(Z3, MSG_Z3);
|
||||
#endif
|
||||
#if AXIS_HAS_STEALTHCHOP(E0)
|
||||
TMC_EDIT_STEP_MODE(E0, MSG_E1);
|
||||
TMC_EDIT_STEP_MODE(E0, LCD_STR_E0);
|
||||
#endif
|
||||
#if AXIS_HAS_STEALTHCHOP(E1)
|
||||
TMC_EDIT_STEP_MODE(E1, MSG_E2);
|
||||
TMC_EDIT_STEP_MODE(E1, LCD_STR_E1);
|
||||
#endif
|
||||
#if AXIS_HAS_STEALTHCHOP(E2)
|
||||
TMC_EDIT_STEP_MODE(E2, MSG_E3);
|
||||
TMC_EDIT_STEP_MODE(E2, LCD_STR_E2);
|
||||
#endif
|
||||
#if AXIS_HAS_STEALTHCHOP(E3)
|
||||
TMC_EDIT_STEP_MODE(E3, MSG_E4);
|
||||
TMC_EDIT_STEP_MODE(E3, LCD_STR_E3);
|
||||
#endif
|
||||
#if AXIS_HAS_STEALTHCHOP(E4)
|
||||
TMC_EDIT_STEP_MODE(E4, MSG_E5);
|
||||
TMC_EDIT_STEP_MODE(E4, LCD_STR_E4);
|
||||
#endif
|
||||
#if AXIS_HAS_STEALTHCHOP(E5)
|
||||
TMC_EDIT_STEP_MODE(E5, MSG_E6);
|
||||
TMC_EDIT_STEP_MODE(E5, LCD_STR_E5);
|
||||
#endif
|
||||
END_MENU();
|
||||
}
|
||||
|
@ -42,27 +42,6 @@
|
||||
#include "../../module/tool_change.h"
|
||||
#endif
|
||||
|
||||
// Refresh the E factor after changing flow
|
||||
#if EXTRUDERS
|
||||
void _lcd_refresh_e_factor_0() { planner.refresh_e_factor(0); }
|
||||
#if EXTRUDERS > 1
|
||||
void _lcd_refresh_e_factor() { planner.refresh_e_factor(active_extruder); }
|
||||
void _lcd_refresh_e_factor_1() { planner.refresh_e_factor(1); }
|
||||
#if EXTRUDERS > 2
|
||||
void _lcd_refresh_e_factor_2() { planner.refresh_e_factor(2); }
|
||||
#if EXTRUDERS > 3
|
||||
void _lcd_refresh_e_factor_3() { planner.refresh_e_factor(3); }
|
||||
#if EXTRUDERS > 4
|
||||
void _lcd_refresh_e_factor_4() { planner.refresh_e_factor(4); }
|
||||
#if EXTRUDERS > 5
|
||||
void _lcd_refresh_e_factor_5() { planner.refresh_e_factor(5); }
|
||||
#endif // EXTRUDERS > 5
|
||||
#endif // EXTRUDERS > 4
|
||||
#endif // EXTRUDERS > 3
|
||||
#endif // EXTRUDERS > 2
|
||||
#endif // EXTRUDERS > 1
|
||||
#endif // EXTRUDERS
|
||||
|
||||
#if ENABLED(BABYSTEPPING)
|
||||
|
||||
#include "../../feature/babystep.h"
|
||||
@ -111,13 +90,11 @@
|
||||
#if ENABLED(BABYSTEP_XY)
|
||||
void _lcd_babystep_x() { _lcd_babystep(X_AXIS, PSTR(MSG_BABYSTEP_X)); }
|
||||
void _lcd_babystep_y() { _lcd_babystep(Y_AXIS, PSTR(MSG_BABYSTEP_Y)); }
|
||||
void lcd_babystep_x() { _lcd_babystep_go(_lcd_babystep_x); }
|
||||
void lcd_babystep_y() { _lcd_babystep_go(_lcd_babystep_y); }
|
||||
#endif
|
||||
|
||||
#if DISABLED(BABYSTEP_ZPROBE_OFFSET)
|
||||
void _lcd_babystep_z() { _lcd_babystep(Z_AXIS, PSTR(MSG_BABYSTEP_Z)); }
|
||||
void lcd_babystep_z() { _lcd_babystep_go(_lcd_babystep_z); }
|
||||
void lcd_babystep_z() { _lcd_babystep_go(_lcd_babystep_z); }
|
||||
#endif
|
||||
|
||||
#endif // BABYSTEPPING
|
||||
@ -143,9 +120,9 @@ void menu_tune() {
|
||||
// Nozzle [1-4]:
|
||||
//
|
||||
#if HOTENDS == 1
|
||||
EDIT_ITEM_FAST(int3, MSG_NOZZLE, &thermalManager.temp_hotend[0].target, 0, HEATER_0_MAXTEMP - 15, thermalManager.start_watching_E0);
|
||||
EDIT_ITEM_FAST(int3, MSG_NOZZLE, &thermalManager.temp_hotend[0].target, 0, HEATER_0_MAXTEMP - 15, [](){ thermalManager.start_watching_hotend(0); });
|
||||
#elif HOTENDS > 1
|
||||
#define EDIT_NOZZLE(N) EDIT_ITEM_FAST(int3, MSG_NOZZLE MSG_LCD_N##N, &thermalManager.temp_hotend[N].target, 0, HEATER_##N##_MAXTEMP - 15, thermalManager.start_watching_E##N)
|
||||
#define EDIT_NOZZLE(N) EDIT_ITEM_FAST(int3, MSG_NOZZLE LCD_STR_N##N, &thermalManager.temp_hotend[N].target, 0, HEATER_##N##_MAXTEMP - 15, [](){ thermalManager.start_watching_hotend(N); })
|
||||
EDIT_NOZZLE(0);
|
||||
EDIT_NOZZLE(1);
|
||||
#if HOTENDS > 2
|
||||
@ -178,19 +155,22 @@ void menu_tune() {
|
||||
//
|
||||
#if FAN_COUNT > 0
|
||||
#if HAS_FAN0
|
||||
EDIT_ITEM_FAST(percent, MSG_FAN_SPEED FAN_SPEED_1_SUFFIX, &thermalManager.lcd_tmpfan_speed[0], 0, 255, thermalManager.lcd_setFanSpeed0);
|
||||
editable.uint8 = thermalManager.fan_speed[0];
|
||||
EDIT_ITEM_FAST(percent, MSG_FAN_SPEED FAN_SPEED_1_SUFFIX, &editable.uint8, 0, 255, [](){ thermalManager.set_fan_speed(0, editable.uint8); });
|
||||
#if ENABLED(EXTRA_FAN_SPEED)
|
||||
EDIT_ITEM_FAST(percent, MSG_EXTRA_FAN_SPEED FAN_SPEED_1_SUFFIX, &thermalManager.new_fan_speed[0], 3, 255);
|
||||
#endif
|
||||
#endif
|
||||
#if HAS_FAN1 || (ENABLED(SINGLENOZZLE) && EXTRUDERS > 1)
|
||||
EDIT_ITEM_FAST(percent, MSG_FAN_SPEED " 2", &thermalManager.lcd_tmpfan_speed[1], 0, 255, thermalManager.lcd_setFanSpeed1);
|
||||
editable.uint8 = thermalManager.fan_speed[1];
|
||||
EDIT_ITEM_FAST(percent, MSG_FAN_SPEED " 2", &editable.uint8, 0, 255, [](){ thermalManager.set_fan_speed(1, editable.uint8); });
|
||||
#if ENABLED(EXTRA_FAN_SPEED)
|
||||
EDIT_ITEM_FAST(percent, MSG_EXTRA_FAN_SPEED " 2", &thermalManager.new_fan_speed[1], 3, 255);
|
||||
#endif
|
||||
#endif
|
||||
#if HAS_FAN2 || (ENABLED(SINGLENOZZLE) && EXTRUDERS > 2)
|
||||
EDIT_ITEM_FAST(percent, MSG_FAN_SPEED " 3", &thermalManager.lcd_tmpfan_speed[2], 0, 255, thermalManager.lcd_setFanSpeed2);
|
||||
editable.uint8 = thermalManager.fan_speed[2];
|
||||
EDIT_ITEM_FAST(percent, MSG_FAN_SPEED " 3", &editable.uint8, 0, 255, [](){ thermalManager.set_fan_speed(2, editable.uint8); });
|
||||
#if ENABLED(EXTRA_FAN_SPEED)
|
||||
EDIT_ITEM_FAST(percent, MSG_EXTRA_FAN_SPEED " 3", &thermalManager.new_fan_speed[2], 3, 255);
|
||||
#endif
|
||||
@ -202,10 +182,10 @@ void menu_tune() {
|
||||
// Flow [1-5]:
|
||||
//
|
||||
#if EXTRUDERS == 1
|
||||
EDIT_ITEM(int3, MSG_FLOW, &planner.flow_percentage[0], 10, 999, _lcd_refresh_e_factor_0);
|
||||
EDIT_ITEM(int3, MSG_FLOW, &planner.flow_percentage[0], 10, 999, [](){ planner.refresh_e_factor(0); });
|
||||
#elif EXTRUDERS
|
||||
EDIT_ITEM(int3, MSG_FLOW, &planner.flow_percentage[active_extruder], 10, 999, _lcd_refresh_e_factor);
|
||||
#define EDIT_FLOW(N) EDIT_ITEM(int3, MSG_FLOW MSG_LCD_N##N, &planner.flow_percentage[N], 10, 999, _lcd_refresh_e_factor_##N)
|
||||
EDIT_ITEM(int3, MSG_FLOW, &planner.flow_percentage[active_extruder], 10, 999, [](){ planner.refresh_e_factor(active_extruder); });
|
||||
#define EDIT_FLOW(N) EDIT_ITEM(int3, MSG_FLOW LCD_STR_N##N, &planner.flow_percentage[N], 10, 999, [](){ planner.refresh_e_factor(N); })
|
||||
EDIT_FLOW(0);
|
||||
EDIT_FLOW(1);
|
||||
#if EXTRUDERS > 2
|
||||
@ -229,8 +209,8 @@ void menu_tune() {
|
||||
//
|
||||
#if ENABLED(BABYSTEPPING)
|
||||
#if ENABLED(BABYSTEP_XY)
|
||||
SUBMENU(MSG_BABYSTEP_X, lcd_babystep_x);
|
||||
SUBMENU(MSG_BABYSTEP_Y, lcd_babystep_y);
|
||||
SUBMENU(MSG_BABYSTEP_X, [](){ _lcd_babystep_go(_lcd_babystep_x); });
|
||||
SUBMENU(MSG_BABYSTEP_Y, [](){ _lcd_babystep_go(_lcd_babystep_y); });
|
||||
#endif
|
||||
#if ENABLED(BABYSTEP_ZPROBE_OFFSET)
|
||||
SUBMENU(MSG_ZPROBE_ZOFFSET, lcd_babystep_zoffset);
|
||||
|
@ -223,15 +223,6 @@ void _lcd_ubl_validate_mesh() {
|
||||
END_MENU();
|
||||
}
|
||||
|
||||
/**
|
||||
* UBL Grid Leveling Command
|
||||
*/
|
||||
void _lcd_ubl_grid_level_cmd() {
|
||||
char ubl_lcd_gcode[12];
|
||||
sprintf_P(ubl_lcd_gcode, PSTR("G29 J%i"), side_points);
|
||||
lcd_enqueue_one_now(ubl_lcd_gcode);
|
||||
}
|
||||
|
||||
/**
|
||||
* UBL Grid Leveling submenu
|
||||
*
|
||||
@ -243,7 +234,11 @@ void _lcd_ubl_grid_level() {
|
||||
START_MENU();
|
||||
BACK_ITEM(MSG_UBL_TOOLS);
|
||||
EDIT_ITEM(int3, MSG_UBL_SIDE_POINTS, &side_points, 2, 6);
|
||||
ACTION_ITEM(MSG_UBL_MESH_LEVEL, _lcd_ubl_grid_level_cmd);
|
||||
ACTION_ITEM(MSG_UBL_MESH_LEVEL, [](){
|
||||
char ubl_lcd_gcode[12];
|
||||
sprintf_P(ubl_lcd_gcode, PSTR("G29 J%i"), side_points);
|
||||
lcd_enqueue_one_now(ubl_lcd_gcode);
|
||||
});
|
||||
END_MENU();
|
||||
}
|
||||
|
||||
@ -621,7 +616,8 @@ void _lcd_ubl_level_bed() {
|
||||
SUBMENU(MSG_UBL_TOOLS, _menu_ubl_tools);
|
||||
GCODES_ITEM(MSG_UBL_INFO_UBL, PSTR("G29 W"));
|
||||
#if ENABLED(ENABLE_LEVELING_FADE_HEIGHT)
|
||||
EDIT_ITEM_FAST(float3, MSG_Z_FADE_HEIGHT, &lcd_z_fade_height, 0, 100, _lcd_set_z_fade_height);
|
||||
editable.decimal = planner.z_fade_height;
|
||||
EDIT_ITEM_FAST(float3, MSG_Z_FADE_HEIGHT, &editable.decimal, 0, 100, [](){ set_z_fade_height(editable.decimal); });
|
||||
#endif
|
||||
END_MENU();
|
||||
}
|
||||
|
@ -103,8 +103,8 @@ Temperature thermalManager;
|
||||
#else
|
||||
#define _CHAMBER_PSTR(M,E)
|
||||
#endif
|
||||
#define _E_PSTR(M,E,N) ((HOTENDS) >= (N) && (E) == (N)-1) ? PSTR(MSG_E##N " " M) :
|
||||
#define TEMP_ERR_PSTR(M,E) _BED_PSTR(M##_BED,E) _CHAMBER_PSTR(M##_CHAMBER,E) _E_PSTR(M,E,2) _E_PSTR(M,E,3) _E_PSTR(M,E,4) _E_PSTR(M,E,5) _E_PSTR(M,E,6) PSTR(MSG_E1 " " M)
|
||||
#define _E_PSTR(M,E,N) ((HOTENDS) > (N) && (E) == (N)) ? PSTR(LCD_STR_E##N " " M) :
|
||||
#define TEMP_ERR_PSTR(M,E) _BED_PSTR(M##_BED,E) _CHAMBER_PSTR(M##_CHAMBER,E) _E_PSTR(M,E,1) _E_PSTR(M,E,2) _E_PSTR(M,E,3) _E_PSTR(M,E,4) _E_PSTR(M,E,5) PSTR(LCD_STR_E0 " " M)
|
||||
|
||||
// public:
|
||||
|
||||
@ -157,18 +157,6 @@ Temperature thermalManager;
|
||||
uint8_t Temperature::fan_speed_scaler[FAN_COUNT] = ARRAY_N(FAN_COUNT, 128, 128, 128, 128, 128, 128);
|
||||
#endif
|
||||
|
||||
#if HAS_LCD_MENU
|
||||
|
||||
uint8_t Temperature::lcd_tmpfan_speed[
|
||||
#if ENABLED(SINGLENOZZLE)
|
||||
_MAX(EXTRUDERS, FAN_COUNT)
|
||||
#else
|
||||
FAN_COUNT
|
||||
#endif
|
||||
]; // = { 0 }
|
||||
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Set the print fan speed for a target extruder
|
||||
*/
|
||||
@ -187,9 +175,6 @@ Temperature thermalManager;
|
||||
if (target >= FAN_COUNT) return;
|
||||
|
||||
fan_speed[target] = speed;
|
||||
#if HAS_LCD_MENU
|
||||
lcd_tmpfan_speed[target] = speed;
|
||||
#endif
|
||||
}
|
||||
|
||||
#if EITHER(PROBING_FANS_OFF, ADVANCED_PAUSE_FANS_PAUSE)
|
||||
|
@ -493,30 +493,6 @@ class Temperature {
|
||||
static void set_temp_fan_speed(const uint8_t fan, const uint16_t tmp_temp);
|
||||
#endif
|
||||
|
||||
#if HAS_LCD_MENU
|
||||
|
||||
static uint8_t lcd_tmpfan_speed[
|
||||
#if ENABLED(SINGLENOZZLE)
|
||||
_MAX(EXTRUDERS, FAN_COUNT)
|
||||
#else
|
||||
FAN_COUNT
|
||||
#endif
|
||||
];
|
||||
|
||||
static inline void lcd_setFanSpeed(const uint8_t target) { set_fan_speed(target, lcd_tmpfan_speed[target]); }
|
||||
|
||||
#if HAS_FAN0
|
||||
FORCE_INLINE static void lcd_setFanSpeed0() { lcd_setFanSpeed(0); }
|
||||
#endif
|
||||
#if HAS_FAN1 || (ENABLED(SINGLENOZZLE) && EXTRUDERS > 1)
|
||||
FORCE_INLINE static void lcd_setFanSpeed1() { lcd_setFanSpeed(1); }
|
||||
#endif
|
||||
#if HAS_FAN2 || (ENABLED(SINGLENOZZLE) && EXTRUDERS > 2)
|
||||
FORCE_INLINE static void lcd_setFanSpeed2() { lcd_setFanSpeed(2); }
|
||||
#endif
|
||||
|
||||
#endif // HAS_LCD_MENU
|
||||
|
||||
#if EITHER(PROBING_FANS_OFF, ADVANCED_PAUSE_FANS_PAUSE)
|
||||
void set_fans_paused(const bool p);
|
||||
#endif
|
||||
@ -595,15 +571,6 @@ class Temperature {
|
||||
|
||||
#if HOTENDS
|
||||
|
||||
#if HAS_LCD_MENU
|
||||
static inline void start_watching_E0() { start_watching_hotend(0); }
|
||||
static inline void start_watching_E1() { start_watching_hotend(1); }
|
||||
static inline void start_watching_E2() { start_watching_hotend(2); }
|
||||
static inline void start_watching_E3() { start_watching_hotend(3); }
|
||||
static inline void start_watching_E4() { start_watching_hotend(4); }
|
||||
static inline void start_watching_E5() { start_watching_hotend(5); }
|
||||
#endif
|
||||
|
||||
static void setTargetHotend(const int16_t celsius, const uint8_t E_NAME) {
|
||||
const uint8_t ee = HOTEND_INDEX;
|
||||
#ifdef MILLISECONDS_PREHEAT_TIME
|
||||
|
Loading…
Reference in New Issue
Block a user