Add G7 gcode command to move between UBL mesh points
				
					
				
			- can be augmented in the future to enable for other leveling systems Quite simple, but did not want to modify `G1` as the additional checking would slow it down. Tested & working.
This commit is contained in:
		
							parent
							
								
									43c24f0027
								
							
						
					
					
						commit
						13599a73c7
					
				| @ -3395,6 +3395,34 @@ inline void gcode_G4() { | ||||
| 
 | ||||
| #endif // BEZIER_CURVE_SUPPORT
 | ||||
| 
 | ||||
| #if ENABLED(AUTO_BED_LEVELING_UBL) //todo:  enable for other leveling systems?
 | ||||
| /**
 | ||||
|  * G7: Move X & Y axes to mesh coordinates | ||||
|  */ | ||||
| inline void gcode_G7( | ||||
|   #if IS_SCARA | ||||
|     bool fast_move=false | ||||
|   #endif | ||||
| ) { | ||||
|   if (IsRunning()) { | ||||
|     destination[X_AXIS] = code_seen('I') ? pgm_read_float(&ubl.mesh_index_to_xpos[code_has_value() ? code_value_int() : 0]) : current_position[X_AXIS]; | ||||
|     destination[Y_AXIS] = code_seen('J') ? pgm_read_float(&ubl.mesh_index_to_ypos[code_has_value() ? code_value_int() : 0]) : current_position[Y_AXIS]; | ||||
|     destination[Z_AXIS] = current_position[Z_AXIS]; //todo: perhaps add Z-move support?
 | ||||
|     destination[E_AXIS] = current_position[E_AXIS]; | ||||
| 
 | ||||
|     if (code_seen('F') && code_value_linear_units() > 0.0) | ||||
|       feedrate_mm_s = MMM_TO_MMS(code_value_linear_units()); | ||||
| 
 | ||||
|     #if IS_SCARA | ||||
|       fast_move ? prepare_uninterpolated_move_to_destination() : prepare_move_to_destination(); | ||||
|     #else | ||||
|       prepare_move_to_destination(); | ||||
|     #endif | ||||
|   } | ||||
| } | ||||
| #endif | ||||
| 
 | ||||
| 
 | ||||
| #if ENABLED(FWRETRACT) | ||||
| 
 | ||||
|   /**
 | ||||
| @ -9982,6 +10010,16 @@ void process_next_command() { | ||||
|           break; | ||||
|       #endif // BEZIER_CURVE_SUPPORT
 | ||||
| 
 | ||||
|       #if ENABLED(AUTO_BED_LEVELING_UBL) | ||||
|         case 7: | ||||
|           #if IS_SCARA | ||||
|             gcode_G7(codenum == 0); | ||||
|           #else | ||||
|             gcode_G7(); | ||||
|             #endif | ||||
|           break; | ||||
|       #endif | ||||
| 
 | ||||
|       #if ENABLED(FWRETRACT) | ||||
|         case 10: // G10: retract
 | ||||
|         case 11: // G11: retract_recover
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user