浏览代码

Disallow REPRAPWORLD_KEYPAD moves on Delta/SCARA until homed

Scott Lahteine 9 年前
父节点
当前提交
5fc6daba2b
共有 1 个文件被更改,包括 17 次插入8 次删除
  1. 17
    8
      Marlin/ultralcd.cpp

+ 17
- 8
Marlin/ultralcd.cpp 查看文件

@@ -1842,7 +1842,7 @@ menu_edit_type(unsigned long, long5, ftostr5, 0.01);
1842 1842
     lcd_move_y();
1843 1843
   }
1844 1844
   static void reprapworld_keypad_move_home() {
1845
-    enqueue_and_echo_commands_P((PSTR("G28"))); // move all axis home
1845
+    enqueue_and_echo_commands_P(PSTR("G28")); // move all axes home
1846 1846
   }
1847 1847
 #endif // REPRAPWORLD_KEYPAD
1848 1848
 
@@ -2091,13 +2091,22 @@ void lcd_update() {
2091 2091
     #if ENABLED(ULTIPANEL)
2092 2092
 
2093 2093
       #if ENABLED(REPRAPWORLD_KEYPAD)
2094
-        if (REPRAPWORLD_KEYPAD_MOVE_Z_UP)     reprapworld_keypad_move_z_up();
2095
-        if (REPRAPWORLD_KEYPAD_MOVE_Z_DOWN)   reprapworld_keypad_move_z_down();
2096
-        if (REPRAPWORLD_KEYPAD_MOVE_X_LEFT)   reprapworld_keypad_move_x_left();
2097
-        if (REPRAPWORLD_KEYPAD_MOVE_X_RIGHT)  reprapworld_keypad_move_x_right();
2098
-        if (REPRAPWORLD_KEYPAD_MOVE_Y_DOWN)   reprapworld_keypad_move_y_down();
2099
-        if (REPRAPWORLD_KEYPAD_MOVE_Y_UP)     reprapworld_keypad_move_y_up();
2100
-        if (REPRAPWORLD_KEYPAD_MOVE_HOME)     reprapworld_keypad_move_home();
2094
+
2095
+        #if ENABLED(DELTA) || ENABLED(SCARA)
2096
+          #define _KEYPAD_MOVE_ALLOWED (axis_homed[X_AXIS] && axis_homed[Y_AXIS] && axis_homed[Z_AXIS])
2097
+        #else
2098
+          #define _KEYPAD_MOVE_ALLOWED true
2099
+        #endif
2100
+
2101
+        if (REPRAPWORLD_KEYPAD_MOVE_HOME)       reprapworld_keypad_move_home();
2102
+        if (_KEYPAD_MOVE_ALLOWED) {
2103
+          if (REPRAPWORLD_KEYPAD_MOVE_Z_UP)     reprapworld_keypad_move_z_up();
2104
+          if (REPRAPWORLD_KEYPAD_MOVE_Z_DOWN)   reprapworld_keypad_move_z_down();
2105
+          if (REPRAPWORLD_KEYPAD_MOVE_X_LEFT)   reprapworld_keypad_move_x_left();
2106
+          if (REPRAPWORLD_KEYPAD_MOVE_X_RIGHT)  reprapworld_keypad_move_x_right();
2107
+          if (REPRAPWORLD_KEYPAD_MOVE_Y_DOWN)   reprapworld_keypad_move_y_down();
2108
+          if (REPRAPWORLD_KEYPAD_MOVE_Y_UP)     reprapworld_keypad_move_y_up();
2109
+        }
2101 2110
       #endif
2102 2111
 
2103 2112
       bool encoderPastThreshold = (abs(encoderDiff) >= ENCODER_PULSES_PER_STEP);

正在加载...
取消
保存