|
@@ -7448,6 +7448,20 @@ inline void gcode_M503() {
|
7448
|
7448
|
if (code_seen('Z')) {
|
7449
|
7449
|
float value = code_value_axis_units(Z_AXIS);
|
7450
|
7450
|
if (Z_PROBE_OFFSET_RANGE_MIN <= value && value <= Z_PROBE_OFFSET_RANGE_MAX) {
|
|
7451
|
+
|
|
7452
|
+ #if ENABLED(AUTO_BED_LEVELING_BILINEAR)
|
|
7453
|
+ // Correct bilinear grid for new probe offset
|
|
7454
|
+ const float diff = value - zprobe_zoffset;
|
|
7455
|
+ if (diff) {
|
|
7456
|
+ for (uint8_t x = 0; x < ABL_GRID_MAX_POINTS_X; x++)
|
|
7457
|
+ for (uint8_t y = 0; y < ABL_GRID_MAX_POINTS_Y; y++)
|
|
7458
|
+ bed_level_grid[x][y] += diff;
|
|
7459
|
+ }
|
|
7460
|
+ #if ENABLED(ABL_BILINEAR_SUBDIVISION)
|
|
7461
|
+ bed_level_virt_interpolate();
|
|
7462
|
+ #endif
|
|
7463
|
+ #endif
|
|
7464
|
+
|
7451
|
7465
|
zprobe_zoffset = value;
|
7452
|
7466
|
SERIAL_ECHO(zprobe_zoffset);
|
7453
|
7467
|
}
|