Merge pull request #6764 from thinkyhead/bf_cleanups_tuesday
Prevent home_all_axes picking up XYZ parameters from command
This commit is contained in:
		
						commit
						455a24f6ff
					
				| @ -834,7 +834,7 @@ | |||||||
|       #define DELTA_PROBEABLE_RADIUS DELTA_PRINTABLE_RADIUS |       #define DELTA_PROBEABLE_RADIUS DELTA_PRINTABLE_RADIUS | ||||||
|     #endif |     #endif | ||||||
|   #endif |   #endif | ||||||
|      | 
 | ||||||
|   // Shorthand
 |   // Shorthand
 | ||||||
|   #define GRID_MAX_POINTS ((GRID_MAX_POINTS_X) * (GRID_MAX_POINTS_Y)) |   #define GRID_MAX_POINTS ((GRID_MAX_POINTS_X) * (GRID_MAX_POINTS_Y)) | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -3713,7 +3713,7 @@ inline void gcode_G4() { | |||||||
|  *  Z   Home to the Z endstop |  *  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 ENABLED(DEBUG_LEVELING_FEATURE) | ||||||
|     if (DEBUGGING(LEVELING)) { |     if (DEBUGGING(LEVELING)) { | ||||||
| @ -3760,14 +3760,16 @@ inline void gcode_G28() { | |||||||
| 
 | 
 | ||||||
|   #else // NOT DELTA
 |   #else // NOT DELTA
 | ||||||
| 
 | 
 | ||||||
|     const bool homeX = code_seen('X'), homeY = code_seen('Y'), homeZ = code_seen('Z'), |     const bool homeX = always_home_all || code_seen('X'), | ||||||
|                home_all_axis = (!homeX && !homeY && !homeZ) || (homeX && homeY && homeZ); |                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(); |     set_destination_to_current(); | ||||||
| 
 | 
 | ||||||
|     #if Z_HOME_DIR > 0  // If homing away from BED do Z first
 |     #if Z_HOME_DIR > 0  // If homing away from BED do Z first
 | ||||||
| 
 | 
 | ||||||
|       if (home_all_axis || homeZ) { |       if (home_all || homeZ) { | ||||||
|         HOMEAXIS(Z); |         HOMEAXIS(Z); | ||||||
|         #if ENABLED(DEBUG_LEVELING_FEATURE) |         #if ENABLED(DEBUG_LEVELING_FEATURE) | ||||||
|           if (DEBUGGING(LEVELING)) DEBUG_POS("> HOMEAXIS(Z)", current_position); |           if (DEBUGGING(LEVELING)) DEBUG_POS("> HOMEAXIS(Z)", current_position); | ||||||
| @ -3776,7 +3778,7 @@ inline void gcode_G28() { | |||||||
| 
 | 
 | ||||||
|     #else |     #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)
 |         // 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); |         destination[Z_AXIS] = LOGICAL_Z_POSITION(Z_HOMING_HEIGHT); | ||||||
|         if (destination[Z_AXIS] > current_position[Z_AXIS]) { |         if (destination[Z_AXIS] > current_position[Z_AXIS]) { | ||||||
| @ -3794,14 +3796,14 @@ inline void gcode_G28() { | |||||||
| 
 | 
 | ||||||
|     #if ENABLED(QUICK_HOME) |     #if ENABLED(QUICK_HOME) | ||||||
| 
 | 
 | ||||||
|       if (home_all_axis || (homeX && homeY)) quick_home_xy(); |       if (home_all || (homeX && homeY)) quick_home_xy(); | ||||||
| 
 | 
 | ||||||
|     #endif |     #endif | ||||||
| 
 | 
 | ||||||
|     #if ENABLED(HOME_Y_BEFORE_X) |     #if ENABLED(HOME_Y_BEFORE_X) | ||||||
| 
 | 
 | ||||||
|       // Home Y
 |       // Home Y
 | ||||||
|       if (home_all_axis || homeY) { |       if (home_all || homeY) { | ||||||
|         HOMEAXIS(Y); |         HOMEAXIS(Y); | ||||||
|         #if ENABLED(DEBUG_LEVELING_FEATURE) |         #if ENABLED(DEBUG_LEVELING_FEATURE) | ||||||
|           if (DEBUGGING(LEVELING)) DEBUG_POS("> homeY", current_position); |           if (DEBUGGING(LEVELING)) DEBUG_POS("> homeY", current_position); | ||||||
| @ -3811,7 +3813,7 @@ inline void gcode_G28() { | |||||||
|     #endif |     #endif | ||||||
| 
 | 
 | ||||||
|     // Home X
 |     // Home X
 | ||||||
|     if (home_all_axis || homeX) { |     if (home_all || homeX) { | ||||||
| 
 | 
 | ||||||
|       #if ENABLED(DUAL_X_CARRIAGE) |       #if ENABLED(DUAL_X_CARRIAGE) | ||||||
| 
 | 
 | ||||||
| @ -3844,7 +3846,7 @@ inline void gcode_G28() { | |||||||
| 
 | 
 | ||||||
|     #if DISABLED(HOME_Y_BEFORE_X) |     #if DISABLED(HOME_Y_BEFORE_X) | ||||||
|       // Home Y
 |       // Home Y
 | ||||||
|       if (home_all_axis || homeY) { |       if (home_all || homeY) { | ||||||
|         HOMEAXIS(Y); |         HOMEAXIS(Y); | ||||||
|         #if ENABLED(DEBUG_LEVELING_FEATURE) |         #if ENABLED(DEBUG_LEVELING_FEATURE) | ||||||
|           if (DEBUGGING(LEVELING)) DEBUG_POS("> homeY", current_position); |           if (DEBUGGING(LEVELING)) DEBUG_POS("> homeY", current_position); | ||||||
| @ -3854,16 +3856,16 @@ inline void gcode_G28() { | |||||||
| 
 | 
 | ||||||
|     // Home Z last if homing towards the bed
 |     // Home Z last if homing towards the bed
 | ||||||
|     #if Z_HOME_DIR < 0 |     #if Z_HOME_DIR < 0 | ||||||
|       if (home_all_axis || homeZ) { |       if (home_all || homeZ) { | ||||||
|         #if ENABLED(Z_SAFE_HOMING) |         #if ENABLED(Z_SAFE_HOMING) | ||||||
|           home_z_safely(); |           home_z_safely(); | ||||||
|         #else |         #else | ||||||
|           HOMEAXIS(Z); |           HOMEAXIS(Z); | ||||||
|         #endif |         #endif | ||||||
|         #if ENABLED(DEBUG_LEVELING_FEATURE) |         #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 |         #endif | ||||||
|       } // home_all_axis || homeZ
 |       } // home_all || homeZ
 | ||||||
|     #endif // Z_HOME_DIR < 0
 |     #endif // Z_HOME_DIR < 0
 | ||||||
| 
 | 
 | ||||||
|     SYNC_PLAN_POSITION_KINEMATIC(); |     SYNC_PLAN_POSITION_KINEMATIC(); | ||||||
| @ -3895,7 +3897,7 @@ inline void gcode_G28() { | |||||||
|   #endif |   #endif | ||||||
| } // G28
 | } // G28
 | ||||||
| 
 | 
 | ||||||
| void home_all_axes() { gcode_G28(); } | void home_all_axes() { gcode_G28(true); } | ||||||
| 
 | 
 | ||||||
| #if HAS_PROBING_PROCEDURE | #if HAS_PROBING_PROCEDURE | ||||||
| 
 | 
 | ||||||
| @ -9858,7 +9860,7 @@ void process_next_command() { | |||||||
|       #endif // NOZZLE_PARK_FEATURE
 |       #endif // NOZZLE_PARK_FEATURE
 | ||||||
| 
 | 
 | ||||||
|       case 28: // G28: Home all axes, one at a time
 |       case 28: // G28: Home all axes, one at a time
 | ||||||
|         gcode_G28(); |         gcode_G28(false); | ||||||
|         break; |         break; | ||||||
| 
 | 
 | ||||||
|       #if HAS_LEVELING |       #if HAS_LEVELING | ||||||
|  | |||||||
| @ -922,10 +922,10 @@ | |||||||
|   // at which point movement will be level to the machine's XY plane.
 |   // at which point movement will be level to the machine's XY plane.
 | ||||||
|   // The height can be set with M420 Z<height>
 |   // The height can be set with M420 Z<height>
 | ||||||
|   //#define ENABLE_LEVELING_FADE_HEIGHT
 |   //#define ENABLE_LEVELING_FADE_HEIGHT
 | ||||||
|    | 
 | ||||||
|   // Set the boundaries for probing (where the probe can reach).
 |   // Set the boundaries for probing (where the probe can reach).
 | ||||||
|   #define DELTA_PROBEABLE_RADIUS (DELTA_PRINTABLE_RADIUS - 10) |   #define DELTA_PROBEABLE_RADIUS (DELTA_PRINTABLE_RADIUS - 10) | ||||||
|           | 
 | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| #if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR) | #if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR) | ||||||
|  | |||||||
| @ -920,10 +920,10 @@ | |||||||
|   // at which point movement will be level to the machine's XY plane.
 |   // at which point movement will be level to the machine's XY plane.
 | ||||||
|   // The height can be set with M420 Z<height>
 |   // The height can be set with M420 Z<height>
 | ||||||
|   //#define ENABLE_LEVELING_FADE_HEIGHT
 |   //#define ENABLE_LEVELING_FADE_HEIGHT
 | ||||||
|    | 
 | ||||||
|   // Set the boundaries for probing (where the probe can reach).
 |   // Set the boundaries for probing (where the probe can reach).
 | ||||||
|   #define DELTA_PROBEABLE_RADIUS (DELTA_PRINTABLE_RADIUS - 10) |   #define DELTA_PROBEABLE_RADIUS (DELTA_PRINTABLE_RADIUS - 10) | ||||||
|           | 
 | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| #if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR) | #if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR) | ||||||
|  | |||||||
| @ -926,10 +926,10 @@ | |||||||
|   // at which point movement will be level to the machine's XY plane.
 |   // at which point movement will be level to the machine's XY plane.
 | ||||||
|   // The height can be set with M420 Z<height>
 |   // The height can be set with M420 Z<height>
 | ||||||
|   //#define ENABLE_LEVELING_FADE_HEIGHT
 |   //#define ENABLE_LEVELING_FADE_HEIGHT
 | ||||||
|    | 
 | ||||||
|   // Set the boundaries for probing (where the probe can reach).
 |   // Set the boundaries for probing (where the probe can reach).
 | ||||||
|   #define DELTA_PROBEABLE_RADIUS (DELTA_PRINTABLE_RADIUS - 10) |   #define DELTA_PROBEABLE_RADIUS (DELTA_PRINTABLE_RADIUS - 10) | ||||||
|           | 
 | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| #if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR) | #if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR) | ||||||
|  | |||||||
| @ -989,10 +989,10 @@ | |||||||
|   // at which point movement will be level to the machine's XY plane.
 |   // at which point movement will be level to the machine's XY plane.
 | ||||||
|   // The height can be set with M420 Z<height>
 |   // The height can be set with M420 Z<height>
 | ||||||
|   //#define ENABLE_LEVELING_FADE_HEIGHT
 |   //#define ENABLE_LEVELING_FADE_HEIGHT
 | ||||||
|    | 
 | ||||||
|   // Set the boundaries for probing (where the probe can reach).
 |   // Set the boundaries for probing (where the probe can reach).
 | ||||||
|   #define DELTA_PROBEABLE_RADIUS (DELTA_PRINTABLE_RADIUS - 10) |   #define DELTA_PROBEABLE_RADIUS (DELTA_PRINTABLE_RADIUS - 10) | ||||||
|           | 
 | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| #if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR) | #if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR) | ||||||
|  | |||||||
| @ -322,17 +322,15 @@ | |||||||
| 
 | 
 | ||||||
|     // Check for commands that require the printer to be homed.
 |     // Check for commands that require the printer to be homed.
 | ||||||
|     if (axis_unhomed_error()) { |     if (axis_unhomed_error()) { | ||||||
|       if (code_seen('J'))  |       if (code_seen('J')) | ||||||
|         home_all_axes(); |         home_all_axes(); | ||||||
|       else |       else if (code_seen('P')) { | ||||||
|         if (code_seen('P')) { |         if (code_has_value()) { | ||||||
|           int p_val; |           const int p_val = code_value_int(); | ||||||
| 	  if (code_has_value()) { |           if (p_val == 1 || p_val == 2 || p_val == 4) | ||||||
|             p_val = code_value_int(); |             home_all_axes(); | ||||||
| 	    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,
 |     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.
 |           // 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).
 |           // 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))
 |           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 ) |  | ||||||
|             continue; |             continue; | ||||||
| 
 | 
 | ||||||
|           // Reachable. Check if it's the closest location to the nozzle.
 |           // Reachable. Check if it's the closest location to the nozzle.
 | ||||||
|  | |||||||
| @ -632,7 +632,7 @@ | |||||||
|                     z_cxyd = z_cxy1 - z_cxy0;                 // z height difference along cx from y0 to y1
 |                     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_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)
 |         //    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
 |         // As subsequent segments step through this cell, the z_cxy0 intercept will change
 | ||||||
| @ -649,7 +649,7 @@ | |||||||
|           #if ENABLED(ENABLE_LEVELING_FADE_HEIGHT) |           #if ENABLED(ENABLE_LEVELING_FADE_HEIGHT) | ||||||
|             z_cxcy *= fade_scaling_factor;          // apply fade factor to interpolated mesh height
 |             z_cxcy *= fade_scaling_factor;          // apply fade factor to interpolated mesh height
 | ||||||
|           #endif |           #endif | ||||||
|          | 
 | ||||||
|           z_cxcy += ubl.state.z_offset;             // add fixed mesh offset from G29 Z
 |           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
 |           if (--segments == 0) {                    // if this is last segment, use ltarget for exact
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user