浏览代码

Option to force X or Y to home first when homing the other axis

Kevin 7 年前
父节点
当前提交
9019ea0fce
共有 4 个文件被更改,包括 28 次插入9 次删除
  1. 4
    4
      .travis.yml
  2. 3
    0
      Marlin/Configuration_adv.h
  3. 12
    4
      Marlin/src/gcode/calibrate/G28.cpp
  4. 9
    1
      Marlin/src/inc/SanityCheck.h

+ 4
- 4
.travis.yml 查看文件

67
   - opt_enable REPRAP_DISCOUNT_SMART_CONTROLLER SDSUPPORT EEPROM_SETTINGS
67
   - opt_enable REPRAP_DISCOUNT_SMART_CONTROLLER SDSUPPORT EEPROM_SETTINGS
68
   - opt_enable BLINKM PCA9632 RGB_LED NEOPIXEL_LED AUTO_POWER_CONTROL
68
   - opt_enable BLINKM PCA9632 RGB_LED NEOPIXEL_LED AUTO_POWER_CONTROL
69
   - opt_enable AUTO_BED_LEVELING_LINEAR Z_MIN_PROBE_REPEATABILITY_TEST DEBUG_LEVELING_FEATURE SKEW_CORRECTION SKEW_CORRECTION_FOR_Z SKEW_CORRECTION_GCODE
69
   - opt_enable AUTO_BED_LEVELING_LINEAR Z_MIN_PROBE_REPEATABILITY_TEST DEBUG_LEVELING_FEATURE SKEW_CORRECTION SKEW_CORRECTION_FOR_Z SKEW_CORRECTION_GCODE
70
-  - opt_enable_adv FWRETRACT MAX7219_DEBUG LED_CONTROL_MENU CASE_LIGHT_ENABLE CASE_LIGHT_USE_NEOPIXEL
70
+  - opt_enable_adv FWRETRACT MAX7219_DEBUG LED_CONTROL_MENU CASE_LIGHT_ENABLE CASE_LIGHT_USE_NEOPIXEL CODEPENDENT_XY_HOMING
71
   - opt_set ABL_GRID_POINTS_X 16
71
   - opt_set ABL_GRID_POINTS_X 16
72
   - opt_set ABL_GRID_POINTS_Y 16
72
   - opt_set ABL_GRID_POINTS_Y 16
73
   - opt_set_adv FANMUX0_PIN 53
73
   - opt_set_adv FANMUX0_PIN 53
84
   - opt_set TEMP_SENSOR_4 999
84
   - opt_set TEMP_SENSOR_4 999
85
   - opt_set TEMP_SENSOR_BED 1
85
   - opt_set TEMP_SENSOR_BED 1
86
   - opt_enable AUTO_BED_LEVELING_UBL DEBUG_LEVELING_FEATURE G26_MESH_EDITING ENABLE_LEVELING_FADE_HEIGHT EEPROM_SETTINGS EEPROM_CHITCHAT G3D_PANEL SKEW_CORRECTION
86
   - opt_enable AUTO_BED_LEVELING_UBL DEBUG_LEVELING_FEATURE G26_MESH_EDITING ENABLE_LEVELING_FADE_HEIGHT EEPROM_SETTINGS EEPROM_CHITCHAT G3D_PANEL SKEW_CORRECTION
87
-  - opt_enable_adv CUSTOM_USER_MENUS I2C_POSITION_ENCODERS BABYSTEPPING BABYSTEP_XY LIN_ADVANCE NANODLP_Z_SYNC
87
+  - opt_enable_adv CUSTOM_USER_MENUS I2C_POSITION_ENCODERS BABYSTEPPING BABYSTEP_XY LIN_ADVANCE NANODLP_Z_SYNC QUICK_HOME
88
   - build_marlin_pio ${TRAVIS_BUILD_DIR} ${TEST_PLATFORM}
88
   - build_marlin_pio ${TRAVIS_BUILD_DIR} ${TEST_PLATFORM}
89
   #
89
   #
90
-  # Add a Sled Z Probe, do non-segmented moves, use Japanese language
90
+  # Add a Sled Z Probe, use UBL Cartesian moves, use Japanese language
91
   #
91
   #
92
   - opt_set LANGUAGE kana_utf8
92
   - opt_set LANGUAGE kana_utf8
93
-  - opt_enable Z_PROBE_SLED
93
+  - opt_enable Z_PROBE_SLED SKEW_CORRECTION SKEW_CORRECTION_FOR_Z SKEW_CORRECTION_GCODE
94
   - opt_disable SEGMENT_LEVELED_MOVES
94
   - opt_disable SEGMENT_LEVELED_MOVES
