|
|
@ -391,7 +391,7 @@ void unified_bed_leveling::G29() { |
|
|
|
|
|
|
|
if (parser.seen('J')) { |
|
|
|
save_ubl_active_state_and_disable(); |
|
|
|
tilt_mesh_based_on_probed_grid(param.grid_size == 0); // Zero size does 3-Point
|
|
|
|
tilt_mesh_based_on_probed_grid(param.J_grid_size == 0); // Zero size does 3-Point
|
|
|
|
restore_ubl_active_state_and_leave(); |
|
|
|
#if ENABLED(UBL_G29_J_RECENTER) |
|
|
|
do_blocking_move_to_xy(0.5f * ((MESH_MIN_X) + (MESH_MAX_X)), 0.5f * ((MESH_MIN_Y) + (MESH_MAX_Y))); |
|
|
@ -1118,8 +1118,8 @@ bool unified_bed_leveling::G29_parse_parameters() { |
|
|
|
|
|
|
|
if (parser.seen('J')) { |
|
|
|
#if HAS_BED_PROBE |
|
|
|
param.grid_size = parser.has_value() ? parser.value_int() : 0; |
|
|
|
if (param.grid_size && !WITHIN(param.grid_size, 2, 9)) { |
|
|
|
param.J_grid_size = parser.value_byte(); |
|
|
|
if (param.J_grid_size && !WITHIN(param.J_grid_size, 2, 9)) { |
|
|
|
SERIAL_ECHOLNPGM("?Invalid grid size (J) specified (2-9).\n"); |
|
|
|
err_flag = true; |
|
|
|
} |
|
|
@ -1420,8 +1420,8 @@ void unified_bed_leveling::smart_fill_mesh() { |
|
|
|
void unified_bed_leveling::tilt_mesh_based_on_probed_grid(const bool do_3_pt_leveling) { |
|
|
|
const float x_min = probe.min_x(), x_max = probe.max_x(), |
|
|
|
y_min = probe.min_y(), y_max = probe.max_y(), |
|
|
|
dx = (x_max - x_min) / (param.grid_size - 1), |
|
|
|
dy = (y_max - y_min) / (param.grid_size - 1); |
|
|
|
dx = (x_max - x_min) / (param.J_grid_size - 1), |
|
|
|
dy = (y_max - y_min) / (param.J_grid_size - 1); |
|
|
|
|
|
|
|
xy_float_t points[3]; |
|
|
|
probe.get_three_points(points); |
|
|
@ -1507,14 +1507,14 @@ void unified_bed_leveling::smart_fill_mesh() { |
|
|
|
|
|
|
|
bool zig_zag = false; |
|
|
|
|
|
|
|
const uint16_t total_points = sq(param.grid_size); |
|
|
|
const uint16_t total_points = sq(param.J_grid_size); |
|
|
|
uint16_t point_num = 1; |
|
|
|
|
|
|
|
xy_pos_t rpos; |
|
|
|
LOOP_L_N(ix, param.grid_size) { |
|
|
|
LOOP_L_N(ix, param.J_grid_size) { |
|
|
|
rpos.x = x_min + ix * dx; |
|
|
|
LOOP_L_N(iy, param.grid_size) { |
|
|
|
rpos.y = y_min + dy * (zig_zag ? param.grid_size - 1 - iy : iy); |
|
|
|
LOOP_L_N(iy, param.J_grid_size) { |
|
|
|
rpos.y = y_min + dy * (zig_zag ? param.J_grid_size - 1 - iy : iy); |
|
|
|
|
|
|
|
if (!abort_flag) { |
|
|
|
SERIAL_ECHOLNPAIR("Tilting mesh point ", point_num, "/", total_points, "\n"); |
|
|
|