diff --git a/Marlin/Conditionals.h b/Marlin/Conditionals.h index ea73077779..1d0e025192 100644 --- a/Marlin/Conditionals.h +++ b/Marlin/Conditionals.h @@ -813,6 +813,16 @@ #ifndef DELTA_DIAGONAL_ROD_TRIM_TOWER_3 #define DELTA_DIAGONAL_ROD_TRIM_TOWER_3 0.0 #endif + #if ENABLED(AUTO_BED_LEVELING_GRID) + #define DELTA_BED_LEVELING_GRID + #endif + #endif + + /** + * When not using other bed leveling... + */ + #if ENABLED(AUTO_BED_LEVELING_FEATURE) && DISABLED(AUTO_BED_LEVELING_GRID) && DISABLED(DELTA_BED_LEVELING_GRID) + #define AUTO_BED_LEVELING_3POINT #endif /** diff --git a/Marlin/SanityCheck.h b/Marlin/SanityCheck.h index 9c48e9e872..9c251500a0 100644 --- a/Marlin/SanityCheck.h +++ b/Marlin/SanityCheck.h @@ -200,11 +200,9 @@ #if ENABLED(MESH_BED_LEVELING) #if ENABLED(DELTA) #error "MESH_BED_LEVELING does not yet support DELTA printers." - #endif - #if ENABLED(AUTO_BED_LEVELING_FEATURE) + #elif ENABLED(AUTO_BED_LEVELING_FEATURE) #error "Select AUTO_BED_LEVELING_FEATURE or MESH_BED_LEVELING, not both." - #endif - #if MESH_NUM_X_POINTS > 7 || MESH_NUM_Y_POINTS > 7 + #elif MESH_NUM_X_POINTS > 7 || MESH_NUM_Y_POINTS > 7 #error "MESH_NUM_X_POINTS and MESH_NUM_Y_POINTS need to be less than 8." #endif #elif ENABLED(MANUAL_BED_LEVELING) @@ -217,6 +215,10 @@ #if PROBE_SELECTED + #if ENABLED(Z_PROBE_SLED) && ENABLED(DELTA) + #error "You cannot use Z_PROBE_SLED with DELTA." + #endif + /** * NUM_SERVOS is required for a Z servo probe */ @@ -324,6 +326,13 @@ */ #if ENABLED(AUTO_BED_LEVELING_FEATURE) + /** + * Delta has limited bed leveling options + */ + #if ENABLED(DELTA) && DISABLED(AUTO_BED_LEVELING_GRID) + #error "You must use AUTO_BED_LEVELING_GRID for DELTA bed leveling." + #endif + /** * Require a Z min pin */ @@ -408,25 +417,6 @@ #error "Only enable one SAV_3DGLCD display type: U8GLIB_SSD1306 or U8GLIB_SH1106." #endif -/** - * Delta has limited bed leveling options - */ -#if ENABLED(DELTA) - - #if ENABLED(AUTO_BED_LEVELING_FEATURE) - - #if DISABLED(AUTO_BED_LEVELING_GRID) - #error "Only AUTO_BED_LEVELING_GRID is supported with DELTA." - #endif - - #if ENABLED(Z_PROBE_SLED) - #error "You cannot use Z_PROBE_SLED with DELTA." - #endif - - #endif - -#endif - /** * Don't set more than one kinematic type */ diff --git a/Marlin/planner.cpp b/Marlin/planner.cpp index 00ea8540ce..aacc041ef0 100644 --- a/Marlin/planner.cpp +++ b/Marlin/planner.cpp @@ -129,18 +129,16 @@ float Planner::previous_nominal_speed; * Class and Instance Methods */ -Planner::Planner() { - #if ENABLED(AUTO_BED_LEVELING_FEATURE) - bed_level_matrix.set_to_identity(); - #endif - init(); -} +Planner::Planner() { init(); } void Planner::init() { block_buffer_head = block_buffer_tail = 0; memset(position, 0, sizeof(position)); // clear position for (int i = 0; i < NUM_AXIS; i++) previous_speed[i] = 0.0; previous_nominal_speed = 0.0; + #if ENABLED(AUTO_BED_LEVELING_FEATURE) + bed_level_matrix.set_to_identity(); + #endif } /**