95
   - opt_enable_adv BABYSTEP_ZPROBE_OFFSET DOUBLECLICK_FOR_Z_BABYSTEPPING
95
   - opt_enable_adv BABYSTEP_ZPROBE_OFFSET DOUBLECLICK_FOR_Z_BABYSTEPPING
96
   - build_marlin_pio ${TRAVIS_BUILD_DIR} ${TEST_PLATFORM}
96
   - build_marlin_pio ${TRAVIS_BUILD_DIR} ${TEST_PLATFORM}

+ 3
- 0
Marlin/Configuration_adv.h 查看文件

362
 // When G28 is called, this option will make Y home before X
362
 // When G28 is called, this option will make Y home before X
363
 //#define HOME_Y_BEFORE_X
363
 //#define HOME_Y_BEFORE_X
364
 
364
 
365
+// Enable this if X or Y can't home without homing the other axis first.
366
+//#define CODEPENDENT_XY_HOMING
367
+
365
 // @section machine
368
 // @section machine
366
 
369
 
367
 #define AXIS_RELATIVE_MODES {false, false, false, false}
370
 #define AXIS_RELATIVE_MODES {false, false, false, false}

+ 12
- 4
Marlin/src/gcode/calibrate/G28.cpp 查看文件

227
 
227
 
228
     #endif
228
     #endif
229
 
229
 
230
+    // Home Y (before X)
230
     #if ENABLED(HOME_Y_BEFORE_X)
231
     #if ENABLED(HOME_Y_BEFORE_X)
231
 
232
 
232
-      // Home Y
233
-      if (home_all || homeY) {
233
+      if (home_all || homeY
234
+        #if ENABLED(CODEPENDENT_XY_HOMING)
235
+          || homeX
236
+        #endif
237
+      ) {
234
         HOMEAXIS(Y);
238
         HOMEAXIS(Y);
235
         #if ENABLED(DEBUG_LEVELING_FEATURE)
239
         #if ENABLED(DEBUG_LEVELING_FEATURE)
236
           if (DEBUGGING(LEVELING)) DEBUG_POS("> homeY", current_position);
240
           if (DEBUGGING(LEVELING)) DEBUG_POS("> homeY", current_position);
240
     #endif
244
     #endif
241
 
245
 
242
     // Home X
246
     // Home X
243
-    if (home_all || homeX) {
247
+    if (home_all || homeX
248
+      #if ENABLED(CODEPENDENT_XY_HOMING) && DISABLED(HOME_Y_BEFORE_X)
249
+        || homeY
250
+      #endif
251
+    ) {
244
 
252
 
245
       #if ENABLED(DUAL_X_CARRIAGE)
253
       #if ENABLED(DUAL_X_CARRIAGE)
246
 
254
 
271
       #endif
279
       #endif
272
     }
280
     }
273
 
281
 
282
+    // Home Y (after X)
274
     #if DISABLED(HOME_Y_BEFORE_X)
283
     #if DISABLED(HOME_Y_BEFORE_X)
275
-      // Home Y
276
       if (home_all || homeY) {
284
       if (home_all || homeY) {
277
         HOMEAXIS(Y);
285
         HOMEAXIS(Y);
278
         #if ENABLED(DEBUG_LEVELING_FEATURE)
286
         #if ENABLED(DEBUG_LEVELING_FEATURE)

+ 9
- 1
Marlin/src/inc/SanityCheck.h 查看文件

886
 #endif
886
 #endif
887
 
887
 
888
 /**
888
 /**
889
- * Homing Bump
889
+ * Homing
890
  */
890
  */
891
 #if X_HOME_BUMP_MM < 0 || Y_HOME_BUMP_MM < 0 || Z_HOME_BUMP_MM < 0
891
 #if X_HOME_BUMP_MM < 0 || Y_HOME_BUMP_MM < 0 || Z_HOME_BUMP_MM < 0
892
   #error "[XYZ]_HOME_BUMP_MM must be greater than or equal to 0."
892
   #error "[XYZ]_HOME_BUMP_MM must be greater than or equal to 0."
893
 #endif
893
 #endif
894
 
894
 
895
+#if ENABLED(CODEPENDENT_XY_HOMING)
896
+  #if ENABLED(QUICK_HOME)
897
+    #error "QUICK_HOME is incompatible with CODEPENDENT_XY_HOMING."
898
+  #elif IS_KINEMATIC
899
+    #error "CODEPENDENT_XY_HOMING requires a Cartesian setup."
900
+  #endif
901
+#endif
902
+
895
 /**
903
 /**
896
  * Make sure Z_SAFE_HOMING point is reachable
904
  * Make sure Z_SAFE_HOMING point is reachable
897
  */
905
  */

正在加载...
取消
保存