Просмотр исходного кода

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

Kevin 7 лет назад
Родитель
Сommit
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,7 +67,7 @@ script:
67 67
   - opt_enable REPRAP_DISCOUNT_SMART_CONTROLLER SDSUPPORT EEPROM_SETTINGS
68 68
   - opt_enable BLINKM PCA9632 RGB_LED NEOPIXEL_LED AUTO_POWER_CONTROL
69 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 71
   - opt_set ABL_GRID_POINTS_X 16
72 72
   - opt_set ABL_GRID_POINTS_Y 16
73 73
   - opt_set_adv FANMUX0_PIN 53
@@ -84,13 +84,13 @@ script:
84 84
   - opt_set TEMP_SENSOR_4 999
85 85
   - opt_set TEMP_SENSOR_BED 1
86 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 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 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 94
   - opt_disable SEGMENT_LEVELED_MOVES
95 95
   - opt_enable_adv BABYSTEP_ZPROBE_OFFSET DOUBLECLICK_FOR_Z_BABYSTEPPING
96 96
   - build_marlin_pio ${TRAVIS_BUILD_DIR} ${TEST_PLATFORM}

+ 3
- 0
Marlin/Configuration_adv.h Просмотреть файл

@@ -362,6 +362,9 @@
362 362
 // When G28 is called, this option will make Y home before X
363 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 368
 // @section machine
366 369
 
367 370
 #define AXIS_RELATIVE_MODES {false, false, false, false}

+ 12
- 4
Marlin/src/gcode/calibrate/G28.cpp Просмотреть файл

@@ -227,10 +227,14 @@ void GcodeSuite::G28(const bool always_home_all) {
227 227
 
228 228
     #endif
229 229
 
230
+    // Home Y (before X)
230 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 238
         HOMEAXIS(Y);
235 239
         #if ENABLED(DEBUG_LEVELING_FEATURE)
236 240
           if (DEBUGGING(LEVELING)) DEBUG_POS("> homeY", current_position);
@@ -240,7 +244,11 @@ void GcodeSuite::G28(const bool always_home_all) {
240 244
     #endif
241 245
 
242 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 253
       #if ENABLED(DUAL_X_CARRIAGE)
246 254
 
@@ -271,8 +279,8 @@ void GcodeSuite::G28(const bool always_home_all) {
271 279
       #endif
272 280
     }
273 281
 
282
+    // Home Y (after X)
274 283
     #if DISABLED(HOME_Y_BEFORE_X)
275
-      // Home Y
276 284
       if (home_all || homeY) {
277 285
         HOMEAXIS(Y);
278 286
         #if ENABLED(DEBUG_LEVELING_FEATURE)

+ 9
- 1
Marlin/src/inc/SanityCheck.h Просмотреть файл

@@ -886,12 +886,20 @@ static_assert(1 >= 0
886 886
 #endif
887 887
 
888 888
 /**
889
- * Homing Bump
889
+ * Homing
890 890
  */
891 891
 #if X_HOME_BUMP_MM < 0 || Y_HOME_BUMP_MM < 0 || Z_HOME_BUMP_MM < 0
892 892
   #error "[XYZ]_HOME_BUMP_MM must be greater than or equal to 0."
893 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 904
  * Make sure Z_SAFE_HOMING point is reachable
897 905
  */

Загрузка…
Отмена
Сохранить