unload filament can be repeated

This commit is contained in:
PavelSindler 2017-11-28 19:04:43 +01:00
parent 059c255a35
commit 020a7ec257
5 changed files with 64 additions and 46 deletions

View File

@ -5428,57 +5428,64 @@ case 404: //M404 Enter the nominal filament width (3mm, 1.75mm ) N<3.0> or disp
}
WRITE(BEEPER, LOW);
KEEPALIVE_STATE(IN_HANDLER);
custom_message = true;
lcd_setstatuspgm(MSG_UNLOADING_FILAMENT);
// Unload filament
if(code_seen('L'))
{
target[E_AXIS]+= code_value();
}
else
{
#ifdef SNMM
#else
#ifdef FILAMENTCHANGE_FINALRETRACT
target[E_AXIS] += FILAMENTCHANGE_FINALRETRACT;
#endif
#endif // SNMM
}
lcd_change_fil_state = 0;
while (lcd_change_fil_state == 0) {
lcd_display_message_fullscreen_P(MSG_UNLOADING_FILAMENT);
KEEPALIVE_STATE(IN_HANDLER);
custom_message = true;
lcd_setstatuspgm(MSG_UNLOADING_FILAMENT);
// Unload filament
if (code_seen('L'))
{
target[E_AXIS] += code_value();
}
else
{
#ifdef SNMM
target[E_AXIS] += 12;
plan_buffer_line(target[X_AXIS], target[Y_AXIS], target[Z_AXIS], target[E_AXIS], 3500, active_extruder);
target[E_AXIS] += 6;
plan_buffer_line(target[X_AXIS], target[Y_AXIS], target[Z_AXIS], target[E_AXIS], 5000, active_extruder);
target[E_AXIS] += (FIL_LOAD_LENGTH * -1);
plan_buffer_line(target[X_AXIS], target[Y_AXIS], target[Z_AXIS], target[E_AXIS], 5000, active_extruder);
st_synchronize();
target[E_AXIS] += (FIL_COOLING);
plan_buffer_line(target[X_AXIS], target[Y_AXIS], target[Z_AXIS], target[E_AXIS], 50, active_extruder);
target[E_AXIS] += (FIL_COOLING*-1);
plan_buffer_line(target[X_AXIS], target[Y_AXIS], target[Z_AXIS], target[E_AXIS], 50, active_extruder);
target[E_AXIS] += (bowden_length[snmm_extruder] *-1);
plan_buffer_line(target[X_AXIS], target[Y_AXIS], target[Z_AXIS], target[E_AXIS], 3000, active_extruder);
st_synchronize();
#else
// plan_buffer_line(target[X_AXIS], target[Y_AXIS], target[Z_AXIS], target[E_AXIS], FILAMENTCHANGE_RFEED, active_extruder);
plan_buffer_line(target[X_AXIS], target[Y_AXIS], target[Z_AXIS], target[E_AXIS], 3500/60, active_extruder);
#ifdef FILAMENTCHANGE_FINALRETRACT
target[E_AXIS] += FILAMENTCHANGE_FINALRETRACT;
#endif
#endif // SNMM
}
//finish moves
st_synchronize();
//disable extruder steppers so filament can be removed
disable_e0();
disable_e1();
disable_e2();
delay(100);
#ifdef SNMM
target[E_AXIS] += 12;
plan_buffer_line(target[X_AXIS], target[Y_AXIS], target[Z_AXIS], target[E_AXIS], 3500, active_extruder);
target[E_AXIS] += 6;
plan_buffer_line(target[X_AXIS], target[Y_AXIS], target[Z_AXIS], target[E_AXIS], 5000, active_extruder);
target[E_AXIS] += (FIL_LOAD_LENGTH * -1);
plan_buffer_line(target[X_AXIS], target[Y_AXIS], target[Z_AXIS], target[E_AXIS], 5000, active_extruder);
st_synchronize();
target[E_AXIS] += (FIL_COOLING);
plan_buffer_line(target[X_AXIS], target[Y_AXIS], target[Z_AXIS], target[E_AXIS], 50, active_extruder);
target[E_AXIS] += (FIL_COOLING*-1);
plan_buffer_line(target[X_AXIS], target[Y_AXIS], target[Z_AXIS], target[E_AXIS], 50, active_extruder);
target[E_AXIS] += (bowden_length[snmm_extruder] * -1);
plan_buffer_line(target[X_AXIS], target[Y_AXIS], target[Z_AXIS], target[E_AXIS], 3000, active_extruder);
st_synchronize();
#else
// plan_buffer_line(target[X_AXIS], target[Y_AXIS], target[Z_AXIS], target[E_AXIS], FILAMENTCHANGE_RFEED, active_extruder);
plan_buffer_line(target[X_AXIS], target[Y_AXIS], target[Z_AXIS], target[E_AXIS], 3500 / 60, active_extruder);
#endif // SNMM
//finish moves
st_synchronize();
//disable extruder steppers so filament can be removed
disable_e0();
disable_e1();
disable_e2();
delay(100);
KEEPALIVE_STATE(PAUSED_FOR_USER);
lcd_change_fil_state = !lcd_show_fullscreen_message_yes_no_and_wait_P(MSG_UNLOAD_SUCCESSFULL, false, false);
//lcd_return_to_status();
lcd_update_enable(true);
}
//Wait for user to insert filament
lcd_wait_interact();
//load_filament_time = millis();

