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 |         // Show the Topography map if enabled | ||||||
|         if (do_topography_map) { |         if (do_topography_map) { | ||||||
|  |  | ||||||
| @@ -2783,10 +2786,22 @@ inline void gcode_G28() { | |||||||
|           SERIAL_PROTOCOLPGM("|...Front...|\n"); |           SERIAL_PROTOCOLPGM("|...Front...|\n"); | ||||||
|           SERIAL_PROTOCOLPGM("+-----------+\n"); |           SERIAL_PROTOCOLPGM("+-----------+\n"); | ||||||
|  |  | ||||||
|  | 	  float min_diff = 999; | ||||||
|  |  | ||||||
|           for (int yy = auto_bed_leveling_grid_points - 1; yy >= 0; yy--) { |           for (int yy = auto_bed_leveling_grid_points - 1; yy >= 0; yy--) { | ||||||
|             for (int xx = 0; xx < auto_bed_leveling_grid_points; xx++) { |             for (int xx = 0; xx < auto_bed_leveling_grid_points; xx++) { | ||||||
|               int ind = yy * auto_bed_leveling_grid_points + xx; |               int ind = yy * auto_bed_leveling_grid_points + xx; | ||||||
|               float diff = eqnBVector[ind] - mean; |               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) |               if (diff >= 0.0) | ||||||
|                 SERIAL_PROTOCOLPGM(" +");   // Include + for column alignment |                 SERIAL_PROTOCOLPGM(" +");   // Include + for column alignment | ||||||
|               else |               else | ||||||
| @@ -2797,12 +2812,31 @@ inline void gcode_G28() { | |||||||
|           } // yy |           } // yy | ||||||
|           SERIAL_EOL; |           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 |         } //do_topography_map | ||||||
|  |  | ||||||
|  |  | ||||||
|         if (!dryrun) set_bed_level_equation_lsq(plane_equation_coefficients); |  | ||||||
|         free(plane_equation_coefficients); |  | ||||||
|  |  | ||||||
|       #endif //!DELTA |       #endif //!DELTA | ||||||
|  |  | ||||||
|     #else // !AUTO_BED_LEVELING_GRID |     #else // !AUTO_BED_LEVELING_GRID | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user