|
|
@ -1282,6 +1282,14 @@ KeepDrawing: |
|
|
|
//
|
|
|
|
MENU_BACK(MSG_MAIN); |
|
|
|
|
|
|
|
//
|
|
|
|
// Move Axis
|
|
|
|
//
|
|
|
|
#if ENABLED(DELTA) |
|
|
|
if (axis_homed[Z_AXIS]) |
|
|
|
#endif |
|
|
|
MENU_ITEM(submenu, MSG_MOVE_AXIS, lcd_move_menu); |
|
|
|
|
|
|
|
//
|
|
|
|
// Auto Home
|
|
|
|
//
|
|
|
@ -1309,11 +1317,6 @@ KeepDrawing: |
|
|
|
MENU_ITEM(submenu, MSG_LEVEL_BED, lcd_level_bed); |
|
|
|
#endif |
|
|
|
|
|
|
|
//
|
|
|
|
// Move Axis
|
|
|
|
//
|
|
|
|
MENU_ITEM(submenu, MSG_MOVE_AXIS, lcd_move_menu); |
|
|
|
|
|
|
|
//
|
|
|
|
// Disable Steppers
|
|
|
|
//
|
|
|
@ -1557,58 +1560,48 @@ KeepDrawing: |
|
|
|
* |
|
|
|
*/ |
|
|
|
|
|
|
|
#if IS_KINEMATIC |
|
|
|
#define _MOVE_XYZ_ALLOWED (axis_homed[X_AXIS] && axis_homed[Y_AXIS] && axis_homed[Z_AXIS]) |
|
|
|
#else |
|
|
|
#define _MOVE_XYZ_ALLOWED true |
|
|
|
#endif |
|
|
|
screenFunc_t _manual_move_func_ptr; |
|
|
|
|
|
|
|
void _lcd_move_menu_axis() { |
|
|
|
START_MENU(); |
|
|
|
MENU_BACK(MSG_MOVE_AXIS); |
|
|
|
void lcd_move_menu_10mm() { move_menu_scale = 10.0; lcd_goto_screen(_manual_move_func_ptr); } |
|
|
|
void lcd_move_menu_1mm() { move_menu_scale = 1.0; lcd_goto_screen(_manual_move_func_ptr); } |
|
|
|
void lcd_move_menu_01mm() { move_menu_scale = 0.1; lcd_goto_screen(_manual_move_func_ptr); } |
|
|
|
|
|
|
|
if (_MOVE_XYZ_ALLOWED) { |
|
|
|
MENU_ITEM(submenu, MSG_MOVE_X, lcd_move_x); |
|
|
|
MENU_ITEM(submenu, MSG_MOVE_Y, lcd_move_y); |
|
|
|
} |
|
|
|
|
|
|
|
if (move_menu_scale < 10.0) { |
|
|
|
if (_MOVE_XYZ_ALLOWED) MENU_ITEM(submenu, MSG_MOVE_Z, lcd_move_z); |
|
|
|
|
|
|
|
#if ENABLED(SWITCHING_EXTRUDER) |
|
|
|
if (active_extruder) |
|
|
|
MENU_ITEM(gcode, MSG_SELECT " " MSG_E1, PSTR("T0")); |
|
|
|
else |
|
|
|
MENU_ITEM(gcode, MSG_SELECT " " MSG_E2, PSTR("T1")); |
|
|
|
#endif |
|
|
|
|
|
|
|
MENU_ITEM(submenu, MSG_MOVE_E, lcd_move_e); |
|
|
|
#if E_MANUAL > 1 |
|
|
|
MENU_ITEM(submenu, MSG_MOVE_E MSG_MOVE_E1, lcd_move_e0); |
|
|
|
MENU_ITEM(submenu, MSG_MOVE_E MSG_MOVE_E2, lcd_move_e1); |
|
|
|
#if E_MANUAL > 2 |
|
|
|
MENU_ITEM(submenu, MSG_MOVE_E MSG_MOVE_E3, lcd_move_e2); |
|
|
|
#if E_MANUAL > 3 |
|
|
|
MENU_ITEM(submenu, MSG_MOVE_E MSG_MOVE_E4, lcd_move_e3); |
|
|
|
#endif |
|
|
|
#endif |
|
|
|
#endif |
|
|
|
void _lcd_move_distance_menu(AxisEnum axis, screenFunc_t func) { |
|
|
|
_manual_move_func_ptr = func; |
|
|
|
START_MENU(); |
|
|
|
if (LCD_HEIGHT >= 4) { |
|
|
|
switch(axis) { |
|
|
|
case X_AXIS: |
|
|
|
STATIC_ITEM(MSG_MOVE_X, true, true); break; |
|
|
|
case Y_AXIS: |
|
|
|
STATIC_ITEM(MSG_MOVE_Y, true, true); break; |
|
|
|
case Z_AXIS: |
|
|
|
STATIC_ITEM(MSG_MOVE_Z, true, true); break; |
|
|
|
default: |
|
|
|
STATIC_ITEM(MSG_MOVE_E, true, true); break; |
|
|
|
} |
|
|
|
} |
|
|
|
MENU_BACK(MSG_MOVE_AXIS); |
|
|
|
if (axis == X_AXIS || axis == Y_AXIS) |
|
|
|
MENU_ITEM(submenu, MSG_MOVE_10MM, lcd_move_menu_10mm); |
|
|
|
MENU_ITEM(submenu, MSG_MOVE_1MM, lcd_move_menu_1mm); |
|
|
|
MENU_ITEM(submenu, MSG_MOVE_01MM, lcd_move_menu_01mm); |
|
|
|
END_MENU(); |
|
|
|
} |
|
|
|
|
|
|
|
void lcd_move_menu_10mm() { |
|
|
|
move_menu_scale = 10.0; |
|
|
|
_lcd_move_menu_axis(); |
|
|
|
} |
|
|
|
void lcd_move_menu_1mm() { |
|
|
|
move_menu_scale = 1.0; |
|
|
|
_lcd_move_menu_axis(); |
|
|
|
} |
|
|
|
void lcd_move_menu_01mm() { |
|
|
|
move_menu_scale = 0.1; |
|
|
|
_lcd_move_menu_axis(); |
|
|
|
} |
|
|
|
void lcd_move_get_x_amount() { _lcd_move_distance_menu(X_AXIS, lcd_move_x); } |
|
|
|
void lcd_move_get_y_amount() { _lcd_move_distance_menu(Y_AXIS, lcd_move_y); } |
|
|
|
void lcd_move_get_z_amount() { _lcd_move_distance_menu(Z_AXIS, lcd_move_z); } |
|
|
|
void lcd_move_get_e_amount() { _lcd_move_distance_menu(E_AXIS, lcd_move_e); } |
|
|
|
#if E_MANUAL > 1 |
|
|
|
void lcd_move_get_e0_amount() { _lcd_move_distance_menu(E_AXIS, lcd_move_e0); } |
|
|
|
void lcd_move_get_e1_amount() { _lcd_move_distance_menu(E_AXIS, lcd_move_e1); } |
|
|
|
#if E_MANUAL > 2 |
|
|
|
void lcd_move_get_e2_amount() { _lcd_move_distance_menu(E_AXIS, lcd_move_e2); } |
|
|
|
#if E_MANUAL > 3 |
|
|
|
void lcd_move_get_e3_amount() { _lcd_move_distance_menu(E_AXIS, lcd_move_e3); } |
|
|
|
#endif |
|
|
|
#endif |
|
|
|
#endif |
|
|
|
|
|
|
|
/**
|
|
|
|
* |
|
|
@ -1616,16 +1609,63 @@ KeepDrawing: |
|
|
|
* |
|
|
|
*/ |
|
|
|
|
|
|
|
#if IS_KINEMATIC |
|
|
|
#define _MOVE_XYZ_ALLOWED (axis_homed[X_AXIS] && axis_homed[Y_AXIS] && axis_homed[Z_AXIS]) |
|
|
|
#if ENABLED(DELTA) |
|
|
|
#define _MOVE_XY_ALLOWED (current_position[Z_AXIS] <= delta_clip_start_height) |
|
|
|
void lcd_lower_z_to_clip_height() { |
|
|
|
if (!no_reentrance) { |
|
|
|
current_position[Z_AXIS] = delta_clip_start_height; |
|
|
|
line_to_current(Z_AXIS); |
|
|
|
lcd_synchronize(); |
|
|
|
} |
|
|
|
} |
|
|
|
#else |
|
|
|
#define _MOVE_XY_ALLOWED true |
|
|
|
#endif |
|
|
|
#else |
|
|
|
#define _MOVE_XYZ_ALLOWED true |
|
|
|
#define _MOVE_XY_ALLOWED true |
|
|
|
#endif |
|
|
|
|
|
|
|
void lcd_move_menu() { |
|
|
|
START_MENU(); |
|
|
|
MENU_BACK(MSG_PREPARE); |
|
|
|
|
|
|
|
if (_MOVE_XYZ_ALLOWED) |
|
|
|
MENU_ITEM(submenu, MSG_MOVE_10MM, lcd_move_menu_10mm); |
|
|
|
if (_MOVE_XYZ_ALLOWED) { |
|
|
|
if (_MOVE_XY_ALLOWED) { |
|
|
|
MENU_ITEM(submenu, MSG_MOVE_X, lcd_move_get_x_amount); |
|
|
|
MENU_ITEM(submenu, MSG_MOVE_Y, lcd_move_get_y_amount); |
|
|
|
} |
|
|
|
#if ENABLED(DELTA) |
|
|
|
else |
|
|
|
MENU_ITEM(function, MSG_FREE_XY, lcd_lower_z_to_clip_height); |
|
|
|
#endif |
|
|
|
|
|
|
|
MENU_ITEM(submenu, MSG_MOVE_Z, lcd_move_get_z_amount); |
|
|
|
} |
|
|
|
else |
|
|
|
MENU_ITEM(gcode, MSG_AUTO_HOME, PSTR("G28")); |
|
|
|
|
|
|
|
#if ENABLED(SWITCHING_EXTRUDER) |
|
|
|
if (active_extruder) |
|
|
|
MENU_ITEM(gcode, MSG_SELECT " " MSG_E1, PSTR("T0")); |
|
|
|
else |
|
|
|
MENU_ITEM(gcode, MSG_SELECT " " MSG_E2, PSTR("T1")); |
|
|
|
#endif |
|
|
|
|
|
|
|
MENU_ITEM(submenu, MSG_MOVE_E, lcd_move_get_e_amount); |
|
|
|
#if E_MANUAL > 1 |
|
|
|
MENU_ITEM(submenu, MSG_MOVE_E MSG_MOVE_E1, lcd_move_get_e0_amount); |
|
|
|
MENU_ITEM(submenu, MSG_MOVE_E MSG_MOVE_E2, lcd_move_get_e1_amount); |
|
|
|
#if E_MANUAL > 2 |
|
|
|
MENU_ITEM(submenu, MSG_MOVE_E MSG_MOVE_E3, lcd_move_get_e2_amount); |
|
|
|
#if E_MANUAL > 3 |
|
|
|
MENU_ITEM(submenu, MSG_MOVE_E MSG_MOVE_E4, lcd_move_get_e3_amount); |
|
|
|
#endif |
|
|
|
#endif |
|
|
|
#endif |
|
|
|
|
|
|
|
MENU_ITEM(submenu, MSG_MOVE_1MM, lcd_move_menu_1mm); |
|
|
|
MENU_ITEM(submenu, MSG_MOVE_01MM, lcd_move_menu_01mm); |
|
|
|
//TODO:X,Y,Z,E
|
|
|
|
END_MENU(); |
|
|
|
} |
|
|
|
|
|
|
|