|
@ -2098,14 +2098,16 @@ void MarlinSettings::reset( |
|
|
|
|
|
|
|
|
#if ENABLED(MESH_BED_LEVELING) |
|
|
#if ENABLED(MESH_BED_LEVELING) |
|
|
|
|
|
|
|
|
for (uint8_t py = 0; py < GRID_MAX_POINTS_Y; py++) { |
|
|
if (leveling_is_valid()) { |
|
|
for (uint8_t px = 0; px < GRID_MAX_POINTS_X; px++) { |
|
|
for (uint8_t py = 0; py < GRID_MAX_POINTS_Y; py++) { |
|
|
CONFIG_ECHO_START; |
|
|
for (uint8_t px = 0; px < GRID_MAX_POINTS_X; px++) { |
|
|
SERIAL_ECHOPAIR_P(port, " G29 S3 X", (int)px + 1); |
|
|
CONFIG_ECHO_START; |
|
|
SERIAL_ECHOPAIR_P(port, " Y", (int)py + 1); |
|
|
SERIAL_ECHOPAIR_P(port, " G29 S3 X", (int)px + 1); |
|
|
SERIAL_ECHOPGM_P(port, " Z"); |
|
|
SERIAL_ECHOPAIR_P(port, " Y", (int)py + 1); |
|
|
SERIAL_PROTOCOL_F_P(port, LINEAR_UNIT(mbl.z_values[px][py]), 5); |
|
|
SERIAL_ECHOPGM_P(port, " Z"); |
|
|
SERIAL_EOL_P(port); |
|
|
SERIAL_PROTOCOL_F_P(port, LINEAR_UNIT(mbl.z_values[px][py]), 5); |
|
|
|
|
|
SERIAL_EOL_P(port); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
@ -2119,6 +2121,27 @@ void MarlinSettings::reset( |
|
|
SERIAL_ECHOLNPGM_P(port, " meshes.\n"); |
|
|
SERIAL_ECHOLNPGM_P(port, " meshes.\n"); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
ubl.report_current_mesh( |
|
|
|
|
|
#if ADD_PORT_ARG |
|
|
|
|
|
port |
|
|
|
|
|
#endif |
|
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
#elif ENABLED(AUTO_BED_LEVELING_BILINEAR) |
|
|
|
|
|
|
|
|
|
|
|
if (leveling_is_valid()) { |
|
|
|
|
|
for (uint8_t py = 0; py < GRID_MAX_POINTS_Y; py++) { |
|
|
|
|
|
for (uint8_t px = 0; px < GRID_MAX_POINTS_X; px++) { |
|
|
|
|
|
CONFIG_ECHO_START; |
|
|
|
|
|
SERIAL_ECHOPAIR_P(port, " G29 W I", (int)px + 1); |
|
|
|
|
|
SERIAL_ECHOPAIR_P(port, " J", (int)py + 1); |
|
|
|
|
|
SERIAL_ECHOPGM_P(port, " Z"); |
|
|
|
|
|
SERIAL_PROTOCOL_F_P(port, LINEAR_UNIT(z_values[px][py]), 5); |
|
|
|
|
|
SERIAL_EOL_P(port); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
#endif |
|
|
#endif |
|
|
|
|
|
|
|
|
#endif // HAS_LEVELING
|
|
|
#endif // HAS_LEVELING
|
|
|