|
@@ -1283,6 +1283,14 @@ KeepDrawing:
|
1283
|
1283
|
MENU_BACK(MSG_MAIN);
|
1284
|
1284
|
|
1285
|
1285
|
//
|
|
1286
|
+ // Move Axis
|
|
1287
|
+ //
|
|
1288
|
+ #if ENABLED(DELTA)
|
|
1289
|
+ if (axis_homed[Z_AXIS])
|
|
1290
|
+ #endif
|
|
1291
|
+ MENU_ITEM(submenu, MSG_MOVE_AXIS, lcd_move_menu);
|
|
1292
|
+
|
|
1293
|
+ //
|
1286
|
1294
|
// Auto Home
|
1287
|
1295
|
//
|
1288
|
1296
|
MENU_ITEM(gcode, MSG_AUTO_HOME, PSTR("G28"));
|
|
@@ -1310,11 +1318,6 @@ KeepDrawing:
|
1310
|
1318
|
#endif
|
1311
|
1319
|
|
1312
|
1320
|
//
|
1313
|
|
- // Move Axis
|
1314
|
|
- //
|
1315
|
|
- MENU_ITEM(submenu, MSG_MOVE_AXIS, lcd_move_menu);
|
1316
|
|
-
|
1317
|
|
- //
|
1318
|
1321
|
// Disable Steppers
|
1319
|
1322
|
//
|
1320
|
1323
|
MENU_ITEM(gcode, MSG_DISABLE_STEPPERS, PSTR("M84"));
|
|
@@ -1557,58 +1560,48 @@ KeepDrawing:
|
1557
|
1560
|
*
|
1558
|
1561
|
*/
|
1559
|
1562
|
|
1560
|
|
- #if IS_KINEMATIC
|
1561
|
|
- #define _MOVE_XYZ_ALLOWED (axis_homed[X_AXIS] && axis_homed[Y_AXIS] && axis_homed[Z_AXIS])
|
1562
|
|
- #else
|
1563
|
|
- #define _MOVE_XYZ_ALLOWED true
|
1564
|
|
- #endif
|
|
1563
|
+ screenFunc_t _manual_move_func_ptr;
|
1565
|
1564
|
|
1566
|
|
- void _lcd_move_menu_axis() {
|
1567
|
|
- START_MENU();
|
1568
|
|
- MENU_BACK(MSG_MOVE_AXIS);
|
|
1565
|
+ void lcd_move_menu_10mm() { move_menu_scale = 10.0; lcd_goto_screen(_manual_move_func_ptr); }
|
|
1566
|
+ void lcd_move_menu_1mm() { move_menu_scale = 1.0; lcd_goto_screen(_manual_move_func_ptr); }
|
|
1567
|
+ void lcd_move_menu_01mm() { move_menu_scale = 0.1; lcd_goto_screen(_manual_move_func_ptr); }
|
1569
|
1568
|
|
1570
|
|
- if (_MOVE_XYZ_ALLOWED) {
|
1571
|
|
- MENU_ITEM(submenu, MSG_MOVE_X, lcd_move_x);
|
1572
|
|
- MENU_ITEM(submenu, MSG_MOVE_Y, lcd_move_y);
|
1573
|
|
- }
|
1574
|
|
-
|
1575
|
|
- if (move_menu_scale < 10.0) {
|
1576
|
|
- if (_MOVE_XYZ_ALLOWED) MENU_ITEM(submenu, MSG_MOVE_Z, lcd_move_z);
|
1577
|
|
-
|
1578
|
|
- #if ENABLED(SWITCHING_EXTRUDER)
|
1579
|
|
- if (active_extruder)
|
1580
|
|
- MENU_ITEM(gcode, MSG_SELECT " " MSG_E1, PSTR("T0"));
|
1581
|
|
- else
|
1582
|
|
- MENU_ITEM(gcode, MSG_SELECT " " MSG_E2, PSTR("T1"));
|
1583
|
|
- #endif
|
1584
|
|
-
|
1585
|
|
- MENU_ITEM(submenu, MSG_MOVE_E, lcd_move_e);
|
1586
|
|
- #if E_MANUAL > 1
|
1587
|
|
- MENU_ITEM(submenu, MSG_MOVE_E MSG_MOVE_E1, lcd_move_e0);
|
1588
|
|
- MENU_ITEM(submenu, MSG_MOVE_E MSG_MOVE_E2, lcd_move_e1);
|
1589
|
|
- #if E_MANUAL > 2
|
1590
|
|
- MENU_ITEM(submenu, MSG_MOVE_E MSG_MOVE_E3, lcd_move_e2);
|
1591
|
|
- #if E_MANUAL > 3
|
1592
|
|
- MENU_ITEM(submenu, MSG_MOVE_E MSG_MOVE_E4, lcd_move_e3);
|
1593
|
|
- #endif
|
1594
|
|
- #endif
|
1595
|
|
- #endif
|
|
1569
|
+ void _lcd_move_distance_menu(AxisEnum axis, screenFunc_t func) {
|
|
1570
|
+ _manual_move_func_ptr = func;
|
|
1571
|
+ START_MENU();
|
|
1572
|
+ if (LCD_HEIGHT >= 4) {
|
|
1573
|
+ switch(axis) {
|
|
1574
|
+ case X_AXIS:
|
|
1575
|
+ STATIC_ITEM(MSG_MOVE_X, true, true); break;
|
|
1576
|
+ case Y_AXIS:
|
|
1577
|
+ STATIC_ITEM(MSG_MOVE_Y, true, true); break;
|
|
1578
|
+ case Z_AXIS:
|
|
1579
|
+ STATIC_ITEM(MSG_MOVE_Z, true, true); break;
|
|
1580
|
+ default:
|
|
1581
|
+ STATIC_ITEM(MSG_MOVE_E, true, true); break;
|
|
1582
|
+ }
|
1596
|
1583
|
}
|
|
1584
|
+ MENU_BACK(MSG_MOVE_AXIS);
|
|
1585
|
+ if (axis == X_AXIS || axis == Y_AXIS)
|
|
1586
|
+ MENU_ITEM(submenu, MSG_MOVE_10MM, lcd_move_menu_10mm);
|
|
1587
|
+ MENU_ITEM(submenu, MSG_MOVE_1MM, lcd_move_menu_1mm);
|
|
1588
|
+ MENU_ITEM(submenu, MSG_MOVE_01MM, lcd_move_menu_01mm);
|
1597
|
1589
|
END_MENU();
|
1598
|
1590
|
}
|
1599
|
|
-
|
1600
|
|
- void lcd_move_menu_10mm() {
|
1601
|
|
- move_menu_scale = 10.0;
|
1602
|
|
- _lcd_move_menu_axis();
|
1603
|
|
- }
|
1604
|
|
- void lcd_move_menu_1mm() {
|
1605
|
|
- move_menu_scale = 1.0;
|
1606
|
|
- _lcd_move_menu_axis();
|
1607
|
|
- }
|
1608
|
|
- void lcd_move_menu_01mm() {
|
1609
|
|
- move_menu_scale = 0.1;
|
1610
|
|
- _lcd_move_menu_axis();
|
1611
|
|
- }
|
|
1591
|
+ void lcd_move_get_x_amount() { _lcd_move_distance_menu(X_AXIS, lcd_move_x); }
|
|
1592
|
+ void lcd_move_get_y_amount() { _lcd_move_distance_menu(Y_AXIS, lcd_move_y); }
|
|
1593
|
+ void lcd_move_get_z_amount() { _lcd_move_distance_menu(Z_AXIS, lcd_move_z); }
|
|
1594
|
+ void lcd_move_get_e_amount() { _lcd_move_distance_menu(E_AXIS, lcd_move_e); }
|
|
1595
|
+ #if E_MANUAL > 1
|
|
1596
|
+ void lcd_move_get_e0_amount() { _lcd_move_distance_menu(E_AXIS, lcd_move_e0); }
|
|
1597
|
+ void lcd_move_get_e1_amount() { _lcd_move_distance_menu(E_AXIS, lcd_move_e1); }
|
|
1598
|
+ #if E_MANUAL > 2
|
|
1599
|
+ void lcd_move_get_e2_amount() { _lcd_move_distance_menu(E_AXIS, lcd_move_e2); }
|
|
1600
|
+ #if E_MANUAL > 3
|
|
1601
|
+ void lcd_move_get_e3_amount() { _lcd_move_distance_menu(E_AXIS, lcd_move_e3); }
|
|
1602
|
+ #endif
|
|
1603
|
+ #endif
|
|
1604
|
+ #endif
|
1612
|
1605
|
|
1613
|
1606
|
/**
|
1614
|
1607
|
*
|
|
@@ -1616,16 +1609,63 @@ KeepDrawing:
|
1616
|
1609
|
*
|
1617
|
1610
|
*/
|
1618
|
1611
|
|
|
1612
|
+ #if IS_KINEMATIC
|
|
1613
|
+ #define _MOVE_XYZ_ALLOWED (axis_homed[X_AXIS] && axis_homed[Y_AXIS] && axis_homed[Z_AXIS])
|
|
1614
|
+ #if ENABLED(DELTA)
|
|
1615
|
+ #define _MOVE_XY_ALLOWED (current_position[Z_AXIS] <= delta_clip_start_height)
|
|
1616
|
+ void lcd_lower_z_to_clip_height() {
|
|
1617
|
+ if (!no_reentrance) {
|
|
1618
|
+ current_position[Z_AXIS] = delta_clip_start_height;
|
|
1619
|
+ line_to_current(Z_AXIS);
|
|
1620
|
+ lcd_synchronize();
|
|
1621
|
+ }
|
|
1622
|
+ }
|
|
1623
|
+ #else
|
|
1624
|
+ #define _MOVE_XY_ALLOWED true
|
|
1625
|
+ #endif
|
|
1626
|
+ #else
|
|
1627
|
+ #define _MOVE_XYZ_ALLOWED true
|
|
1628
|
+ #define _MOVE_XY_ALLOWED true
|
|
1629
|
+ #endif
|
|
1630
|
+
|
1619
|
1631
|
void lcd_move_menu() {
|
1620
|
1632
|
START_MENU();
|
1621
|
1633
|
MENU_BACK(MSG_PREPARE);
|
1622
|
1634
|
|
1623
|
|
- if (_MOVE_XYZ_ALLOWED)
|
1624
|
|
- MENU_ITEM(submenu, MSG_MOVE_10MM, lcd_move_menu_10mm);
|
|
1635
|
+ if (_MOVE_XYZ_ALLOWED) {
|
|
1636
|
+ if (_MOVE_XY_ALLOWED) {
|
|
1637
|
+ MENU_ITEM(submenu, MSG_MOVE_X, lcd_move_get_x_amount);
|
|
1638
|
+ MENU_ITEM(submenu, MSG_MOVE_Y, lcd_move_get_y_amount);
|
|
1639
|
+ }
|
|
1640
|
+ #if ENABLED(DELTA)
|
|
1641
|
+ else
|
|
1642
|
+ MENU_ITEM(function, MSG_FREE_XY, lcd_lower_z_to_clip_height);
|
|
1643
|
+ #endif
|
|
1644
|
+
|
|
1645
|
+ MENU_ITEM(submenu, MSG_MOVE_Z, lcd_move_get_z_amount);
|
|
1646
|
+ }
|
|
1647
|
+ else
|
|
1648
|
+ MENU_ITEM(gcode, MSG_AUTO_HOME, PSTR("G28"));
|
|
1649
|
+
|
|
1650
|
+ #if ENABLED(SWITCHING_EXTRUDER)
|
|
1651
|
+ if (active_extruder)
|
|
1652
|
+ MENU_ITEM(gcode, MSG_SELECT " " MSG_E1, PSTR("T0"));
|
|
1653
|
+ else
|
|
1654
|
+ MENU_ITEM(gcode, MSG_SELECT " " MSG_E2, PSTR("T1"));
|
|
1655
|
+ #endif
|
|
1656
|
+
|
|
1657
|
+ MENU_ITEM(submenu, MSG_MOVE_E, lcd_move_get_e_amount);
|
|
1658
|
+ #if E_MANUAL > 1
|
|
1659
|
+ MENU_ITEM(submenu, MSG_MOVE_E MSG_MOVE_E1, lcd_move_get_e0_amount);
|
|
1660
|
+ MENU_ITEM(submenu, MSG_MOVE_E MSG_MOVE_E2, lcd_move_get_e1_amount);
|
|
1661
|
+ #if E_MANUAL > 2
|
|
1662
|
+ MENU_ITEM(submenu, MSG_MOVE_E MSG_MOVE_E3, lcd_move_get_e2_amount);
|
|
1663
|
+ #if E_MANUAL > 3
|
|
1664
|
+ MENU_ITEM(submenu, MSG_MOVE_E MSG_MOVE_E4, lcd_move_get_e3_amount);
|
|
1665
|
+ #endif
|
|
1666
|
+ #endif
|
|
1667
|
+ #endif
|
1625
|
1668
|
|
1626
|
|
- MENU_ITEM(submenu, MSG_MOVE_1MM, lcd_move_menu_1mm);
|
1627
|
|
- MENU_ITEM(submenu, MSG_MOVE_01MM, lcd_move_menu_01mm);
|
1628
|
|
- //TODO:X,Y,Z,E
|
1629
|
1669
|
END_MENU();
|
1630
|
1670
|
}
|
1631
|
1671
|
|