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
					
				| @ -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 | ||||
|  | ||||
| @ -324,12 +324,10 @@ | ||||
|     if (axis_unhomed_error()) { | ||||
|       if (code_seen('J')) | ||||
|         home_all_axes(); | ||||
|       else | ||||
|         if (code_seen('P')) { | ||||
|           int p_val; | ||||
|       else if (code_seen('P')) { | ||||
|         if (code_has_value()) { | ||||
|             p_val = code_value_int(); | ||||
| 	    if ( p_val==1 || p_val==2 || p_val==4 ) | ||||
|           const int p_val = code_value_int(); | ||||
|           if (p_val == 1 || p_val == 2 || p_val == 4) | ||||
|             home_all_axes(); | ||||
|         } | ||||
|       } | ||||
| @ -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.
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user