snmm: M702 (unload filament) extended, snmm stop print: user is asked which filaments to unload
This commit is contained in:
parent
bc61622d21
commit
11a86a6a9a
|
|
@ -5444,10 +5444,13 @@ case 404: //M404 Enter the nominal filament width (3mm, 1.75mm ) N<3.0> or disp
|
||||||
{
|
{
|
||||||
#ifdef SNMM
|
#ifdef SNMM
|
||||||
if (code_seen('U')) {
|
if (code_seen('U')) {
|
||||||
extr_unload_used();
|
extr_unload_used(); //unload all filaments which were used in current print
|
||||||
|
}
|
||||||
|
else if (code_seen('C')) {
|
||||||
|
extr_unload(); //unload just current filament
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
extr_unload_all();
|
extr_unload_all(); //unload all filaments
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
custom_message = true;
|
custom_message = true;
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,11 @@ const char * const MSG_ADJUSTZ_LANG_TABLE[LANG_NUM] PROGMEM = {
|
||||||
MSG_ADJUSTZ_DE
|
MSG_ADJUSTZ_DE
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const char MSG_ALL_EN[] PROGMEM = "All";
|
||||||
|
const char * const MSG_ALL_LANG_TABLE[1] PROGMEM = {
|
||||||
|
MSG_ALL_EN
|
||||||
|
};
|
||||||
|
|
||||||
const char MSG_AMAX_EN[] PROGMEM = "Amax ";
|
const char MSG_AMAX_EN[] PROGMEM = "Amax ";
|
||||||
const char * const MSG_AMAX_LANG_TABLE[1] PROGMEM = {
|
const char * const MSG_AMAX_LANG_TABLE[1] PROGMEM = {
|
||||||
MSG_AMAX_EN
|
MSG_AMAX_EN
|
||||||
|
|
@ -700,6 +705,11 @@ const char * const MSG_COUNT_X_LANG_TABLE[1] PROGMEM = {
|
||||||
MSG_COUNT_X_EN
|
MSG_COUNT_X_EN
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const char MSG_CURRENT_EN[] PROGMEM = "Current";
|
||||||
|
const char * const MSG_CURRENT_LANG_TABLE[1] PROGMEM = {
|
||||||
|
MSG_CURRENT_EN
|
||||||
|
};
|
||||||
|
|
||||||
const char MSG_DISABLE_STEPPERS_EN[] PROGMEM = "Disable steppers";
|
const char MSG_DISABLE_STEPPERS_EN[] PROGMEM = "Disable steppers";
|
||||||
const char MSG_DISABLE_STEPPERS_CZ[] PROGMEM = "Vypnout motory";
|
const char MSG_DISABLE_STEPPERS_CZ[] PROGMEM = "Vypnout motory";
|
||||||
const char MSG_DISABLE_STEPPERS_IT[] PROGMEM = "Disabilit motori";
|
const char MSG_DISABLE_STEPPERS_IT[] PROGMEM = "Disabilit motori";
|
||||||
|
|
@ -3154,6 +3164,11 @@ const char * const MSG_USB_PRINTING_LANG_TABLE[LANG_NUM] PROGMEM = {
|
||||||
MSG_USB_PRINTING_DE
|
MSG_USB_PRINTING_DE
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const char MSG_USED_EN[] PROGMEM = "Used";
|
||||||
|
const char * const MSG_USED_LANG_TABLE[1] PROGMEM = {
|
||||||
|
MSG_USED_EN
|
||||||
|
};
|
||||||
|
|
||||||
const char MSG_USERWAIT_EN[] PROGMEM = "Wait for user...";
|
const char MSG_USERWAIT_EN[] PROGMEM = "Wait for user...";
|
||||||
const char MSG_USERWAIT_IT[] PROGMEM = "Attendendo utente";
|
const char MSG_USERWAIT_IT[] PROGMEM = "Attendendo utente";
|
||||||
const char MSG_USERWAIT_ES[] PROGMEM = "Esperando ordenes";
|
const char MSG_USERWAIT_ES[] PROGMEM = "Esperando ordenes";
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,9 @@ extern unsigned char lang_selected;
|
||||||
extern const char* const MSG_ACTIVE_EXTRUDER_LANG_TABLE[1];
|
extern const char* const MSG_ACTIVE_EXTRUDER_LANG_TABLE[1];
|
||||||
#define MSG_ACTIVE_EXTRUDER LANG_TABLE_SELECT_EXPLICIT(MSG_ACTIVE_EXTRUDER_LANG_TABLE, 0)
|
#define MSG_ACTIVE_EXTRUDER LANG_TABLE_SELECT_EXPLICIT(MSG_ACTIVE_EXTRUDER_LANG_TABLE, 0)
|
||||||
extern const char* const MSG_ADJUSTZ_LANG_TABLE[LANG_NUM];
|
extern const char* const MSG_ADJUSTZ_LANG_TABLE[LANG_NUM];
|
||||||
#define MSG_ADJUSTZ LANG_TABLE_SELECT(MSG_ADJUSTZ_LANG_TABLE)
|
#define MSG_ADJUSTZ LANG_TABLE_SELECT(MSG_ADJUSTZ_LANG_TABLE)
|
||||||
|
extern const char* const MSG_ALL_LANG_TABLE[1];
|
||||||
|
#define MSG_ALL LANG_TABLE_SELECT_EXPLICIT(MSG_ALL_LANG_TABLE, 0)
|
||||||
extern const char* const MSG_AMAX_LANG_TABLE[1];
|
extern const char* const MSG_AMAX_LANG_TABLE[1];
|
||||||
#define MSG_AMAX LANG_TABLE_SELECT_EXPLICIT(MSG_AMAX_LANG_TABLE, 0)
|
#define MSG_AMAX LANG_TABLE_SELECT_EXPLICIT(MSG_AMAX_LANG_TABLE, 0)
|
||||||
extern const char* const MSG_AUTHOR_LANG_TABLE[1];
|
extern const char* const MSG_AUTHOR_LANG_TABLE[1];
|
||||||
|
|
@ -140,6 +142,8 @@ extern const char* const MSG_CORRECTLY_LANG_TABLE[LANG_NUM];
|
||||||
#define MSG_CORRECTLY LANG_TABLE_SELECT(MSG_CORRECTLY_LANG_TABLE)
|
#define MSG_CORRECTLY LANG_TABLE_SELECT(MSG_CORRECTLY_LANG_TABLE)
|
||||||
extern const char* const MSG_COUNT_X_LANG_TABLE[1];
|
extern const char* const MSG_COUNT_X_LANG_TABLE[1];
|
||||||
#define MSG_COUNT_X LANG_TABLE_SELECT_EXPLICIT(MSG_COUNT_X_LANG_TABLE, 0)
|
#define MSG_COUNT_X LANG_TABLE_SELECT_EXPLICIT(MSG_COUNT_X_LANG_TABLE, 0)
|
||||||
|
extern const char* const MSG_CURRENT_LANG_TABLE[1];
|
||||||
|
#define MSG_CURRENT LANG_TABLE_SELECT_EXPLICIT(MSG_CURRENT_LANG_TABLE, 0)
|
||||||
extern const char* const MSG_DISABLE_STEPPERS_LANG_TABLE[LANG_NUM];
|
extern const char* const MSG_DISABLE_STEPPERS_LANG_TABLE[LANG_NUM];
|
||||||
#define MSG_DISABLE_STEPPERS LANG_TABLE_SELECT(MSG_DISABLE_STEPPERS_LANG_TABLE)
|
#define MSG_DISABLE_STEPPERS LANG_TABLE_SELECT(MSG_DISABLE_STEPPERS_LANG_TABLE)
|
||||||
extern const char* const MSG_DWELL_LANG_TABLE[LANG_NUM];
|
extern const char* const MSG_DWELL_LANG_TABLE[LANG_NUM];
|
||||||
|
|
@ -582,6 +586,8 @@ extern const char* const MSG_UNLOAD_FILAMENT_4_LANG_TABLE[LANG_NUM];
|
||||||
#define MSG_UNLOAD_FILAMENT_4 LANG_TABLE_SELECT(MSG_UNLOAD_FILAMENT_4_LANG_TABLE)
|
#define MSG_UNLOAD_FILAMENT_4 LANG_TABLE_SELECT(MSG_UNLOAD_FILAMENT_4_LANG_TABLE)
|
||||||
extern const char* const MSG_USB_PRINTING_LANG_TABLE[LANG_NUM];
|
extern const char* const MSG_USB_PRINTING_LANG_TABLE[LANG_NUM];
|
||||||
#define MSG_USB_PRINTING LANG_TABLE_SELECT(MSG_USB_PRINTING_LANG_TABLE)
|
#define MSG_USB_PRINTING LANG_TABLE_SELECT(MSG_USB_PRINTING_LANG_TABLE)
|
||||||
|
extern const char* const MSG_USED_LANG_TABLE[1];
|
||||||
|
#define MSG_USED LANG_TABLE_SELECT_EXPLICIT(MSG_USED_LANG_TABLE, 0)
|
||||||
extern const char* const MSG_USERWAIT_LANG_TABLE[LANG_NUM];
|
extern const char* const MSG_USERWAIT_LANG_TABLE[LANG_NUM];
|
||||||
#define MSG_USERWAIT LANG_TABLE_SELECT(MSG_USERWAIT_LANG_TABLE)
|
#define MSG_USERWAIT LANG_TABLE_SELECT(MSG_USERWAIT_LANG_TABLE)
|
||||||
extern const char* const MSG_VMIN_LANG_TABLE[1];
|
extern const char* const MSG_VMIN_LANG_TABLE[1];
|
||||||
|
|
|
||||||
|
|
@ -293,5 +293,8 @@
|
||||||
#define(length=20, lines=1) MSG_TEMP_CALIBRATION_ON "Temp. cal. [ON]"
|
#define(length=20, lines=1) MSG_TEMP_CALIBRATION_ON "Temp. cal. [ON]"
|
||||||
#define(length=20, lines=1) MSG_TEMP_CALIBRATION_OFF "Temp. cal. [OFF]"
|
#define(length=20, lines=1) MSG_TEMP_CALIBRATION_OFF "Temp. cal. [OFF]"
|
||||||
#define(length=20, lines=1) MSG_PREPARE_FILAMENT "Prepare new filament"
|
#define(length=20, lines=1) MSG_PREPARE_FILAMENT "Prepare new filament"
|
||||||
|
#define(length=19, lines=1) MSG_ALL "All"
|
||||||
|
#define(length=19, lines=1) MSG_USED "Used"
|
||||||
|
#define(length=19, lines=1) MSG_CURRENT "Current"
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -640,7 +640,7 @@ void lcd_commands()
|
||||||
#endif
|
#endif
|
||||||
lcd_ignore_click(false);
|
lcd_ignore_click(false);
|
||||||
#ifdef SNMM
|
#ifdef SNMM
|
||||||
lcd_commands_step = 7;
|
lcd_commands_step = 8;
|
||||||
#else
|
#else
|
||||||
lcd_commands_step = 3;
|
lcd_commands_step = 3;
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -671,9 +671,17 @@ void lcd_commands()
|
||||||
lcd_commands_step = 5;
|
lcd_commands_step = 5;
|
||||||
}
|
}
|
||||||
if (lcd_commands_step == 7 && !blocks_queued()) {
|
if (lcd_commands_step == 7 && !blocks_queued()) {
|
||||||
enquecommand_P(PSTR("M702 U"));
|
switch(snmm_stop_print_menu()) {
|
||||||
|
case 0: enquecommand_P(PSTR("M702")); break;//all
|
||||||
|
case 1: enquecommand_P(PSTR("M702 U")); break; //used
|
||||||
|
case 2: enquecommand_P(PSTR("M702 C")); break; //current
|
||||||
|
default: enquecommand_P(PSTR("M702")); break;
|
||||||
|
}
|
||||||
lcd_commands_step = 3;
|
lcd_commands_step = 3;
|
||||||
}
|
}
|
||||||
|
if (lcd_commands_step == 8 && !blocks_queued()) { //step 8 is here for delay (going to next step after execution of all gcodes from step 4)
|
||||||
|
lcd_commands_step = 7;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (lcd_commands_type == 3)
|
if (lcd_commands_type == 3)
|
||||||
|
|
@ -2890,6 +2898,50 @@ void bowden_menu() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static char snmm_stop_print_menu() { //menu for choosing which filaments will be unloaded in stop print
|
||||||
|
lcd_implementation_clear();
|
||||||
|
lcd_print_at_PGM(0,0,MSG_UNLOAD_FILAMENT); lcd.print(":");
|
||||||
|
lcd.setCursor(0, 1); lcd.print(">");
|
||||||
|
lcd_print_at_PGM(1,1,MSG_ALL);
|
||||||
|
lcd_print_at_PGM(1,2,MSG_USED);
|
||||||
|
lcd_print_at_PGM(1,3,MSG_CURRENT);
|
||||||
|
char cursor_pos = 1;
|
||||||
|
int enc_dif = 0;
|
||||||
|
|
||||||
|
while (1) {
|
||||||
|
manage_heater();
|
||||||
|
manage_inactivity(true);
|
||||||
|
if (abs((enc_dif - encoderDiff)) > 4) {
|
||||||
|
|
||||||
|
if ((abs(enc_dif - encoderDiff)) > 1) {
|
||||||
|
if (enc_dif > encoderDiff) cursor_pos--;
|
||||||
|
if (enc_dif < encoderDiff) cursor_pos++;
|
||||||
|
if (cursor_pos > 3) cursor_pos = 3;
|
||||||
|
if (cursor_pos < 1) cursor_pos = 1;
|
||||||
|
|
||||||
|
lcd.setCursor(0, 1);
|
||||||
|
lcd.print(" ");
|
||||||
|
lcd.setCursor(0, 2);
|
||||||
|
lcd.print(" ");
|
||||||
|
lcd.setCursor(0, 3);
|
||||||
|
lcd.print(" ");
|
||||||
|
lcd.setCursor(0, cursor_pos);
|
||||||
|
lcd.print(">");
|
||||||
|
enc_dif = encoderDiff;
|
||||||
|
delay(100);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (lcd_clicked()) {
|
||||||
|
while (lcd_clicked());
|
||||||
|
delay(10);
|
||||||
|
while (lcd_clicked());
|
||||||
|
return(cursor_pos - 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
char reset_menu() {
|
char reset_menu() {
|
||||||
#ifdef SNMM
|
#ifdef SNMM
|
||||||
int items_no = 5;
|
int items_no = 5;
|
||||||
|
|
@ -3116,7 +3168,7 @@ static void extr_adj(int extruder) //loading filament for SNMM
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void extr_unload() { //unloads filament
|
void extr_unload() { //unloads filament
|
||||||
float tmp_motor[3] = DEFAULT_PWM_MOTOR_CURRENT;
|
float tmp_motor[3] = DEFAULT_PWM_MOTOR_CURRENT;
|
||||||
float tmp_motor_loud[3] = DEFAULT_PWM_MOTOR_CURRENT_LOUD;
|
float tmp_motor_loud[3] = DEFAULT_PWM_MOTOR_CURRENT_LOUD;
|
||||||
int8_t SilentMode;
|
int8_t SilentMode;
|
||||||
|
|
@ -3311,7 +3363,6 @@ static void fil_load_menu()
|
||||||
END_MENU();
|
END_MENU();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void fil_unload_menu()
|
static void fil_unload_menu()
|
||||||
{
|
{
|
||||||
START_MENU();
|
START_MENU();
|
||||||
|
|
|
||||||
|
|
@ -224,8 +224,8 @@ static void extr_unload_3();
|
||||||
static void lcd_disable_farm_mode();
|
static void lcd_disable_farm_mode();
|
||||||
void extr_unload_all();
|
void extr_unload_all();
|
||||||
void extr_unload_used();
|
void extr_unload_used();
|
||||||
static void extr_unload();
|
void extr_unload();
|
||||||
|
static char snmm_stop_print_menu();
|
||||||
|
|
||||||
void stack_error();
|
void stack_error();
|
||||||
static void lcd_ping_allert();
|
static void lcd_ping_allert();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue