parent
9fa9eebe51
commit
94edfc0a8f
|
@ -32,7 +32,7 @@
|
||||||
#define UBL_OK false
|
#define UBL_OK false
|
||||||
#define UBL_ERR true
|
#define UBL_ERR true
|
||||||
|
|
||||||
enum MeshPointType : char { INVALID, REAL, SET_IN_BITMAP };
|
enum MeshPointType : char { INVALID, REAL, SET_IN_BITMAP, CLOSEST };
|
||||||
|
|
||||||
// External references
|
// External references
|
||||||
|
|
||||||
|
|
|
@ -1282,7 +1282,7 @@ mesh_index_pair unified_bed_leveling::find_furthest_invalid_mesh_point() {
|
||||||
|
|
||||||
static bool test_func(uint8_t i, uint8_t j, void *data) {
|
static bool test_func(uint8_t i, uint8_t j, void *data) {
|
||||||
find_closest_t *d = (find_closest_t*)data;
|
find_closest_t *d = (find_closest_t*)data;
|
||||||
if ( (d->type == (isnan(ubl.z_values[i][j]) ? INVALID : REAL))
|
if ( d->type == CLOSEST || d->type == (isnan(ubl.z_values[i][j]) ? INVALID : REAL)
|
||||||
|| (d->type == SET_IN_BITMAP && !d->done_flags->marked(i, j))
|
|| (d->type == SET_IN_BITMAP && !d->done_flags->marked(i, j))
|
||||||
) {
|
) {
|
||||||
// Found a Mesh Point of the specified type!
|
// Found a Mesh Point of the specified type!
|
||||||
|
@ -1326,7 +1326,7 @@ mesh_index_pair unified_bed_leveling::find_closest_mesh_point_of_type(const Mesh
|
||||||
float best_so_far = 99999.99f;
|
float best_so_far = 99999.99f;
|
||||||
|
|
||||||
GRID_LOOP(i, j) {
|
GRID_LOOP(i, j) {
|
||||||
if ( (type == (isnan(z_values[i][j]) ? INVALID : REAL))
|
if ( type == CLOSEST || type == (isnan(z_values[i][j]) ? INVALID : REAL)
|
||||||
|| (type == SET_IN_BITMAP && !done_flags->marked(i, j))
|
|| (type == SET_IN_BITMAP && !done_flags->marked(i, j))
|
||||||
) {
|
) {
|
||||||
// Found a Mesh Point of the specified type!
|
// Found a Mesh Point of the specified type!
|
||||||
|
|
|
@ -54,7 +54,7 @@ void GcodeSuite::M421() {
|
||||||
hasZ = parser.seen('Z'),
|
hasZ = parser.seen('Z'),
|
||||||
hasQ = !hasZ && parser.seen('Q');
|
hasQ = !hasZ && parser.seen('Q');
|
||||||
|
|
||||||
if (hasC) ij = ubl.find_closest_mesh_point_of_type(REAL, current_position);
|
if (hasC) ij = ubl.find_closest_mesh_point_of_type(CLOSEST, current_position);
|
||||||
|
|
||||||
if (int(hasC) + int(hasI && hasJ) != 1 || !(hasZ || hasQ || hasN))
|
if (int(hasC) + int(hasI && hasJ) != 1 || !(hasZ || hasQ || hasN))
|
||||||
SERIAL_ERROR_MSG(STR_ERR_M421_PARAMETERS);
|
SERIAL_ERROR_MSG(STR_ERR_M421_PARAMETERS);
|
||||||
|
|
Loading…
Reference in a new issue