Add EXTRAPOLATE_BEYOND_GRID option to bilinear leveling
This commit is contained in:
		| @@ -825,6 +825,10 @@ | ||||
|  | ||||
|   #if ENABLED(AUTO_BED_LEVELING_BILINEAR) | ||||
|  | ||||
|     // Beyond the probed grid, continue the implied tilt? | ||||
|     // Default is to maintain the height of the nearest edge. | ||||
|     //#define EXTRAPOLATE_BEYOND_GRID | ||||
|  | ||||
|     // | ||||
|     // Experimental Subdivision of the grid by Catmull-Rom method. | ||||
|     // Synthesizes intermediate points to produce a more detailed mesh. | ||||
|   | ||||
| @@ -10592,12 +10592,25 @@ void ok_to_send() { | ||||
|     const float x = RAW_X_POSITION(logical[X_AXIS]) - bilinear_start[X_AXIS], | ||||
|                 y = RAW_Y_POSITION(logical[Y_AXIS]) - bilinear_start[Y_AXIS]; | ||||
|  | ||||
|     #if ENABLED(EXTRAPOLATE_BEYOND_GRID) | ||||
|       // Keep using the last grid box | ||||
|       #define FAR_EDGE_OR_BOX 2 | ||||
|     #else | ||||
|       // Just use the grid far edge | ||||
|       #define FAR_EDGE_OR_BOX 1 | ||||
|     #endif | ||||
|  | ||||
|     if (last_x != x) { | ||||
|       last_x = x; | ||||
|       ratio_x = x * ABL_BG_FACTOR(X_AXIS); | ||||
|       const float gx = constrain(floor(ratio_x), 0, ABL_BG_POINTS_X - 1); | ||||
|       const float gx = constrain(floor(ratio_x), 0, ABL_BG_POINTS_X - FAR_EDGE_OR_BOX); | ||||
|       ratio_x -= gx;      // Subtract whole to get the ratio within the grid box | ||||
|       NOLESS(ratio_x, 0); // Never < 0.0. (> 1.0 is ok when nextx==gridx.) | ||||
|  | ||||
|       #if DISABLED(EXTRAPOLATE_BEYOND_GRID) | ||||
|         // Beyond the grid maintain height at grid edges | ||||
|         NOLESS(ratio_x, 0); // Never < 0.0. (> 1.0 is ok when nextx==gridx.) | ||||
|       #endif | ||||
|  | ||||
|       gridx = gx; | ||||
|       nextx = min(gridx + 1, ABL_BG_POINTS_X - 1); | ||||
|     } | ||||
| @@ -10607,9 +10620,14 @@ void ok_to_send() { | ||||
|       if (last_y != y) { | ||||
|         last_y = y; | ||||
|         ratio_y = y * ABL_BG_FACTOR(Y_AXIS); | ||||
|         const float gy = constrain(floor(ratio_y), 0, ABL_BG_POINTS_Y - 1); | ||||
|         const float gy = constrain(floor(ratio_y), 0, ABL_BG_POINTS_Y - FAR_EDGE_OR_BOX); | ||||
|         ratio_y -= gy; | ||||
|         NOLESS(ratio_y, 0); | ||||
|  | ||||
|         #if DISABLED(EXTRAPOLATE_BEYOND_GRID) | ||||
|           // Beyond the grid maintain height at grid edges | ||||
|           NOLESS(ratio_y, 0); // Never < 0.0. (> 1.0 is ok when nexty==gridy.) | ||||
|         #endif | ||||
|  | ||||
|         gridy = gy; | ||||
|         nexty = min(gridy + 1, ABL_BG_POINTS_Y - 1); | ||||
|       } | ||||
|   | ||||
| @@ -823,6 +823,10 @@ | ||||
|  | ||||
|   #if ENABLED(AUTO_BED_LEVELING_BILINEAR) | ||||
|  | ||||
|     // Beyond the probed grid, continue the implied tilt? | ||||
|     // Default is to maintain the height of the nearest edge. | ||||
|     //#define EXTRAPOLATE_BEYOND_GRID | ||||
|  | ||||
|     // | ||||
|     // Experimental Subdivision of the grid by Catmull-Rom method. | ||||
|     // Synthesizes intermediate points to produce a more detailed mesh. | ||||
|   | ||||
| @@ -807,6 +807,10 @@ | ||||
|  | ||||
|   #if ENABLED(AUTO_BED_LEVELING_BILINEAR) | ||||
|  | ||||
|     // Beyond the probed grid, continue the implied tilt? | ||||
|     // Default is to maintain the height of the nearest edge. | ||||
|     //#define EXTRAPOLATE_BEYOND_GRID | ||||
|  | ||||
|     // | ||||
|     // Experimental Subdivision of the grid by Catmull-Rom method. | ||||
|     // Synthesizes intermediate points to produce a more detailed mesh. | ||||
|   | ||||
| @@ -807,6 +807,10 @@ | ||||
|  | ||||
|   #if ENABLED(AUTO_BED_LEVELING_BILINEAR) | ||||
|  | ||||
|     // Beyond the probed grid, continue the implied tilt? | ||||
|     // Default is to maintain the height of the nearest edge. | ||||
|     //#define EXTRAPOLATE_BEYOND_GRID | ||||
|  | ||||
|     // | ||||
|     // Experimental Subdivision of the grid by Catmull-Rom method. | ||||
|     // Synthesizes intermediate points to produce a more detailed mesh. | ||||
|   | ||||
| @@ -827,6 +827,10 @@ | ||||
|  | ||||
|   #if ENABLED(AUTO_BED_LEVELING_BILINEAR) | ||||
|  | ||||
|     // Beyond the probed grid, continue the implied tilt? | ||||
|     // Default is to maintain the height of the nearest edge. | ||||
|     //#define EXTRAPOLATE_BEYOND_GRID | ||||
|  | ||||
|     // | ||||
|     // Experimental Subdivision of the grid by Catmull-Rom method. | ||||
|     // Synthesizes intermediate points to produce a more detailed mesh. | ||||
|   | ||||
| @@ -815,6 +815,10 @@ | ||||
|  | ||||
|   #if ENABLED(AUTO_BED_LEVELING_BILINEAR) | ||||
|  | ||||
|     // Beyond the probed grid, continue the implied tilt? | ||||
|     // Default is to maintain the height of the nearest edge. | ||||
|     //#define EXTRAPOLATE_BEYOND_GRID | ||||
|  | ||||
|     // | ||||
|     // Experimental Subdivision of the grid by Catmull-Rom method. | ||||
|     // Synthesizes intermediate points to produce a more detailed mesh. | ||||
|   | ||||
| @@ -818,6 +818,10 @@ | ||||
|  | ||||
|   #if ENABLED(AUTO_BED_LEVELING_BILINEAR) | ||||
|  | ||||
|     // Beyond the probed grid, continue the implied tilt? | ||||
|     // Default is to maintain the height of the nearest edge. | ||||
|     //#define EXTRAPOLATE_BEYOND_GRID | ||||
|  | ||||
|     // | ||||
|     // Experimental Subdivision of the grid by Catmull-Rom method. | ||||
|     // Synthesizes intermediate points to produce a more detailed mesh. | ||||
|   | ||||
| @@ -853,6 +853,10 @@ | ||||
|  | ||||
|   #if ENABLED(AUTO_BED_LEVELING_BILINEAR) | ||||
|  | ||||
|     // Beyond the probed grid, continue the implied tilt? | ||||
|     // Default is to maintain the height of the nearest edge. | ||||
|     //#define EXTRAPOLATE_BEYOND_GRID | ||||
|  | ||||
|     // | ||||
|     // Experimental Subdivision of the grid by Catmull-Rom method. | ||||
|     // Synthesizes intermediate points to produce a more detailed mesh. | ||||
|   | ||||
| @@ -824,6 +824,10 @@ | ||||
|  | ||||
|   #if ENABLED(AUTO_BED_LEVELING_BILINEAR) | ||||
|  | ||||
|     // Beyond the probed grid, continue the implied tilt? | ||||
|     // Default is to maintain the height of the nearest edge. | ||||
|     //#define EXTRAPOLATE_BEYOND_GRID | ||||
|  | ||||
|     // | ||||
|     // Experimental Subdivision of the grid by Catmull-Rom method. | ||||
|     // Synthesizes intermediate points to produce a more detailed mesh. | ||||
|   | ||||
| @@ -824,6 +824,10 @@ | ||||
|  | ||||
|   #if ENABLED(AUTO_BED_LEVELING_BILINEAR) | ||||
|  | ||||
|     // Beyond the probed grid, continue the implied tilt? | ||||
|     // Default is to maintain the height of the nearest edge. | ||||
|     //#define EXTRAPOLATE_BEYOND_GRID | ||||
|  | ||||
|     // | ||||
|     // Experimental Subdivision of the grid by Catmull-Rom method. | ||||
|     // Synthesizes intermediate points to produce a more detailed mesh. | ||||
|   | ||||
| @@ -824,6 +824,10 @@ | ||||
|  | ||||
|   #if ENABLED(AUTO_BED_LEVELING_BILINEAR) | ||||
|  | ||||
|     // Beyond the probed grid, continue the implied tilt? | ||||
|     // Default is to maintain the height of the nearest edge. | ||||
|     //#define EXTRAPOLATE_BEYOND_GRID | ||||
|  | ||||
|     // | ||||
|     // Experimental Subdivision of the grid by Catmull-Rom method. | ||||
|     // Synthesizes intermediate points to produce a more detailed mesh. | ||||
|   | ||||
| @@ -823,6 +823,10 @@ | ||||
|  | ||||
|   #if ENABLED(AUTO_BED_LEVELING_BILINEAR) | ||||
|  | ||||
|     // Beyond the probed grid, continue the implied tilt? | ||||
|     // Default is to maintain the height of the nearest edge. | ||||
|     //#define EXTRAPOLATE_BEYOND_GRID | ||||
|  | ||||
|     // | ||||
|     // Experimental Subdivision of the grid by Catmull-Rom method. | ||||
|     // Synthesizes intermediate points to produce a more detailed mesh. | ||||
|   | ||||
| @@ -839,6 +839,10 @@ | ||||
|  | ||||
|   #if ENABLED(AUTO_BED_LEVELING_BILINEAR) | ||||
|  | ||||
|     // Beyond the probed grid, continue the implied tilt? | ||||
|     // Default is to maintain the height of the nearest edge. | ||||
|     //#define EXTRAPOLATE_BEYOND_GRID | ||||
|  | ||||
|     // | ||||
|     // Experimental Subdivision of the grid by Catmull-Rom method. | ||||
|     // Synthesizes intermediate points to produce a more detailed mesh. | ||||
|   | ||||
| @@ -844,6 +844,10 @@ | ||||
|  | ||||
|   #if ENABLED(AUTO_BED_LEVELING_BILINEAR) | ||||
|  | ||||
|     // Beyond the probed grid, continue the implied tilt? | ||||
|     // Default is to maintain the height of the nearest edge. | ||||
|     //#define EXTRAPOLATE_BEYOND_GRID | ||||
|  | ||||
|     // | ||||
|     // Experimental Subdivision of the grid by Catmull-Rom method. | ||||
|     // Synthesizes intermediate points to produce a more detailed mesh. | ||||
|   | ||||
| @@ -880,6 +880,10 @@ | ||||
|  | ||||
|   #if ENABLED(AUTO_BED_LEVELING_BILINEAR) | ||||
|  | ||||
|     // Beyond the probed grid, continue the implied tilt? | ||||
|     // Default is to maintain the height of the nearest edge. | ||||
|     //#define EXTRAPOLATE_BEYOND_GRID | ||||
|  | ||||
|     // | ||||
|     // Experimental Subdivision of the grid by Catmull-Rom method. | ||||
|     // Synthesizes intermediate points to produce a more detailed mesh. | ||||
|   | ||||
| @@ -815,6 +815,10 @@ | ||||
|  | ||||
|   #if ENABLED(AUTO_BED_LEVELING_BILINEAR) | ||||
|  | ||||
|     // Beyond the probed grid, continue the implied tilt? | ||||
|     // Default is to maintain the height of the nearest edge. | ||||
|     //#define EXTRAPOLATE_BEYOND_GRID | ||||
|  | ||||
|     // | ||||
|     // Experimental Subdivision of the grid by Catmull-Rom method. | ||||
|     // Synthesizes intermediate points to produce a more detailed mesh. | ||||
|   | ||||
| @@ -824,6 +824,10 @@ | ||||
|  | ||||
|   #if ENABLED(AUTO_BED_LEVELING_BILINEAR) | ||||
|  | ||||
|     // Beyond the probed grid, continue the implied tilt? | ||||
|     // Default is to maintain the height of the nearest edge. | ||||
|     //#define EXTRAPOLATE_BEYOND_GRID | ||||
|  | ||||
|     // | ||||
|     // Experimental Subdivision of the grid by Catmull-Rom method. | ||||
|     // Synthesizes intermediate points to produce a more detailed mesh. | ||||
|   | ||||
| @@ -943,6 +943,10 @@ | ||||
|  | ||||
|   #if ENABLED(AUTO_BED_LEVELING_BILINEAR) | ||||
|  | ||||
|     // Beyond the probed grid, continue the implied tilt? | ||||
|     // Default is to maintain the height of the nearest edge. | ||||
|     //#define EXTRAPOLATE_BEYOND_GRID | ||||
|  | ||||
|     // | ||||
|     // Experimental Subdivision of the grid by Catmull-Rom method. | ||||
|     // Synthesizes intermediate points to produce a more detailed mesh. | ||||
|   | ||||
| @@ -935,6 +935,10 @@ | ||||
|  | ||||
|   #if ENABLED(AUTO_BED_LEVELING_BILINEAR) | ||||
|  | ||||
|     // Beyond the probed grid, continue the implied tilt? | ||||
|     // Default is to maintain the height of the nearest edge. | ||||
|     //#define EXTRAPOLATE_BEYOND_GRID | ||||
|  | ||||
|     // | ||||
|     // Experimental Subdivision of the grid by Catmull-Rom method. | ||||
|     // Synthesizes intermediate points to produce a more detailed mesh. | ||||
|   | ||||
| @@ -941,6 +941,10 @@ | ||||
|  | ||||
|   #if ENABLED(AUTO_BED_LEVELING_BILINEAR) | ||||
|  | ||||
|     // Beyond the probed grid, continue the implied tilt? | ||||
|     // Default is to maintain the height of the nearest edge. | ||||
|     //#define EXTRAPOLATE_BEYOND_GRID | ||||
|  | ||||
|     // | ||||
|     // Experimental Subdivision of the grid by Catmull-Rom method. | ||||
|     // Synthesizes intermediate points to produce a more detailed mesh. | ||||
|   | ||||
| @@ -809,6 +809,10 @@ | ||||
|  | ||||
|   #if ENABLED(AUTO_BED_LEVELING_BILINEAR) | ||||
|  | ||||
|     // Beyond the probed grid, continue the implied tilt? | ||||
|     // Default is to maintain the height of the nearest edge. | ||||
|     //#define EXTRAPOLATE_BEYOND_GRID | ||||
|  | ||||
|     // | ||||
|     // Experimental Subdivision of the grid by Catmull-Rom method. | ||||
|     // Synthesizes intermediate points to produce a more detailed mesh. | ||||
|   | ||||
| @@ -827,6 +827,10 @@ | ||||
|  | ||||
|   #if ENABLED(AUTO_BED_LEVELING_BILINEAR) | ||||
|  | ||||
|     // Beyond the probed grid, continue the implied tilt? | ||||
|     // Default is to maintain the height of the nearest edge. | ||||
|     //#define EXTRAPOLATE_BEYOND_GRID | ||||
|  | ||||
|     // | ||||
|     // Experimental Subdivision of the grid by Catmull-Rom method. | ||||
|     // Synthesizes intermediate points to produce a more detailed mesh. | ||||
|   | ||||
| @@ -820,6 +820,10 @@ | ||||
|  | ||||
|   #if ENABLED(AUTO_BED_LEVELING_BILINEAR) | ||||
|  | ||||
|     // Beyond the probed grid, continue the implied tilt? | ||||
|     // Default is to maintain the height of the nearest edge. | ||||
|     //#define EXTRAPOLATE_BEYOND_GRID | ||||
|  | ||||
|     // | ||||
|     // Experimental Subdivision of the grid by Catmull-Rom method. | ||||
|     // Synthesizes intermediate points to produce a more detailed mesh. | ||||
|   | ||||
| @@ -829,6 +829,10 @@ | ||||
|  | ||||
|   #if ENABLED(AUTO_BED_LEVELING_BILINEAR) | ||||
|  | ||||
|     // Beyond the probed grid, continue the implied tilt? | ||||
|     // Default is to maintain the height of the nearest edge. | ||||
|     //#define EXTRAPOLATE_BEYOND_GRID | ||||
|  | ||||
|     // | ||||
|     // Experimental Subdivision of the grid by Catmull-Rom method. | ||||
|     // Synthesizes intermediate points to produce a more detailed mesh. | ||||
|   | ||||
		Reference in New Issue
	
	Block a user