🚸 Machine-relative Z_STEPPER_ALIGN_XY (#24261)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
This commit is contained in:
		
				
					committed by
					
						
						Scott Lahteine
					
				
			
			
				
	
			
			
			
						parent
						
							f752fe75ee
						
					
				
				
					commit
					807f2ef969
				
			@@ -937,9 +937,12 @@
 | 
			
		||||
 */
 | 
			
		||||
//#define Z_STEPPER_AUTO_ALIGN
 | 
			
		||||
#if ENABLED(Z_STEPPER_AUTO_ALIGN)
 | 
			
		||||
  // Define probe X and Y positions for Z1, Z2 [, Z3 [, Z4]]
 | 
			
		||||
  // If not defined, probe limits will be used.
 | 
			
		||||
  // Override with 'M422 S<index> X<pos> Y<pos>'
 | 
			
		||||
  /**
 | 
			
		||||
   * Define probe X and Y positions for Z1, Z2 [, Z3 [, Z4]]
 | 
			
		||||
   * These positions are machine-relative and do not shift with the M206 home offset!
 | 
			
		||||
   * If not defined, probe limits will be used.
 | 
			
		||||
   * Override with 'M422 S<index> X<pos> Y<pos>'.
 | 
			
		||||
   */
 | 
			
		||||
  //#define Z_STEPPER_ALIGN_XY { {  10, 190 }, { 100,  10 }, { 190, 190 } }
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
 
 | 
			
		||||
@@ -224,13 +224,15 @@ void GcodeSuite::G34() {
 | 
			
		||||
          // Safe clearance even on an incline
 | 
			
		||||
          if ((iteration == 0 || i > 0) && z_probe > current_position.z) do_blocking_move_to_z(z_probe);
 | 
			
		||||
 | 
			
		||||
          xy_pos_t &ppos = z_stepper_align.xy[iprobe];
 | 
			
		||||
 | 
			
		||||
          if (DEBUGGING(LEVELING))
 | 
			
		||||
            DEBUG_ECHOLNPGM_P(PSTR("Probing X"), z_stepper_align.xy[iprobe].x, SP_Y_STR, z_stepper_align.xy[iprobe].y);
 | 
			
		||||
            DEBUG_ECHOLNPGM_P(PSTR("Probing X"), ppos.x, SP_Y_STR, ppos.y);
 | 
			
		||||
 | 
			
		||||
          // Probe a Z height for each stepper.
 | 
			
		||||
          // Probing sanity check is disabled, as it would trigger even in normal cases because
 | 
			
		||||
          // current_position.z has been manually altered in the "dirty trick" above.
 | 
			
		||||
          const float z_probed_height = probe.probe_at_point(z_stepper_align.xy[iprobe], raise_after, 0, true, false);
 | 
			
		||||
          const float z_probed_height = probe.probe_at_point(DIFF_TERN(HAS_HOME_OFFSET, ppos, xy_pos_t(home_offset)), raise_after, 0, true, false);
 | 
			
		||||
          if (isnan(z_probed_height)) {
 | 
			
		||||
            SERIAL_ECHOLNPGM("Probing failed");
 | 
			
		||||
            LCD_MESSAGE(MSG_LCD_PROBING_FAILED);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user