static void lcd_move_z() { #ifdef MUVE_Z_PEEL if (encoderPosition != 0) { current_position[Z_AXIS] += float((int)encoderPosition) * move_menu_scale; if (min_software_endstops && current_position[Z_AXIS] < Z_MIN_POS) current_position[Z_AXIS] = Z_MIN_POS; if (max_software_endstops && current_position[Z_AXIS] > Z_MAX_POS) current_position[Z_AXIS] = Z_MAX_POS; encoderPosition = 0; plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[Z_AXIS], manual_feedrate[Z_AXIS]/60, active_extruder); lcdDrawUpdate = 1; } if (lcdDrawUpdate) { lcd_implementation_drawedit(PSTR("Z"), ftostr31(current_position[Z_AXIS])); } if (LCD_CLICKED) { lcd_quick_feedback(); currentMenu = lcd_move_menu_axis; encoderPosition = 0; } #else if (encoderPosition != 0) { current_position[Z_AXIS] += float((int)encoderPosition) * move_menu_scale; if (min_software_endstops && current_position[Z_AXIS] < Z_MIN_POS) current_position[Z_AXIS] = Z_MIN_POS; if (max_software_endstops && current_position[Z_AXIS] > Z_MAX_POS) current_position[Z_AXIS] = Z_MAX_POS; encoderPosition = 0; #ifdef DELTA calculate_delta(current_position); plan_buffer_line(delta[X_AXIS], delta[Y_AXIS], delta[Z_AXIS], current_position[E_AXIS], manual_feedrate[Z_AXIS]/60, active_extruder); #else plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], manual_feedrate[Z_AXIS]/60, active_extruder); #endif lcdDrawUpdate = 1; } if (lcdDrawUpdate) { lcd_implementation_drawedit(PSTR("Z"), ftostr31(current_position[Z_AXIS])); } if (LCD_CLICKED) { lcd_quick_feedback(); currentMenu = lcd_move_menu_axis; encoderPosition = 0; } #endif }
static void lcd_move_e() { if (encoderPosition != 0) { current_position[E_AXIS] += float((int)encoderPosition) * move_menu_scale; encoderPosition = 0; #ifdef DELTA calculate_delta(current_position); plan_buffer_line(delta[X_AXIS], delta[Y_AXIS], delta[Z_AXIS], current_position[E_AXIS], manual_feedrate[E_AXIS]/60, active_extruder); #else plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], manual_feedrate[E_AXIS]/60, active_extruder); #endif lcdDrawUpdate = 1; } if (lcdDrawUpdate) { lcd_implementation_drawedit(PSTR("Extruder"), ftostr31(current_position[E_AXIS])); } if (LCD_CLICKED) { lcd_quick_feedback(); currentMenu = lcd_move_menu_axis; encoderPosition = 0; } }
static void lcd_move_x() { if (encoderPosition != 0) { // Original Line. // current_position[X_AXIS] += float((int)encoderPosition) * move_menu_scale; // On Prusa i3v turning the knob to the right moves the X to the left so we invert it // here. current_position[X_AXIS] -= float((int)encoderPosition) * move_menu_scale; if (current_position[X_AXIS] < X_MIN_POS) current_position[X_AXIS] = X_MIN_POS; if (current_position[X_AXIS] > X_MAX_POS) current_position[X_AXIS] = X_MAX_POS; encoderPosition = 0; plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], 600, active_extruder); lcdDrawUpdate = 1; } if (lcdDrawUpdate) { lcd_implementation_drawedit(PSTR("X"), ftostr31(current_position[X_AXIS])); } if (LCD_CLICKED) { lcd_quick_feedback(); currentMenu = lcd_move_menu_axis; encoderPosition = 0; } }
static void lcd_move_z() { if (encoderPosition != 0) { current_position[Z_AXIS] += float((int)encoderPosition) * move_menu_scale; if (current_position[Z_AXIS] < Z_MIN_POS) current_position[Z_AXIS] = Z_MIN_POS; if (current_position[Z_AXIS] > Z_MAX_POS) current_position[Z_AXIS] = Z_MAX_POS; encoderPosition = 0; prepare_move(); //plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], 60, active_extruder); lcdDrawUpdate = 1; } if (lcdDrawUpdate) { lcd_implementation_drawedit(PSTR("Z"), ftostr31(current_position[Z_AXIS])); } if (LCD_CLICKED) { lcd_quick_feedback(); currentMenu = lcd_move_menu_axis; encoderPosition = 0; } }
static void lcd_move_e() { if (blocking_enc>=millis() || LCD_CLICKED) { while (movesplanned() < 3) { current_position[E_AXIS] += 0.5; lcd_implementation_drawedit(PSTR("Extruder"), ftostr31(current_position[E_AXIS])); plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], 3, active_extruder); } }else{ lcd_quick_feedback(); currentMenu = lcd_move_menu_axis; encoderPosition = prevEncoderPosition; } }
static void _lcd_move(const char *name, int axis, int min, int max) { if (encoderPosition != 0) { refresh_cmd_timeout(); current_position[axis] += float((int)encoderPosition) * move_menu_scale; if (min_software_endstops && current_position[axis] < min) current_position[axis] = min; if (max_software_endstops && current_position[axis] > max) current_position[axis] = max; encoderPosition = 0; #ifdef DELTA calculate_delta(current_position); plan_buffer_line(delta[X_AXIS], delta[Y_AXIS], delta[Z_AXIS], current_position[E_AXIS], manual_feedrate[axis]/60, active_extruder); #else plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], manual_feedrate[axis]/60, active_extruder); #endif lcdDrawUpdate = 1; } if (lcdDrawUpdate) lcd_implementation_drawedit(name, ftostr31(current_position[axis])); if (LCD_CLICKED) lcd_goto_menu(lcd_move_menu_axis); }
static void lcd_move_e() { if (encoderPosition != 0) { current_position[E_AXIS] += float((int)encoderPosition) * move_menu_scale; encoderPosition = 0; plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], 3, active_extruder); lcdDrawUpdate = 1; } if (lcdDrawUpdate) { lcd_implementation_drawedit(PSTR("Extruder"), ftostr31(current_position[E_AXIS])); } if (LCD_CLICKED) { lcd_quick_feedback(); currentMenu = lcd_move_menu_axis; encoderPosition = 0; } }
static void lcd_fc() { if (fil_temp == 200) { setTargetHotend0(plaPreheatHotendTemp); } if (fil_temp == 230) { setTargetHotend0(absPreheatHotendTemp); } setWatch(); // heater sanity check timer if (!isHeatingHotend(0)&&(filament_seq == 0)) { filament_seq = 1; } if ((filament_seq == 0)&&(pausa_display == 0)) { pausa_display = 1; } if (filament_seq == 1) { if (st_message == 0) { lcdDrawUpdate = 2; lcd_implementation_message0(PSTR("Introducir el nuevo")); lcd_implementation_message1(PSTR("filamento y girar el ")); lcd_implementation_message2(PSTR("boton hasta que")); lcd_implementation_message3(PSTR("salga el filamento")); if (encoder_zero == 0) { encoderPosition = 0; encoder_zero = 1; } } if (encoderPosition != 0) { move_menu_scale = 1.0; current_position[E_AXIS] += float((int)encoderPosition) * move_menu_scale; encoderPosition = 0; #ifdef DELTA calculate_delta(current_position); plan_buffer_line(delta[X_AXIS], delta[Y_AXIS], delta[Z_AXIS], current_position[E_AXIS], manual_feedrate[E_AXIS]/60, active_extruder); #else plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], manual_feedrate[E_AXIS]/60, active_extruder); #endif lcdDrawUpdate = 2; st_message = 1; } if ((lcdDrawUpdate) && (st_message == 1)) { lcd_implementation_drawedit(PSTR("Extruder"), ftostr31(current_position[E_AXIS])); } } else { lcd_implementation_message4(PSTR(" Calentando...")); _draw_heater_status(6, 0); lcdDrawUpdate = 1; u8g.drawBitmapP(9,1,STATUS_SCREENBYTEWIDTH,STATUS_SCREENHEIGHT, (blink % 2) && fanSpeed ? status_screen0_bmp : status_screen1_bmp); } if ((LCD_CLICKED) || (degTargetHotend(0) == 0) || (currentMenu == lcd_status_screen)) { filament_seq = 0; st_message = 0; pausa_display = 0; encoder_zero = 0; setTargetHotend0(0); lcd_return_to_status(); } }