Merge pull request #4835 from thinkyhead/rc_abl_non_square_grid
Allow non-square Auto Bed Leveling grid
This commit is contained in:
		
						commit
						48fe2fdc9e
					
				| @ -768,7 +768,8 @@ | |||||||
| 
 | 
 | ||||||
|     // Set the number of grid points per dimension.
 |     // Set the number of grid points per dimension.
 | ||||||
|     // You probably don't need more than 3 (squared=9).
 |     // You probably don't need more than 3 (squared=9).
 | ||||||
|     #define AUTO_BED_LEVELING_GRID_POINTS 3 |     #define ABL_GRID_POINTS_X 3 | ||||||
|  |     #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X | ||||||
| 
 | 
 | ||||||
|   #else  // !AUTO_BED_LEVELING_GRID
 |   #else  // !AUTO_BED_LEVELING_GRID
 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -494,7 +494,7 @@ static uint8_t target_extruder; | |||||||
| 
 | 
 | ||||||
| #if ENABLED(AUTO_BED_LEVELING_NONLINEAR) | #if ENABLED(AUTO_BED_LEVELING_NONLINEAR) | ||||||
|   int nonlinear_grid_spacing[2] = { 0 }; |   int nonlinear_grid_spacing[2] = { 0 }; | ||||||
|   float bed_level_grid[AUTO_BED_LEVELING_GRID_POINTS][AUTO_BED_LEVELING_GRID_POINTS]; |   float bed_level_grid[ABL_GRID_POINTS_X][ABL_GRID_POINTS_Y]; | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| #if IS_SCARA | #if IS_SCARA | ||||||
| @ -2122,14 +2122,15 @@ static void clean_up_after_endstop_or_probe_move() { | |||||||
|    * using linear extrapolation, away from the center. |    * using linear extrapolation, away from the center. | ||||||
|    */ |    */ | ||||||
|   static void extrapolate_unprobed_bed_level() { |   static void extrapolate_unprobed_bed_level() { | ||||||
|     uint8_t half = (AUTO_BED_LEVELING_GRID_POINTS - 1) / 2; |     int half_x = (ABL_GRID_POINTS_X - 1) / 2, | ||||||
|     for (uint8_t y = 0; y <= half; y++) { |         half_y = (ABL_GRID_POINTS_Y - 1) / 2; | ||||||
|       for (uint8_t x = 0; x <= half; x++) { |     for (uint8_t y = 0; y <= half_y; y++) { | ||||||
|  |       for (uint8_t x = 0; x <= half_x; x++) { | ||||||
|         if (x + y < 3) continue; |         if (x + y < 3) continue; | ||||||
|         extrapolate_one_point(half - x, half - y, x > 1 ? +1 : 0, y > 1 ? +1 : 0); |         extrapolate_one_point(half_x - x, half_y - y, x > 1 ? +1 : 0, y > 1 ? +1 : 0); | ||||||
|         extrapolate_one_point(half + x, half - y, x > 1 ? -1 : 0, y > 1 ? +1 : 0); |         extrapolate_one_point(half_x + x, half_y - y, x > 1 ? -1 : 0, y > 1 ? +1 : 0); | ||||||
|         extrapolate_one_point(half - x, half + y, x > 1 ? +1 : 0, y > 1 ? -1 : 0); |         extrapolate_one_point(half_x - x, half_y + y, x > 1 ? +1 : 0, y > 1 ? -1 : 0); | ||||||
|         extrapolate_one_point(half + x, half + y, x > 1 ? -1 : 0, y > 1 ? -1 : 0); |         extrapolate_one_point(half_x + x, half_y + y, x > 1 ? -1 : 0, y > 1 ? -1 : 0); | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
| @ -2138,8 +2139,8 @@ static void clean_up_after_endstop_or_probe_move() { | |||||||
|    * Print calibration results for plotting or manual frame adjustment. |    * Print calibration results for plotting or manual frame adjustment. | ||||||
|    */ |    */ | ||||||
|   static void print_bed_level() { |   static void print_bed_level() { | ||||||
|     for (uint8_t y = 0; y < AUTO_BED_LEVELING_GRID_POINTS; y++) { |     for (uint8_t y = 0; y < ABL_GRID_POINTS_Y; y++) { | ||||||
|       for (uint8_t x = 0; x < AUTO_BED_LEVELING_GRID_POINTS; x++) { |       for (uint8_t x = 0; x < ABL_GRID_POINTS_X; x++) { | ||||||
|         SERIAL_PROTOCOL_F(bed_level_grid[x][y], 2); |         SERIAL_PROTOCOL_F(bed_level_grid[x][y], 2); | ||||||
|         SERIAL_PROTOCOLCHAR(' '); |         SERIAL_PROTOCOLCHAR(' '); | ||||||
|       } |       } | ||||||
| @ -3308,11 +3309,12 @@ inline void gcode_G28() { | |||||||
|         if (dryrun) SERIAL_PROTOCOLLNPGM("Running in DRY-RUN mode"); |         if (dryrun) SERIAL_PROTOCOLLNPGM("Running in DRY-RUN mode"); | ||||||
|       } |       } | ||||||
| 
 | 
 | ||||||
|       int auto_bed_leveling_grid_points = AUTO_BED_LEVELING_GRID_POINTS; |       int abl_grid_points_x = ABL_GRID_POINTS_X, | ||||||
|  |           abl_grid_points_y = ABL_GRID_POINTS_Y; | ||||||
| 
 | 
 | ||||||
|       #if ENABLED(AUTO_BED_LEVELING_LINEAR) |       #if ENABLED(AUTO_BED_LEVELING_LINEAR) | ||||||
|         if (code_seen('P')) auto_bed_leveling_grid_points = code_value_int(); |         if (code_seen('P')) abl_grid_points_x = abl_grid_points_y = code_value_int(); | ||||||
|         if (auto_bed_leveling_grid_points < 2) { |         if (abl_grid_points_x < 2) { | ||||||
|           SERIAL_PROTOCOLLNPGM("?Number of probed (P)oints is implausible (2 minimum)."); |           SERIAL_PROTOCOLLNPGM("?Number of probed (P)oints is implausible (2 minimum)."); | ||||||
|           return; |           return; | ||||||
|         } |         } | ||||||
| @ -3400,8 +3402,8 @@ inline void gcode_G28() { | |||||||
|     #if ENABLED(AUTO_BED_LEVELING_GRID) |     #if ENABLED(AUTO_BED_LEVELING_GRID) | ||||||
| 
 | 
 | ||||||
|       // probe at the points of a lattice grid
 |       // probe at the points of a lattice grid
 | ||||||
|       const float xGridSpacing = (right_probe_bed_position - left_probe_bed_position) / (auto_bed_leveling_grid_points - 1), |       const float xGridSpacing = (right_probe_bed_position - left_probe_bed_position) / (abl_grid_points_x - 1), | ||||||
|                   yGridSpacing = (back_probe_bed_position - front_probe_bed_position) / (auto_bed_leveling_grid_points - 1); |                   yGridSpacing = (back_probe_bed_position - front_probe_bed_position) / (abl_grid_points_y - 1); | ||||||
| 
 | 
 | ||||||
|       #if ENABLED(AUTO_BED_LEVELING_NONLINEAR) |       #if ENABLED(AUTO_BED_LEVELING_NONLINEAR) | ||||||
| 
 | 
 | ||||||
| @ -3421,30 +3423,31 @@ inline void gcode_G28() { | |||||||
|          * so Vx = -a Vy = -b Vz = 1 (we want the vector facing towards positive Z |          * so Vx = -a Vy = -b Vz = 1 (we want the vector facing towards positive Z | ||||||
|          */ |          */ | ||||||
| 
 | 
 | ||||||
|         int abl2 = sq(auto_bed_leveling_grid_points); |         int abl2 = abl_grid_points_x * abl_grid_points_y; | ||||||
| 
 | 
 | ||||||
|         double eqnAMatrix[abl2 * 3], // "A" matrix of the linear system of equations
 |         double eqnAMatrix[abl2 * 3], // "A" matrix of the linear system of equations
 | ||||||
|                eqnBVector[abl2],     // "B" vector of Z points
 |                eqnBVector[abl2],     // "B" vector of Z points
 | ||||||
|                mean = 0.0; |                mean = 0.0; | ||||||
|         int8_t indexIntoAB[auto_bed_leveling_grid_points][auto_bed_leveling_grid_points]; |         int indexIntoAB[abl_grid_points_x][abl_grid_points_y]; | ||||||
| 
 | 
 | ||||||
|       #endif // AUTO_BED_LEVELING_LINEAR
 |       #endif // AUTO_BED_LEVELING_LINEAR
 | ||||||
| 
 | 
 | ||||||
|       int probePointCounter = 0; |       int probePointCounter = 0; | ||||||
|       bool zig = auto_bed_leveling_grid_points & 1; //always end at [RIGHT_PROBE_BED_POSITION, BACK_PROBE_BED_POSITION]
 |       bool zig = abl_grid_points_y & 1; //always end at [RIGHT_PROBE_BED_POSITION, BACK_PROBE_BED_POSITION]
 | ||||||
| 
 | 
 | ||||||
|       for (uint8_t yCount = 0; yCount < auto_bed_leveling_grid_points; yCount++) { |       for (uint8_t yCount = 0; yCount < abl_grid_points_y; yCount++) { | ||||||
|         float yBase = front_probe_bed_position + yGridSpacing * yCount; |         float yBase = front_probe_bed_position + yGridSpacing * yCount; | ||||||
|         yProbe = floor(yBase + (yBase < 0 ? 0 : 0.5)); |         yProbe = floor(yBase + (yBase < 0 ? 0 : 0.5)); | ||||||
|  | 
 | ||||||
|         int8_t xStart, xStop, xInc; |         int8_t xStart, xStop, xInc; | ||||||
| 
 | 
 | ||||||
|         if (zig) { |         if (zig) { | ||||||
|           xStart = 0; |           xStart = 0; | ||||||
|           xStop = auto_bed_leveling_grid_points; |           xStop = abl_grid_points_x; | ||||||
|           xInc = 1; |           xInc = 1; | ||||||
|         } |         } | ||||||
|         else { |         else { | ||||||
|           xStart = auto_bed_leveling_grid_points - 1; |           xStart = abl_grid_points_x - 1; | ||||||
|           xStop = -1; |           xStop = -1; | ||||||
|           xInc = -1; |           xInc = -1; | ||||||
|         } |         } | ||||||
| @ -3579,8 +3582,8 @@ inline void gcode_G28() { | |||||||
| 
 | 
 | ||||||
|         float min_diff = 999; |         float min_diff = 999; | ||||||
| 
 | 
 | ||||||
|         for (int8_t yy = auto_bed_leveling_grid_points - 1; yy >= 0; yy--) { |         for (int8_t yy = abl_grid_points_y - 1; yy >= 0; yy--) { | ||||||
|           for (uint8_t xx = 0; xx < auto_bed_leveling_grid_points; xx++) { |           for (uint8_t xx = 0; xx < abl_grid_points_x; xx++) { | ||||||
|             int ind = indexIntoAB[xx][yy]; |             int ind = indexIntoAB[xx][yy]; | ||||||
|             float diff = eqnBVector[ind] - mean, |             float diff = eqnBVector[ind] - mean, | ||||||
|                   x_tmp = eqnAMatrix[ind + 0 * abl2], |                   x_tmp = eqnAMatrix[ind + 0 * abl2], | ||||||
| @ -3604,8 +3607,8 @@ inline void gcode_G28() { | |||||||
|         if (verbose_level > 3) { |         if (verbose_level > 3) { | ||||||
|           SERIAL_PROTOCOLLNPGM("\nCorrected Bed Height vs. Bed Topology:"); |           SERIAL_PROTOCOLLNPGM("\nCorrected Bed Height vs. Bed Topology:"); | ||||||
| 
 | 
 | ||||||
|           for (int yy = auto_bed_leveling_grid_points - 1; yy >= 0; yy--) { |           for (int8_t yy = abl_grid_points_y - 1; yy >= 0; yy--) { | ||||||
|             for (int xx = 0; xx < auto_bed_leveling_grid_points; xx++) { |             for (uint8_t xx = 0; xx < abl_grid_points_x; xx++) { | ||||||
|               int ind = indexIntoAB[xx][yy]; |               int ind = indexIntoAB[xx][yy]; | ||||||
|               float x_tmp = eqnAMatrix[ind + 0 * abl2], |               float x_tmp = eqnAMatrix[ind + 0 * abl2], | ||||||
|                     y_tmp = eqnAMatrix[ind + 1 * abl2], |                     y_tmp = eqnAMatrix[ind + 1 * abl2], | ||||||
| @ -7796,16 +7799,18 @@ void ok_to_send() { | |||||||
|     void adjust_delta(float cartesian[XYZ]) { |     void adjust_delta(float cartesian[XYZ]) { | ||||||
|       if (nonlinear_grid_spacing[X_AXIS] == 0 || nonlinear_grid_spacing[Y_AXIS] == 0) return; // G29 not done!
 |       if (nonlinear_grid_spacing[X_AXIS] == 0 || nonlinear_grid_spacing[Y_AXIS] == 0) return; // G29 not done!
 | ||||||
| 
 | 
 | ||||||
|       int half = (AUTO_BED_LEVELING_GRID_POINTS - 1) / 2; |       int half_x = (ABL_GRID_POINTS_X - 1) / 2, | ||||||
|       float h1 = 0.001 - half, h2 = half - 0.001, |           half_y = (ABL_GRID_POINTS_Y - 1) / 2; | ||||||
|             grid_x = max(h1, min(h2, RAW_X_POSITION(cartesian[X_AXIS]) / nonlinear_grid_spacing[X_AXIS])), |       float hx2 = half_x - 0.001, hx1 = -hx2, | ||||||
|             grid_y = max(h1, min(h2, RAW_Y_POSITION(cartesian[Y_AXIS]) / nonlinear_grid_spacing[Y_AXIS])); |             hy2 = half_y - 0.001, hy1 = -hy2, | ||||||
|  |             grid_x = max(hx1, min(hx2, RAW_X_POSITION(cartesian[X_AXIS]) / nonlinear_grid_spacing[X_AXIS])), | ||||||
|  |             grid_y = max(hy1, min(hy2, RAW_Y_POSITION(cartesian[Y_AXIS]) / nonlinear_grid_spacing[Y_AXIS])); | ||||||
|       int   floor_x = floor(grid_x), floor_y = floor(grid_y); |       int   floor_x = floor(grid_x), floor_y = floor(grid_y); | ||||||
|       float ratio_x = grid_x - floor_x, ratio_y = grid_y - floor_y, |       float ratio_x = grid_x - floor_x, ratio_y = grid_y - floor_y, | ||||||
|             z1 = bed_level_grid[floor_x + half][floor_y + half], |             z1 = bed_level_grid[floor_x + half_x][floor_y + half_y], | ||||||
|             z2 = bed_level_grid[floor_x + half][floor_y + half + 1], |             z2 = bed_level_grid[floor_x + half_x][floor_y + half_y + 1], | ||||||
|             z3 = bed_level_grid[floor_x + half + 1][floor_y + half], |             z3 = bed_level_grid[floor_x + half_x + 1][floor_y + half_y], | ||||||
|             z4 = bed_level_grid[floor_x + half + 1][floor_y + half + 1], |             z4 = bed_level_grid[floor_x + half_x + 1][floor_y + half_y + 1], | ||||||
|             left = (1 - ratio_y) * z1 + ratio_y * z2, |             left = (1 - ratio_y) * z1 + ratio_y * z2, | ||||||
|             right = (1 - ratio_y) * z3 + ratio_y * z4, |             right = (1 - ratio_y) * z3 + ratio_y * z4, | ||||||
|             offset = (1 - ratio_x) * left + ratio_x * right; |             offset = (1 - ratio_x) * left + ratio_x * right; | ||||||
|  | |||||||
| @ -139,6 +139,8 @@ | |||||||
|   #error "PREVENT_DANGEROUS_EXTRUDE is now PREVENT_COLD_EXTRUSION. Please update your configuration." |   #error "PREVENT_DANGEROUS_EXTRUDE is now PREVENT_COLD_EXTRUSION. Please update your configuration." | ||||||
| #elif defined(SCARA) | #elif defined(SCARA) | ||||||
|   #error "SCARA is now MORGAN_SCARA. Please update your configuration." |   #error "SCARA is now MORGAN_SCARA. Please update your configuration." | ||||||
|  | #elif defined(AUTO_BED_LEVELING_GRID_POINTS) | ||||||
|  |   #error "AUTO_BED_LEVELING_GRID_POINTS is now ABL_GRID_POINTS_X and ABL_GRID_POINTS_Y. Please update your configuration." | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| /**
 | /**
 | ||||||
| @ -196,10 +198,10 @@ | |||||||
|     #error "You probably want to use Max Endstops for DELTA!" |     #error "You probably want to use Max Endstops for DELTA!" | ||||||
|   #endif |   #endif | ||||||
|   #if ENABLED(AUTO_BED_LEVELING_GRID) |   #if ENABLED(AUTO_BED_LEVELING_GRID) | ||||||
|     #if (AUTO_BED_LEVELING_GRID_POINTS & 1) == 0 |     #if (ABL_GRID_POINTS_X & 1) == 0 || (ABL_GRID_POINTS_Y & 1) == 0 | ||||||
|       #error "DELTA requires an odd value for AUTO_BED_LEVELING_GRID_POINTS." |       #error "DELTA requires ABL_GRID_POINTS_X and ABL_GRID_POINTS_Y to be odd numbers." | ||||||
|     #elif AUTO_BED_LEVELING_GRID_POINTS < 3 |     #elif ABL_GRID_POINTS_X < 3 | ||||||
|       #error "DELTA requires at least 3 AUTO_BED_LEVELING_GRID_POINTS." |       #error "DELTA requires ABL_GRID_POINTS_X and ABL_GRID_POINTS_Y to be 3 or higher." | ||||||
|     #endif |     #endif | ||||||
|   #endif |   #endif | ||||||
| #endif | #endif | ||||||
|  | |||||||
| @ -751,7 +751,8 @@ | |||||||
| 
 | 
 | ||||||
|     // Set the number of grid points per dimension.
 |     // Set the number of grid points per dimension.
 | ||||||
|     // You probably don't need more than 3 (squared=9).
 |     // You probably don't need more than 3 (squared=9).
 | ||||||
|     #define AUTO_BED_LEVELING_GRID_POINTS 3 |     #define ABL_GRID_POINTS_X 3 | ||||||
|  |     #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X | ||||||
| 
 | 
 | ||||||
|   #else  // !AUTO_BED_LEVELING_GRID
 |   #else  // !AUTO_BED_LEVELING_GRID
 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -734,7 +734,8 @@ | |||||||
| 
 | 
 | ||||||
|     // Set the number of grid points per dimension.
 |     // Set the number of grid points per dimension.
 | ||||||
|     // You probably don't need more than 3 (squared=9).
 |     // You probably don't need more than 3 (squared=9).
 | ||||||
|     #define AUTO_BED_LEVELING_GRID_POINTS 3 |     #define ABL_GRID_POINTS_X 3 | ||||||
|  |     #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X | ||||||
| 
 | 
 | ||||||
|   #else  // !AUTO_BED_LEVELING_GRID
 |   #else  // !AUTO_BED_LEVELING_GRID
 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -732,7 +732,8 @@ | |||||||
| 
 | 
 | ||||||
|     // Set the number of grid points per dimension.
 |     // Set the number of grid points per dimension.
 | ||||||
|     // You probably don't need more than 3 (squared=9).
 |     // You probably don't need more than 3 (squared=9).
 | ||||||
|     #define AUTO_BED_LEVELING_GRID_POINTS 3 |     #define ABL_GRID_POINTS_X 3 | ||||||
|  |     #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X | ||||||
| 
 | 
 | ||||||
|   #else  // !AUTO_BED_LEVELING_GRID
 |   #else  // !AUTO_BED_LEVELING_GRID
 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -743,7 +743,8 @@ | |||||||
| 
 | 
 | ||||||
|     // Set the number of grid points per dimension.
 |     // Set the number of grid points per dimension.
 | ||||||
|     // You probably don't need more than 3 (squared=9).
 |     // You probably don't need more than 3 (squared=9).
 | ||||||
|     #define AUTO_BED_LEVELING_GRID_POINTS 3 |     #define ABL_GRID_POINTS_X 3 | ||||||
|  |     #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X | ||||||
| 
 | 
 | ||||||
|   #else  // !AUTO_BED_LEVELING_GRID
 |   #else  // !AUTO_BED_LEVELING_GRID
 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -745,7 +745,8 @@ | |||||||
| 
 | 
 | ||||||
|     // Set the number of grid points per dimension.
 |     // Set the number of grid points per dimension.
 | ||||||
|     // You probably don't need more than 3 (squared=9).
 |     // You probably don't need more than 3 (squared=9).
 | ||||||
|     #define AUTO_BED_LEVELING_GRID_POINTS 3 |     #define ABL_GRID_POINTS_X 3 | ||||||
|  |     #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X | ||||||
| 
 | 
 | ||||||
|   #else  // !AUTO_BED_LEVELING_GRID
 |   #else  // !AUTO_BED_LEVELING_GRID
 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -768,7 +768,8 @@ | |||||||
| 
 | 
 | ||||||
|     // Set the number of grid points per dimension.
 |     // Set the number of grid points per dimension.
 | ||||||
|     // You probably don't need more than 3 (squared=9).
 |     // You probably don't need more than 3 (squared=9).
 | ||||||
|     #define AUTO_BED_LEVELING_GRID_POINTS 3 |     #define ABL_GRID_POINTS_X 3 | ||||||
|  |     #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X | ||||||
| 
 | 
 | ||||||
|   #else  // !AUTO_BED_LEVELING_GRID
 |   #else  // !AUTO_BED_LEVELING_GRID
 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -751,7 +751,8 @@ | |||||||
| 
 | 
 | ||||||
|     // Set the number of grid points per dimension.
 |     // Set the number of grid points per dimension.
 | ||||||
|     // You probably don't need more than 3 (squared=9).
 |     // You probably don't need more than 3 (squared=9).
 | ||||||
|     #define AUTO_BED_LEVELING_GRID_POINTS 3 |     #define ABL_GRID_POINTS_X 3 | ||||||
|  |     #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X | ||||||
| 
 | 
 | ||||||
|   #else  // !AUTO_BED_LEVELING_GRID
 |   #else  // !AUTO_BED_LEVELING_GRID
 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -751,7 +751,8 @@ | |||||||
| 
 | 
 | ||||||
|     // Set the number of grid points per dimension.
 |     // Set the number of grid points per dimension.
 | ||||||
|     // You probably don't need more than 3 (squared=9).
 |     // You probably don't need more than 3 (squared=9).
 | ||||||
|     #define AUTO_BED_LEVELING_GRID_POINTS 3 |     #define ABL_GRID_POINTS_X 3 | ||||||
|  |     #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X | ||||||
| 
 | 
 | ||||||
|   #else  // !AUTO_BED_LEVELING_GRID
 |   #else  // !AUTO_BED_LEVELING_GRID
 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -751,7 +751,8 @@ | |||||||
| 
 | 
 | ||||||
|     // Set the number of grid points per dimension.
 |     // Set the number of grid points per dimension.
 | ||||||
|     // You probably don't need more than 3 (squared=9).
 |     // You probably don't need more than 3 (squared=9).
 | ||||||
|     #define AUTO_BED_LEVELING_GRID_POINTS 3 |     #define ABL_GRID_POINTS_X 3 | ||||||
|  |     #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X | ||||||
| 
 | 
 | ||||||
|   #else  // !AUTO_BED_LEVELING_GRID
 |   #else  // !AUTO_BED_LEVELING_GRID
 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -749,7 +749,8 @@ | |||||||
| 
 | 
 | ||||||
|     // Set the number of grid points per dimension.
 |     // Set the number of grid points per dimension.
 | ||||||
|     // You probably don't need more than 3 (squared=9).
 |     // You probably don't need more than 3 (squared=9).
 | ||||||
|     #define AUTO_BED_LEVELING_GRID_POINTS 3 |     #define ABL_GRID_POINTS_X 3 | ||||||
|  |     #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X | ||||||
| 
 | 
 | ||||||
|   #else  // !AUTO_BED_LEVELING_GRID
 |   #else  // !AUTO_BED_LEVELING_GRID
 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -761,7 +761,8 @@ | |||||||
| 
 | 
 | ||||||
|     // Set the number of grid points per dimension.
 |     // Set the number of grid points per dimension.
 | ||||||
|     // You probably don't need more than 3 (squared=9).
 |     // You probably don't need more than 3 (squared=9).
 | ||||||
|     #define AUTO_BED_LEVELING_GRID_POINTS 3 |     #define ABL_GRID_POINTS_X 3 | ||||||
|  |     #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X | ||||||
| 
 | 
 | ||||||
|   #else  // !AUTO_BED_LEVELING_GRID
 |   #else  // !AUTO_BED_LEVELING_GRID
 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -772,7 +772,8 @@ | |||||||
| 
 | 
 | ||||||
|     // Set the number of grid points per dimension.
 |     // Set the number of grid points per dimension.
 | ||||||
|     // You probably don't need more than 3 (squared=9).
 |     // You probably don't need more than 3 (squared=9).
 | ||||||
|     #define AUTO_BED_LEVELING_GRID_POINTS 3 |     #define ABL_GRID_POINTS_X 3 | ||||||
|  |     #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X | ||||||
| 
 | 
 | ||||||
|   #else  // !AUTO_BED_LEVELING_GRID
 |   #else  // !AUTO_BED_LEVELING_GRID
 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -743,7 +743,8 @@ | |||||||
| 
 | 
 | ||||||
|     // Set the number of grid points per dimension.
 |     // Set the number of grid points per dimension.
 | ||||||
|     // You probably don't need more than 3 (squared=9).
 |     // You probably don't need more than 3 (squared=9).
 | ||||||
|     #define AUTO_BED_LEVELING_GRID_POINTS 3 |     #define ABL_GRID_POINTS_X 3 | ||||||
|  |     #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X | ||||||
| 
 | 
 | ||||||
|   #else  // !AUTO_BED_LEVELING_GRID
 |   #else  // !AUTO_BED_LEVELING_GRID
 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -751,7 +751,8 @@ | |||||||
| 
 | 
 | ||||||
|     // Set the number of grid points per dimension.
 |     // Set the number of grid points per dimension.
 | ||||||
|     // You probably don't need more than 3 (squared=9).
 |     // You probably don't need more than 3 (squared=9).
 | ||||||
|     #define AUTO_BED_LEVELING_GRID_POINTS 3 |     #define ABL_GRID_POINTS_X 3 | ||||||
|  |     #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X | ||||||
| 
 | 
 | ||||||
|   #else  // !AUTO_BED_LEVELING_GRID
 |   #else  // !AUTO_BED_LEVELING_GRID
 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -844,8 +844,9 @@ | |||||||
|     // Non-linear bed leveling will be used.
 |     // Non-linear bed leveling will be used.
 | ||||||
|     // Compensate by interpolating between the nearest four Z probe values for each point.
 |     // Compensate by interpolating between the nearest four Z probe values for each point.
 | ||||||
|     // Useful for deltas where the print surface may appear like a bowl or dome shape.
 |     // Useful for deltas where the print surface may appear like a bowl or dome shape.
 | ||||||
|     // Works best with AUTO_BED_LEVELING_GRID_POINTS 5 or higher.
 |     // Works best with 5 or more points in each dimension.
 | ||||||
|     #define AUTO_BED_LEVELING_GRID_POINTS 9 |     #define ABL_GRID_POINTS_X 9 | ||||||
|  |     #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X | ||||||
| 
 | 
 | ||||||
|   #else  // !AUTO_BED_LEVELING_GRID
 |   #else  // !AUTO_BED_LEVELING_GRID
 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -838,8 +838,9 @@ | |||||||
|     // Non-linear bed leveling will be used.
 |     // Non-linear bed leveling will be used.
 | ||||||
|     // Compensate by interpolating between the nearest four Z probe values for each point.
 |     // Compensate by interpolating between the nearest four Z probe values for each point.
 | ||||||
|     // Useful for deltas where the print surface may appear like a bowl or dome shape.
 |     // Useful for deltas where the print surface may appear like a bowl or dome shape.
 | ||||||
|     // Works best with AUTO_BED_LEVELING_GRID_POINTS 5 or higher.
 |     // Works best with 5 or more points in each dimension.
 | ||||||
|     #define AUTO_BED_LEVELING_GRID_POINTS 9 |     #define ABL_GRID_POINTS_X 9 | ||||||
|  |     #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X | ||||||
| 
 | 
 | ||||||
|   #else  // !AUTO_BED_LEVELING_GRID
 |   #else  // !AUTO_BED_LEVELING_GRID
 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -841,8 +841,9 @@ | |||||||
|     // Non-linear bed leveling will be used.
 |     // Non-linear bed leveling will be used.
 | ||||||
|     // Compensate by interpolating between the nearest four Z probe values for each point.
 |     // Compensate by interpolating between the nearest four Z probe values for each point.
 | ||||||
|     // Useful for deltas where the print surface may appear like a bowl or dome shape.
 |     // Useful for deltas where the print surface may appear like a bowl or dome shape.
 | ||||||
|     // Works best with AUTO_BED_LEVELING_GRID_POINTS 5 or higher.
 |     // Works best with 5 or more points in each dimension.
 | ||||||
|     #define AUTO_BED_LEVELING_GRID_POINTS 9 |     #define ABL_GRID_POINTS_X 9 | ||||||
|  |     #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X | ||||||
| 
 | 
 | ||||||
|   #else  // !AUTO_BED_LEVELING_GRID
 |   #else  // !AUTO_BED_LEVELING_GRID
 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -842,8 +842,9 @@ | |||||||
|     // Non-linear bed leveling will be used.
 |     // Non-linear bed leveling will be used.
 | ||||||
|     // Compensate by interpolating between the nearest four Z probe values for each point.
 |     // Compensate by interpolating between the nearest four Z probe values for each point.
 | ||||||
|     // Useful for deltas where the print surface may appear like a bowl or dome shape.
 |     // Useful for deltas where the print surface may appear like a bowl or dome shape.
 | ||||||
|     // Works best with AUTO_BED_LEVELING_GRID_POINTS 5 or higher.
 |     // Works best with 5 or more points in each dimension.
 | ||||||
|     #define AUTO_BED_LEVELING_GRID_POINTS 7 |     #define ABL_GRID_POINTS_X 7 | ||||||
|  |     #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X | ||||||
| 
 | 
 | ||||||
|   #else  // !AUTO_BED_LEVELING_GRID
 |   #else  // !AUTO_BED_LEVELING_GRID
 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -844,8 +844,9 @@ | |||||||
|     // Non-linear bed leveling will be used.
 |     // Non-linear bed leveling will be used.
 | ||||||
|     // Compensate by interpolating between the nearest four Z probe values for each point.
 |     // Compensate by interpolating between the nearest four Z probe values for each point.
 | ||||||
|     // Useful for deltas where the print surface may appear like a bowl or dome shape.
 |     // Useful for deltas where the print surface may appear like a bowl or dome shape.
 | ||||||
|     // Works best with AUTO_BED_LEVELING_GRID_POINTS 5 or higher.
 |     // Works best with 5 or more points in each dimension.
 | ||||||
|     #define AUTO_BED_LEVELING_GRID_POINTS 5 |     #define ABL_GRID_POINTS_X 5 | ||||||
|  |     #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X | ||||||
| 
 | 
 | ||||||
|   #else  // !AUTO_BED_LEVELING_GRID
 |   #else  // !AUTO_BED_LEVELING_GRID
 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -754,7 +754,8 @@ | |||||||
| 
 | 
 | ||||||
|     // Set the number of grid points per dimension.
 |     // Set the number of grid points per dimension.
 | ||||||
|     // You probably don't need more than 3 (squared=9).
 |     // You probably don't need more than 3 (squared=9).
 | ||||||
|     #define AUTO_BED_LEVELING_GRID_POINTS 3 |     #define ABL_GRID_POINTS_X 3 | ||||||
|  |     #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X | ||||||
| 
 | 
 | ||||||
|   #else  // !AUTO_BED_LEVELING_GRID
 |   #else  // !AUTO_BED_LEVELING_GRID
 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -747,7 +747,8 @@ | |||||||
| 
 | 
 | ||||||
|     // Set the number of grid points per dimension.
 |     // Set the number of grid points per dimension.
 | ||||||
|     // You probably don't need more than 3 (squared=9).
 |     // You probably don't need more than 3 (squared=9).
 | ||||||
|     #define AUTO_BED_LEVELING_GRID_POINTS 3 |     #define ABL_GRID_POINTS_X 3 | ||||||
|  |     #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X | ||||||
| 
 | 
 | ||||||
|   #else  // !AUTO_BED_LEVELING_GRID
 |   #else  // !AUTO_BED_LEVELING_GRID
 | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user