浏览代码

Fix probeless delta build (#16537)

Jason Smith 4 年前
父节点
当前提交
d22eb261cf
共有 4 个文件被更改,包括 28 次插入7 次删除
  1. 2
    0
      Marlin/src/inc/SanityCheck.h
  2. 16
    6
      Marlin/src/module/delta.cpp
  3. 3
    1
      Marlin/src/module/delta.h
  4. 7
    0
      buildroot/share/tests/megaatmega2560-tests

+ 2
- 0
Marlin/src/inc/SanityCheck.h 查看文件

1020
     #error "ENABLE_LEVELING_FADE_HEIGHT on DELTA requires AUTO_BED_LEVELING_BILINEAR or AUTO_BED_LEVELING_UBL."
1020
     #error "ENABLE_LEVELING_FADE_HEIGHT on DELTA requires AUTO_BED_LEVELING_BILINEAR or AUTO_BED_LEVELING_UBL."
1021
   #elif ENABLED(DELTA_AUTO_CALIBRATION) && !(HAS_BED_PROBE || HAS_LCD_MENU)
1021
   #elif ENABLED(DELTA_AUTO_CALIBRATION) && !(HAS_BED_PROBE || HAS_LCD_MENU)
1022
     #error "DELTA_AUTO_CALIBRATION requires a probe or LCD Controller."
1022
     #error "DELTA_AUTO_CALIBRATION requires a probe or LCD Controller."
1023
+  #elif ENABLED(DELTA_CALIBRATION_MENU) && !HAS_LCD_MENU
1024
+    #error "DELTA_CALIBRATION_MENU requires an LCD Controller."
1023
   #elif ABL_GRID
1025
   #elif ABL_GRID
1024
     #if (GRID_MAX_POINTS_X & 1) == 0 || (GRID_MAX_POINTS_Y & 1) == 0
1026
     #if (GRID_MAX_POINTS_X & 1) == 0 || (GRID_MAX_POINTS_Y & 1) == 0
1025
       #error "DELTA requires GRID_MAX_POINTS_X and GRID_MAX_POINTS_Y to be odd numbers."
1027
       #error "DELTA requires GRID_MAX_POINTS_X and GRID_MAX_POINTS_Y to be odd numbers."

+ 16
- 6
Marlin/src/module/delta.cpp 查看文件

86
  * Get a safe radius for calibration
86
  * Get a safe radius for calibration
87
  */
87
  */
88
 
88
 
89
-#if ENABLED(DELTA_AUTO_CALIBRATION)
90
-  float calibration_radius_factor = 1;
91
-#endif
89
+#if EITHER(DELTA_AUTO_CALIBRATION, DELTA_CALIBRATION_MENU)
92
 
90
 
93
-float delta_calibration_radius() {
94
-  return FLOOR((DELTA_PRINTABLE_RADIUS - _MAX(HYPOT(probe_offset_xy.x, probe_offset_xy.y), MIN_PROBE_EDGE)) * calibration_radius_factor);
95
-}
91
+  #if ENABLED(DELTA_AUTO_CALIBRATION)
92
+    float calibration_radius_factor = 1;
93
+  #endif
94
+
95
+  float delta_calibration_radius() {
96
+    return calibration_radius_factor * (
97
+      #if HAS_BED_PROBE
98
+        FLOOR((DELTA_PRINTABLE_RADIUS) - _MAX(HYPOT(probe_offset_xy.x, probe_offset_xy.y), MIN_PROBE_EDGE))
99
+      #else
100
+        DELTA_PRINTABLE_RADIUS
101
+      #endif
102
+    );
103
+  }
104
+
105
+#endif
96
 
106
 
97
 /**
107
 /**
98
  * Delta Inverse Kinematics
108
  * Delta Inverse Kinematics

+ 3
- 1
Marlin/src/module/delta.h 查看文件

52
   constexpr float calibration_radius_factor = 1;
52
   constexpr float calibration_radius_factor = 1;
53
 #endif
53
 #endif
54
 
54
 
55
-float delta_calibration_radius();
55
+#if EITHER(DELTA_AUTO_CALIBRATION, DELTA_CALIBRATION_MENU)
56
+  float delta_calibration_radius();
57
+#endif
56
 
58
 
57
 /**
59
 /**
58
  * Delta Inverse Kinematics
60
  * Delta Inverse Kinematics

+ 7
- 0
buildroot/share/tests/megaatmega2560-tests 查看文件

310
 exec_test $1 $2 "RAMPS | DELTA | OLED_PANEL_TINYBOY2 | UBL | Allen Key | EEPROM"
310
 exec_test $1 $2 "RAMPS | DELTA | OLED_PANEL_TINYBOY2 | UBL | Allen Key | EEPROM"
311
 
311
 
312
 #
312
 #
313
+# Delta Config (generic) + Probeless
314
+#
315
+use_example_configs delta/generic
316
+opt_enable REPRAP_DISCOUNT_SMART_CONTROLLER DELTA_AUTO_CALIBRATION DELTA_CALIBRATION_MENU
317
+exec_test $1 $2 "RAMPS | DELTA | RRD LCD | DELTA_AUTO_CALIBRATION | DELTA_CALIBRATION_MENU"
318
+
319
+#
313
 # Delta Config (FLSUN AC because it's complex)
320
 # Delta Config (FLSUN AC because it's complex)
314
 #
321
 #
315
 use_example_configs delta/FLSUN/auto_calibrate
322
 use_example_configs delta/FLSUN/auto_calibrate

正在加载...
取消
保存