Add calculation of difference between auto-correct bed level plane, and measured topo map.
This commit is contained in:
		
				
					committed by
					
						 Richard Wackerbarth
						Richard Wackerbarth
					
				
			
			
				
	
			
			
			
						parent
						
							f7659f02bb
						
					
				
				
					commit
					62302ceb9e
				
			| @@ -2773,6 +2773,9 @@ inline void gcode_G28() { | ||||
|           } | ||||
|         } | ||||
|  | ||||
|         if (!dryrun) set_bed_level_equation_lsq(plane_equation_coefficients); | ||||
|         free(plane_equation_coefficients); | ||||
|  | ||||
|         // Show the Topography map if enabled | ||||
|         if (do_topography_map) { | ||||
|  | ||||
| @@ -2783,10 +2786,22 @@ inline void gcode_G28() { | ||||
|           SERIAL_PROTOCOLPGM("|...Front...|\n"); | ||||
|           SERIAL_PROTOCOLPGM("+-----------+\n"); | ||||
|  | ||||
| 	  float min_diff = 999; | ||||
|  | ||||
|           for (int yy = auto_bed_leveling_grid_points - 1; yy >= 0; yy--) { | ||||
|             for (int xx = 0; xx < auto_bed_leveling_grid_points; xx++) { | ||||
|               int ind = yy * auto_bed_leveling_grid_points + xx; | ||||
|               float diff = eqnBVector[ind] - mean; | ||||
|  | ||||
| 	      float x_tmp = eqnAMatrix[ind + 0 * abl2], | ||||
|                 y_tmp = eqnAMatrix[ind + 1 * abl2], | ||||
|                 z_tmp = 0; | ||||
|  | ||||
| 	      apply_rotation_xyz(plan_bed_level_matrix,x_tmp,y_tmp,z_tmp); | ||||
|  | ||||
| 	      if (eqnBVector[ind] - z_tmp < min_diff) | ||||
|                 min_diff = eqnBVector[ind] - z_tmp; | ||||
|  | ||||
|               if (diff >= 0.0) | ||||
|                 SERIAL_PROTOCOLPGM(" +");   // Include + for column alignment | ||||
|               else | ||||
| @@ -2797,12 +2812,31 @@ inline void gcode_G28() { | ||||
|           } // yy | ||||
|           SERIAL_EOL; | ||||
|  | ||||
| 	  SERIAL_PROTOCOLPGM(" \nCorrected Bed Height vs. Bed Topology: \n"); | ||||
|  | ||||
|           for (int yy = auto_bed_leveling_grid_points - 1; yy >= 0; yy--) { | ||||
|             for (int xx = 0; xx < auto_bed_leveling_grid_points; xx++) { | ||||
|               int ind = yy * auto_bed_leveling_grid_points + xx; | ||||
|               float x_tmp = eqnAMatrix[ind + 0 * abl2], | ||||
|                 y_tmp = eqnAMatrix[ind + 1 * abl2], | ||||
|                 z_tmp = 0; | ||||
|  | ||||
|               apply_rotation_xyz(plan_bed_level_matrix,x_tmp,y_tmp,z_tmp); | ||||
|  | ||||
|               float diff = eqnBVector[ind] - z_tmp - min_diff; | ||||
|               if (diff >= 0.0) | ||||
|                 SERIAL_PROTOCOLPGM(" +"); | ||||
|               // Include + for column alignment | ||||
|               else | ||||
|                 SERIAL_PROTOCOLCHAR(' '); | ||||
|               SERIAL_PROTOCOL_F(diff, 5); | ||||
|             } // xx | ||||
|             SERIAL_EOL; | ||||
|           } // yy | ||||
|           SERIAL_EOL; | ||||
|  | ||||
|         } //do_topography_map | ||||
|  | ||||
|  | ||||
|         if (!dryrun) set_bed_level_equation_lsq(plane_equation_coefficients); | ||||
|         free(plane_equation_coefficients); | ||||
|  | ||||
|       #endif //!DELTA | ||||
|  | ||||
|     #else // !AUTO_BED_LEVELING_GRID | ||||
|   | ||||
		Reference in New Issue
	
	Block a user