diff --git a/Marlin/Conditionals_post.h b/Marlin/Conditionals_post.h index 1a99ee2fb4..5c34ac48b2 100644 --- a/Marlin/Conditionals_post.h +++ b/Marlin/Conditionals_post.h @@ -834,7 +834,7 @@ #define DELTA_PROBEABLE_RADIUS DELTA_PRINTABLE_RADIUS #endif #endif - + // Shorthand #define GRID_MAX_POINTS ((GRID_MAX_POINTS_X) * (GRID_MAX_POINTS_Y)) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 01151bc968..d59143d19a 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -3713,7 +3713,7 @@ inline void gcode_G4() { * Z Home to the Z endstop * */ -inline void gcode_G28() { +inline void gcode_G28(const bool always_home_all) { #if ENABLED(DEBUG_LEVELING_FEATURE) if (DEBUGGING(LEVELING)) { @@ -3760,14 +3760,16 @@ inline void gcode_G28() { #else // NOT DELTA - const bool homeX = code_seen('X'), homeY = code_seen('Y'), homeZ = code_seen('Z'), - home_all_axis = (!homeX && !homeY && !homeZ) || (homeX && homeY && homeZ); + const bool homeX = always_home_all || code_seen('X'), + homeY = always_home_all || code_seen('Y'), + homeZ = always_home_all || code_seen('Z'), + home_all = (!homeX && !homeY && !homeZ) || (homeX && homeY && homeZ); set_destination_to_current(); #if Z_HOME_DIR > 0 // If homing away from BED do Z first - if (home_all_axis || homeZ) { + if (home_all || homeZ) { HOMEAXIS(Z); #if ENABLED(DEBUG_LEVELING_FEATURE) if (DEBUGGING(LEVELING)) DEBUG_POS("> HOMEAXIS(Z)", current_position); @@ -3776,7 +3778,7 @@ inline void gcode_G28() { #else - if (home_all_axis || homeX || homeY) { + if (home_all || homeX || homeY) { // Raise Z before homing any other axes and z is not already high enough (never lower z) destination[Z_AXIS] = LOGICAL_Z_POSITION(Z_HOMING_HEIGHT); if (destination[Z_AXIS] > current_position[Z_AXIS]) { @@ -3794,14 +3796,14 @@ inline void gcode_G28() { #if ENABLED(QUICK_HOME) - if (home_all_axis || (homeX && homeY)) quick_home_xy(); + if (home_all || (homeX && homeY)) quick_home_xy(); #endif #if ENABLED(HOME_Y_BEFORE_X) // Home Y - if (home_all_axis || homeY) { + if (home_all || homeY) { HOMEAXIS(Y); #if ENABLED(DEBUG_LEVELING_FEATURE) if (DEBUGGING(LEVELING)) DEBUG_POS("> homeY", current_position); @@ -3811,7 +3813,7 @@ inline void gcode_G28() { #endif // Home X - if (home_all_axis || homeX) { + if (home_all || homeX) { #if ENABLED(DUAL_X_CARRIAGE) @@ -3844,7 +3846,7 @@ inline void gcode_G28() { #if DISABLED(HOME_Y_BEFORE_X) // Home Y - if (home_all_axis || homeY) { + if (home_all || homeY) { HOMEAXIS(Y); #if ENABLED(DEBUG_LEVELING_FEATURE) if (DEBUGGING(LEVELING)) DEBUG_POS("> homeY", current_position); @@ -3854,16 +3856,16 @@ inline void gcode_G28() { // Home Z last if homing towards the bed #if Z_HOME_DIR < 0 - if (home_all_axis || homeZ) { + if (home_all || homeZ) { #if ENABLED(Z_SAFE_HOMING) home_z_safely(); #else HOMEAXIS(Z); #endif #if ENABLED(DEBUG_LEVELING_FEATURE) - if (DEBUGGING(LEVELING)) DEBUG_POS("> (home_all_axis || homeZ) > final", current_position); + if (DEBUGGING(LEVELING)) DEBUG_POS("> (home_all || homeZ) > final", current_position); #endif - } // home_all_axis || homeZ + } // home_all || homeZ #endif // Z_HOME_DIR < 0 SYNC_PLAN_POSITION_KINEMATIC(); @@ -3895,7 +3897,7 @@ inline void gcode_G28() { #endif } // G28 -void home_all_axes() { gcode_G28(); } +void home_all_axes() { gcode_G28(true); } #if HAS_PROBING_PROCEDURE @@ -9858,7 +9860,7 @@ void process_next_command() { #endif // NOZZLE_PARK_FEATURE case 28: // G28: Home all axes, one at a time - gcode_G28(); + gcode_G28(false); break; #if HAS_LEVELING diff --git a/Marlin/example_configurations/delta/generic/Configuration.h b/Marlin/example_configurations/delta/generic/Configuration.h index 7b5fdad7a9..9b810fcf30 100644 --- a/Marlin/example_configurations/delta/generic/Configuration.h +++ b/Marlin/example_configurations/delta/generic/Configuration.h @@ -922,10 +922,10 @@ // at which point movement will be level to the machine's XY plane. // The height can be set with M420 Z //#define ENABLE_LEVELING_FADE_HEIGHT - + // Set the boundaries for probing (where the probe can reach). #define DELTA_PROBEABLE_RADIUS (DELTA_PRINTABLE_RADIUS - 10) - + #endif #if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR) diff --git a/Marlin/example_configurations/delta/kossel_mini/Configuration.h b/Marlin/example_configurations/delta/kossel_mini/Configuration.h index e48cceb504..8db5f7c356 100644 --- a/Marlin/example_configurations/delta/kossel_mini/Configuration.h +++ b/Marlin/example_configurations/delta/kossel_mini/Configuration.h @@ -920,10 +920,10 @@ // at which point movement will be level to the machine's XY plane. // The height can be set with M420 Z //#define ENABLE_LEVELING_FADE_HEIGHT - + // Set the boundaries for probing (where the probe can reach). #define DELTA_PROBEABLE_RADIUS (DELTA_PRINTABLE_RADIUS - 10) - + #endif #if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR) diff --git a/Marlin/example_configurations/delta/kossel_pro/Configuration.h b/Marlin/example_configurations/delta/kossel_pro/Configuration.h index 0cbd2dbb66..2eb723ff3f 100644 --- a/Marlin/example_configurations/delta/kossel_pro/Configuration.h +++ b/Marlin/example_configurations/delta/kossel_pro/Configuration.h @@ -926,10 +926,10 @@ // at which point movement will be level to the machine's XY plane. // The height can be set with M420 Z //#define ENABLE_LEVELING_FADE_HEIGHT - + // Set the boundaries for probing (where the probe can reach). #define DELTA_PROBEABLE_RADIUS (DELTA_PRINTABLE_RADIUS - 10) - + #endif #if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR) diff --git a/Marlin/example_configurations/delta/kossel_xl/Configuration.h b/Marlin/example_configurations/delta/kossel_xl/Configuration.h index b1f834b6ae..a6d08014be 100644 --- a/Marlin/example_configurations/delta/kossel_xl/Configuration.h +++ b/Marlin/example_configurations/delta/kossel_xl/Configuration.h @@ -989,10 +989,10 @@ // at which point movement will be level to the machine's XY plane. // The height can be set with M420 Z //#define ENABLE_LEVELING_FADE_HEIGHT - + // Set the boundaries for probing (where the probe can reach). #define DELTA_PROBEABLE_RADIUS (DELTA_PRINTABLE_RADIUS - 10) - + #endif #if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR) diff --git a/Marlin/ubl_G29.cpp b/Marlin/ubl_G29.cpp index e3a6294cd4..065256c8d5 100644 --- a/Marlin/ubl_G29.cpp +++ b/Marlin/ubl_G29.cpp @@ -322,17 +322,15 @@ // Check for commands that require the printer to be homed. if (axis_unhomed_error()) { - if (code_seen('J')) + if (code_seen('J')) home_all_axes(); - else - if (code_seen('P')) { - int p_val; - if (code_has_value()) { - p_val = code_value_int(); - if ( p_val==1 || p_val==2 || p_val==4 ) - home_all_axes(); - } + else if (code_seen('P')) { + if (code_has_value()) { + const int p_val = code_value_int(); + if (p_val == 1 || p_val == 2 || p_val == 4) + home_all_axes(); } + } } if (g29_parameter_parsing()) return; // abort if parsing the simple parameters causes a problem, @@ -1341,15 +1339,7 @@ // Also for round beds, there are grid points outside the bed that nozzle can't reach. // Prune them from the list and ignore them till the next Phase (manual nozzle probing). -// if ((probe_as_reference && position_is_reachable_by_probe_raw_xy(mx, my)) || position_is_reachable_raw_xy(mx, my)) -// continue; -// -// THE ABOVE CODE IS NOT A REPLACEMENT FOR THE CODE BELOW!!!!!!! -// - bool reachable = probe_as_reference ? - position_is_reachable_by_probe_raw_xy( mx, my ) : - position_is_reachable_raw_xy( mx, my ); - if ( ! reachable ) + if ( ! (probe_as_reference ? position_is_reachable_by_probe_raw_xy(mx, my) : position_is_reachable_raw_xy(mx, my)) ) continue; // Reachable. Check if it's the closest location to the nozzle. diff --git a/Marlin/ubl_motion.cpp b/Marlin/ubl_motion.cpp index b31516086f..64aac5e170 100644 --- a/Marlin/ubl_motion.cpp +++ b/Marlin/ubl_motion.cpp @@ -632,7 +632,7 @@ z_cxyd = z_cxy1 - z_cxy0; // z height difference along cx from y0 to y1 float z_cxym = z_cxyd * (1.0 / (MESH_Y_DIST)); // z slope per y along cx from y0 to y1 - + // float z_cxcy = z_cxy0 + z_cxym * cy; // interpolated mesh z height along cx at cy (do inside the segment loop) // As subsequent segments step through this cell, the z_cxy0 intercept will change @@ -649,7 +649,7 @@ #if ENABLED(ENABLE_LEVELING_FADE_HEIGHT) z_cxcy *= fade_scaling_factor; // apply fade factor to interpolated mesh height #endif - + z_cxcy += ubl.state.z_offset; // add fixed mesh offset from G29 Z if (--segments == 0) { // if this is last segment, use ltarget for exact