|
@ -155,17 +155,14 @@ void GcodeSuite::M420() { |
|
|
|
|
|
|
|
|
// Get the sum and average of all mesh values
|
|
|
// Get the sum and average of all mesh values
|
|
|
float mesh_sum = 0; |
|
|
float mesh_sum = 0; |
|
|
for (uint8_t x = GRID_MAX_POINTS_X; x--;) |
|
|
GRID_LOOP(x, y) mesh_sum += Z_VALUES(x, y); |
|
|
for (uint8_t y = GRID_MAX_POINTS_Y; y--;) |
|
|
|
|
|
mesh_sum += Z_VALUES(x, y); |
|
|
|
|
|
const float zmean = mesh_sum / float(GRID_MAX_POINTS); |
|
|
const float zmean = mesh_sum / float(GRID_MAX_POINTS); |
|
|
|
|
|
|
|
|
#else |
|
|
#else |
|
|
|
|
|
|
|
|
// Find the low and high mesh values
|
|
|
// Find the low and high mesh values
|
|
|
float lo_val = 100, hi_val = -100; |
|
|
float lo_val = 100, hi_val = -100; |
|
|
for (uint8_t x = GRID_MAX_POINTS_X; x--;) |
|
|
GRID_LOOP(x, y) { |
|
|
for (uint8_t y = GRID_MAX_POINTS_Y; y--;) { |
|
|
|
|
|
const float z = Z_VALUES(x, y); |
|
|
const float z = Z_VALUES(x, y); |
|
|
NOMORE(lo_val, z); |
|
|
NOMORE(lo_val, z); |
|
|
NOLESS(hi_val, z); |
|
|
NOLESS(hi_val, z); |
|
@ -179,8 +176,7 @@ void GcodeSuite::M420() { |
|
|
if (!NEAR_ZERO(zmean)) { |
|
|
if (!NEAR_ZERO(zmean)) { |
|
|
set_bed_leveling_enabled(false); |
|
|
set_bed_leveling_enabled(false); |
|
|
// Subtract the mean from all values
|
|
|
// Subtract the mean from all values
|
|
|
for (uint8_t x = GRID_MAX_POINTS_X; x--;) |
|
|
GRID_LOOP(x, y) { |
|
|
for (uint8_t y = GRID_MAX_POINTS_Y; y--;) { |
|
|
|
|
|
Z_VALUES(x, y) -= zmean; |
|
|
Z_VALUES(x, y) -= zmean; |
|
|
#if ENABLED(EXTENSIBLE_UI) |
|
|
#if ENABLED(EXTENSIBLE_UI) |
|
|
ExtUI::onMeshUpdate(x, y, Z_VALUES(x, y)); |
|
|
ExtUI::onMeshUpdate(x, y, Z_VALUES(x, y)); |
|
|