View File

@ -1953,6 +1953,13 @@ const char * const MSG_UNLOAD_FILAMENT_4_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_UNLOAD_FILAMENT_4_CZ
};
const char MSG_UNLOAD_SUCCESSFULL_EN[] PROGMEM = "Repeat unloading filament?";
const char MSG_UNLOAD_SUCCESSFULL_CZ[] PROGMEM = "Opakovat vysunuti filamentu?";
const char * const MSG_UNLOAD_SUCCESSFULL_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_UNLOAD_SUCCESSFULL_EN,
MSG_UNLOAD_SUCCESSFULL_CZ
};
const char MSG_USB_PRINTING_EN[] PROGMEM = "USB printing ";
const char MSG_USB_PRINTING_CZ[] PROGMEM = "Tisk z USB ";
const char * const MSG_USB_PRINTING_LANG_TABLE[LANG_NUM] PROGMEM = {

View File

@ -652,6 +652,8 @@ extern const char* const MSG_UNLOAD_FILAMENT_3_LANG_TABLE[LANG_NUM];
#define MSG_UNLOAD_FILAMENT_3 LANG_TABLE_SELECT(MSG_UNLOAD_FILAMENT_3_LANG_TABLE)
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)
extern const char* const MSG_UNLOAD_SUCCESSFULL_LANG_TABLE[LANG_NUM];
#define MSG_UNLOAD_SUCCESSFULL LANG_TABLE_SELECT(MSG_UNLOAD_SUCCESSFULL_LANG_TABLE)
extern const char* const MSG_USB_PRINTING_LANG_TABLE[LANG_NUM];
#define MSG_USB_PRINTING LANG_TABLE_SELECT(MSG_USB_PRINTING_LANG_TABLE)
extern const char* const MSG_USED_LANG_TABLE[LANG_NUM];

View File

@ -350,4 +350,5 @@
#define MSG_REMOVE_STEEL_SHEET "Odstrante tiskovy plat z heatbed prosim."
#define MSG_PLACE_STEEL_SHEET "Umistete prosim tiskovy plat na heatbed"
#define MSG_RECOVER_PRINT "Detekovan vypadek proudu.Obnovit tisk?"
#define MSG_PRESS_TO_UNLOAD "Pro vysunuti filamentu stisknete prosim tlacitko"
#define MSG_PRESS_TO_UNLOAD "Pro vysunuti filamentu stisknete prosim tlacitko"
#define MSG_UNLOAD_SUCCESSFULL "Opakovat vysunuti filamentu?"

View File

@ -367,3 +367,4 @@
#define(length=17, lines=1) MSG_FANS_CHECK_ON "Fans check [on]"
#define(length=17, lines=1) MSG_FANS_CHECK_OFF "Fans check [off]"
#define(length=20, lines=4) MSG_PRESS_TO_UNLOAD "Please press the knob to unload filament"
#define(length=20, lines=2) MSG_UNLOAD_SUCCESSFULL "Repeat unloading filament?"