Add EXTRAPOLATE_BEYOND_GRID option to bilinear leveling
This commit is contained in:
		
							parent
							
								
									e1b85ff67b
								
							
						
					
					
						commit
						da08e11acd
					
				| @ -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.
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user