Fix LCD manual movement on kinematic machines (#9655)
This commit is contained in:
		
				
					committed by
					
						 Scott Lahteine
						Scott Lahteine
					
				
			
			
				
	
			
			
			
						parent
						
							749bc42aa9
						
					
				
				
					commit
					cff62042ee
				
			| @@ -2818,7 +2818,10 @@ void kill_screen(const char* lcd_msg) { | ||||
|         manual_move_offset = 0.0; | ||||
|         manual_move_axis = (int8_t)NO_AXIS; | ||||
|  | ||||
|         // Set a blocking flag so no new moves can be added until all segments are done | ||||
|         // DELTA and SCARA machines use segmented moves, which could fill the planner during the call to | ||||
|         // move_to_destination. This will cause idle() to be called, which can then call this function while the | ||||
|         // previous invocation is being blocked. Modifications to manual_move_offset shouldn't be made while | ||||
|         // processing_manual_move is true or the planner will get out of sync. | ||||
|         processing_manual_move = true; | ||||
|         prepare_move_to_destination(); // will call set_current_from_destination() | ||||
|         processing_manual_move = false; | ||||
| @@ -2930,11 +2933,11 @@ void kill_screen(const char* lcd_msg) { | ||||
|     } | ||||
|     encoderPosition = 0; | ||||
|     if (lcdDrawUpdate) { | ||||
|       const float pos = current_position[axis] | ||||
|       const float pos = (processing_manual_move ? destination[axis] : current_position[axis] | ||||
|         #if IS_KINEMATIC | ||||
|           + manual_move_offset | ||||
|         #endif | ||||
|       ; | ||||
|       ); | ||||
|       lcd_implementation_drawedit(name, move_menu_scale >= 0.1 ? ftostr41sign(pos) : ftostr43sign(pos)); | ||||
|     } | ||||
|   } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user