[2.0.x] Add simultaneous retraction for mixing extruder (#11941)
This commit is contained in:
		
				
					committed by
					
						 Scott Lahteine
						Scott Lahteine
					
				
			
			
				
	
			
			
			
						parent
						
							80f9473fb4
						
					
				
				
					commit
					ab4549d2bc
				
			| @@ -1017,6 +1017,9 @@ | ||||
|   #define RETRACT_RECOVER_LENGTH_SWAP 0   // Default additional swap recover length (mm, added to retract length when recovering from extruder change) | ||||
|   #define RETRACT_RECOVER_FEEDRATE 8      // Default feedrate for recovering from retraction (mm/s) | ||||
|   #define RETRACT_RECOVER_FEEDRATE_SWAP 8 // Default feedrate for recovering from swap retraction (mm/s) | ||||
|   #if ENABLED(MIXING_EXTRUDER) | ||||
|     //#define RETRACT_SYNC_MIXING         // Retract and restore all mixing steppers simultaneously | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|   | ||||
| @@ -1017,6 +1017,9 @@ | ||||
|   #define RETRACT_RECOVER_LENGTH_SWAP 0   // Default additional swap recover length (mm, added to retract length when recovering from extruder change) | ||||
|   #define RETRACT_RECOVER_FEEDRATE 8      // Default feedrate for recovering from retraction (mm/s) | ||||
|   #define RETRACT_RECOVER_FEEDRATE_SWAP 8 // Default feedrate for recovering from swap retraction (mm/s) | ||||
|   #if ENABLED(MIXING_EXTRUDER) | ||||
|     //#define RETRACT_SYNC_MIXING         // Retract and restore all mixing steppers simultaneously | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|   | ||||
| @@ -1016,6 +1016,9 @@ | ||||
|   #define RETRACT_RECOVER_LENGTH_SWAP 0   // Default additional swap recover length (mm, added to retract length when recovering from extruder change) | ||||
|   #define RETRACT_RECOVER_FEEDRATE 8      // Default feedrate for recovering from retraction (mm/s) | ||||
|   #define RETRACT_RECOVER_FEEDRATE_SWAP 8 // Default feedrate for recovering from swap retraction (mm/s) | ||||
|   #if ENABLED(MIXING_EXTRUDER) | ||||
|     //#define RETRACT_SYNC_MIXING         // Retract and restore all mixing steppers simultaneously | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|   | ||||
| @@ -1016,6 +1016,9 @@ | ||||
|   #define RETRACT_RECOVER_LENGTH_SWAP 0   // Default additional swap recover length (mm, added to retract length when recovering from extruder change) | ||||
|   #define RETRACT_RECOVER_FEEDRATE 8      // Default feedrate for recovering from retraction (mm/s) | ||||
|   #define RETRACT_RECOVER_FEEDRATE_SWAP 8 // Default feedrate for recovering from swap retraction (mm/s) | ||||
|   #if ENABLED(MIXING_EXTRUDER) | ||||
|     //#define RETRACT_SYNC_MIXING         // Retract and restore all mixing steppers simultaneously | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|   | ||||
| @@ -1016,6 +1016,9 @@ | ||||
|   #define RETRACT_RECOVER_LENGTH_SWAP 0   // Default additional swap recover length (mm, added to retract length when recovering from extruder change) | ||||
|   #define RETRACT_RECOVER_FEEDRATE 8      // Default feedrate for recovering from retraction (mm/s) | ||||
|   #define RETRACT_RECOVER_FEEDRATE_SWAP 8 // Default feedrate for recovering from swap retraction (mm/s) | ||||
|   #if ENABLED(MIXING_EXTRUDER) | ||||
|     //#define RETRACT_SYNC_MIXING         // Retract and restore all mixing steppers simultaneously | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|   | ||||
| @@ -1016,6 +1016,9 @@ | ||||
|   #define RETRACT_RECOVER_LENGTH_SWAP 0   // Default additional swap recover length (mm, added to retract length when recovering from extruder change) | ||||
|   #define RETRACT_RECOVER_FEEDRATE 8      // Default feedrate for recovering from retraction (mm/s) | ||||
|   #define RETRACT_RECOVER_FEEDRATE_SWAP 8 // Default feedrate for recovering from swap retraction (mm/s) | ||||
|   #if ENABLED(MIXING_EXTRUDER) | ||||
|     //#define RETRACT_SYNC_MIXING         // Retract and restore all mixing steppers simultaneously | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|   | ||||
| @@ -1016,6 +1016,9 @@ | ||||
|   #define RETRACT_RECOVER_LENGTH_SWAP 0   // Default additional swap recover length (mm, added to retract length when recovering from extruder change) | ||||
|   #define RETRACT_RECOVER_FEEDRATE 8      // Default feedrate for recovering from retraction (mm/s) | ||||
|   #define RETRACT_RECOVER_FEEDRATE_SWAP 8 // Default feedrate for recovering from swap retraction (mm/s) | ||||
|   #if ENABLED(MIXING_EXTRUDER) | ||||
|     //#define RETRACT_SYNC_MIXING         // Retract and restore all mixing steppers simultaneously | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|   | ||||
| @@ -1016,6 +1016,9 @@ | ||||
|   #define RETRACT_RECOVER_LENGTH_SWAP 0   // Default additional swap recover length (mm, added to retract length when recovering from extruder change) | ||||
|   #define RETRACT_RECOVER_FEEDRATE 8      // Default feedrate for recovering from retraction (mm/s) | ||||
|   #define RETRACT_RECOVER_FEEDRATE_SWAP 8 // Default feedrate for recovering from swap retraction (mm/s) | ||||
|   #if ENABLED(MIXING_EXTRUDER) | ||||
|     //#define RETRACT_SYNC_MIXING         // Retract and restore all mixing steppers simultaneously | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|   | ||||
| @@ -1016,6 +1016,9 @@ | ||||
|   #define RETRACT_RECOVER_LENGTH_SWAP 0   // Default additional swap recover length (mm, added to retract length when recovering from extruder change) | ||||
|   #define RETRACT_RECOVER_FEEDRATE 8      // Default feedrate for recovering from retraction (mm/s) | ||||
|   #define RETRACT_RECOVER_FEEDRATE_SWAP 8 // Default feedrate for recovering from swap retraction (mm/s) | ||||
|   #if ENABLED(MIXING_EXTRUDER) | ||||
|     //#define RETRACT_SYNC_MIXING         // Retract and restore all mixing steppers simultaneously | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|   | ||||
| @@ -1016,6 +1016,9 @@ | ||||
|   #define RETRACT_RECOVER_LENGTH_SWAP 0   // Default additional swap recover length (mm, added to retract length when recovering from extruder change) | ||||
|   #define RETRACT_RECOVER_FEEDRATE 8      // Default feedrate for recovering from retraction (mm/s) | ||||
|   #define RETRACT_RECOVER_FEEDRATE_SWAP 8 // Default feedrate for recovering from swap retraction (mm/s) | ||||
|   #if ENABLED(MIXING_EXTRUDER) | ||||
|     //#define RETRACT_SYNC_MIXING         // Retract and restore all mixing steppers simultaneously | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|   | ||||
| @@ -1024,6 +1024,9 @@ | ||||
|   #define RETRACT_RECOVER_LENGTH_SWAP 0   // Default additional swap recover length (mm, added to retract length when recovering from extruder change) | ||||
|   #define RETRACT_RECOVER_FEEDRATE 8      // Default feedrate for recovering from retraction (mm/s) | ||||
|   #define RETRACT_RECOVER_FEEDRATE_SWAP 8 // Default feedrate for recovering from swap retraction (mm/s) | ||||
|   #if ENABLED(MIXING_EXTRUDER) | ||||
|     //#define RETRACT_SYNC_MIXING         // Retract and restore all mixing steppers simultaneously | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|   | ||||
| @@ -1016,6 +1016,9 @@ | ||||
|   #define RETRACT_RECOVER_LENGTH_SWAP 0   // Default additional swap recover length (mm, added to retract length when recovering from extruder change) | ||||
|   #define RETRACT_RECOVER_FEEDRATE 8      // Default feedrate for recovering from retraction (mm/s) | ||||
|   #define RETRACT_RECOVER_FEEDRATE_SWAP 8 // Default feedrate for recovering from swap retraction (mm/s) | ||||
|   #if ENABLED(MIXING_EXTRUDER) | ||||
|     //#define RETRACT_SYNC_MIXING         // Retract and restore all mixing steppers simultaneously | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|   | ||||
| @@ -1016,6 +1016,9 @@ | ||||
|   #define RETRACT_RECOVER_LENGTH_SWAP 0   // Default additional swap recover length (mm, added to retract length when recovering from extruder change) | ||||
|   #define RETRACT_RECOVER_FEEDRATE 8      // Default feedrate for recovering from retraction (mm/s) | ||||
|   #define RETRACT_RECOVER_FEEDRATE_SWAP 8 // Default feedrate for recovering from swap retraction (mm/s) | ||||
|   #if ENABLED(MIXING_EXTRUDER) | ||||
|     //#define RETRACT_SYNC_MIXING         // Retract and restore all mixing steppers simultaneously | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|   | ||||
| @@ -1016,6 +1016,9 @@ | ||||
|   #define RETRACT_RECOVER_LENGTH_SWAP 0   // Default additional swap recover length (mm, added to retract length when recovering from extruder change) | ||||
|   #define RETRACT_RECOVER_FEEDRATE 8      // Default feedrate for recovering from retraction (mm/s) | ||||
|   #define RETRACT_RECOVER_FEEDRATE_SWAP 8 // Default feedrate for recovering from swap retraction (mm/s) | ||||
|   #if ENABLED(MIXING_EXTRUDER) | ||||
|     //#define RETRACT_SYNC_MIXING         // Retract and restore all mixing steppers simultaneously | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|   | ||||
| @@ -1016,6 +1016,9 @@ | ||||
|   #define RETRACT_RECOVER_LENGTH_SWAP 0   // Default additional swap recover length (mm, added to retract length when recovering from extruder change) | ||||
|   #define RETRACT_RECOVER_FEEDRATE 8      // Default feedrate for recovering from retraction (mm/s) | ||||
|   #define RETRACT_RECOVER_FEEDRATE_SWAP 8 // Default feedrate for recovering from swap retraction (mm/s) | ||||
|   #if ENABLED(MIXING_EXTRUDER) | ||||
|     //#define RETRACT_SYNC_MIXING         // Retract and restore all mixing steppers simultaneously | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|   | ||||
| @@ -1016,6 +1016,9 @@ | ||||
|   #define RETRACT_RECOVER_LENGTH_SWAP 0   // Default additional swap recover length (mm, added to retract length when recovering from extruder change) | ||||
|   #define RETRACT_RECOVER_FEEDRATE 8      // Default feedrate for recovering from retraction (mm/s) | ||||
|   #define RETRACT_RECOVER_FEEDRATE_SWAP 8 // Default feedrate for recovering from swap retraction (mm/s) | ||||
|   #if ENABLED(MIXING_EXTRUDER) | ||||
|     //#define RETRACT_SYNC_MIXING         // Retract and restore all mixing steppers simultaneously | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|   | ||||
| @@ -1016,6 +1016,9 @@ | ||||
|   #define RETRACT_RECOVER_LENGTH_SWAP 0   // Default additional swap recover length (mm, added to retract length when recovering from extruder change) | ||||
|   #define RETRACT_RECOVER_FEEDRATE 8      // Default feedrate for recovering from retraction (mm/s) | ||||
|   #define RETRACT_RECOVER_FEEDRATE_SWAP 8 // Default feedrate for recovering from swap retraction (mm/s) | ||||
|   #if ENABLED(MIXING_EXTRUDER) | ||||
|     //#define RETRACT_SYNC_MIXING         // Retract and restore all mixing steppers simultaneously | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|   | ||||
| @@ -1016,6 +1016,9 @@ | ||||
|   #define RETRACT_RECOVER_LENGTH_SWAP 0   // Default additional swap recover length (mm, added to retract length when recovering from extruder change) | ||||
|   #define RETRACT_RECOVER_FEEDRATE 8      // Default feedrate for recovering from retraction (mm/s) | ||||
|   #define RETRACT_RECOVER_FEEDRATE_SWAP 8 // Default feedrate for recovering from swap retraction (mm/s) | ||||
|   #if ENABLED(MIXING_EXTRUDER) | ||||
|     //#define RETRACT_SYNC_MIXING         // Retract and restore all mixing steppers simultaneously | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|   | ||||
| @@ -1016,6 +1016,9 @@ | ||||
|   #define RETRACT_RECOVER_LENGTH_SWAP 0   // Default additional swap recover length (mm, added to retract length when recovering from extruder change) | ||||
|   #define RETRACT_RECOVER_FEEDRATE 8      // Default feedrate for recovering from retraction (mm/s) | ||||
|   #define RETRACT_RECOVER_FEEDRATE_SWAP 8 // Default feedrate for recovering from swap retraction (mm/s) | ||||
|   #if ENABLED(MIXING_EXTRUDER) | ||||
|     //#define RETRACT_SYNC_MIXING         // Retract and restore all mixing steppers simultaneously | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|   | ||||
| @@ -1016,6 +1016,9 @@ | ||||
|   #define RETRACT_RECOVER_LENGTH_SWAP 0   // Default additional swap recover length (mm, added to retract length when recovering from extruder change) | ||||
|   #define RETRACT_RECOVER_FEEDRATE 8      // Default feedrate for recovering from retraction (mm/s) | ||||
|   #define RETRACT_RECOVER_FEEDRATE_SWAP 8 // Default feedrate for recovering from swap retraction (mm/s) | ||||
|   #if ENABLED(MIXING_EXTRUDER) | ||||
|     //#define RETRACT_SYNC_MIXING         // Retract and restore all mixing steppers simultaneously | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|   | ||||
| @@ -1016,6 +1016,9 @@ | ||||
|   #define RETRACT_RECOVER_LENGTH_SWAP 0   // Default additional swap recover length (mm, added to retract length when recovering from extruder change) | ||||
|   #define RETRACT_RECOVER_FEEDRATE 8      // Default feedrate for recovering from retraction (mm/s) | ||||
|   #define RETRACT_RECOVER_FEEDRATE_SWAP 8 // Default feedrate for recovering from swap retraction (mm/s) | ||||
|   #if ENABLED(MIXING_EXTRUDER) | ||||
|     //#define RETRACT_SYNC_MIXING         // Retract and restore all mixing steppers simultaneously | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|   | ||||
| @@ -1016,6 +1016,9 @@ | ||||
|   #define RETRACT_RECOVER_LENGTH_SWAP 0   // Default additional swap recover length (mm, added to retract length when recovering from extruder change) | ||||
|   #define RETRACT_RECOVER_FEEDRATE 8      // Default feedrate for recovering from retraction (mm/s) | ||||
|   #define RETRACT_RECOVER_FEEDRATE_SWAP 8 // Default feedrate for recovering from swap retraction (mm/s) | ||||
|   #if ENABLED(MIXING_EXTRUDER) | ||||
|     //#define RETRACT_SYNC_MIXING         // Retract and restore all mixing steppers simultaneously | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|   | ||||
| @@ -1016,6 +1016,9 @@ | ||||
|   #define RETRACT_RECOVER_LENGTH_SWAP 0   // Default additional swap recover length (mm, added to retract length when recovering from extruder change) | ||||
|   #define RETRACT_RECOVER_FEEDRATE 8      // Default feedrate for recovering from retraction (mm/s) | ||||
|   #define RETRACT_RECOVER_FEEDRATE_SWAP 8 // Default feedrate for recovering from swap retraction (mm/s) | ||||
|   #if ENABLED(MIXING_EXTRUDER) | ||||
|     //#define RETRACT_SYNC_MIXING         // Retract and restore all mixing steppers simultaneously | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|   | ||||
| @@ -1018,6 +1018,9 @@ | ||||
|   #define RETRACT_RECOVER_LENGTH_SWAP 0   // Default additional swap recover length (mm, added to retract length when recovering from extruder change) | ||||
|   #define RETRACT_RECOVER_FEEDRATE 8      // Default feedrate for recovering from retraction (mm/s) | ||||
|   #define RETRACT_RECOVER_FEEDRATE_SWAP 8 // Default feedrate for recovering from swap retraction (mm/s) | ||||
|   #if ENABLED(MIXING_EXTRUDER) | ||||
|     //#define RETRACT_SYNC_MIXING         // Retract and restore all mixing steppers simultaneously | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|   | ||||
| @@ -1020,6 +1020,9 @@ | ||||
|   #define RETRACT_RECOVER_LENGTH_SWAP 0   // Default additional swap recover length (mm, added to retract length when recovering from extruder change) | ||||
|   #define RETRACT_RECOVER_FEEDRATE 8      // Default feedrate for recovering from retraction (mm/s) | ||||
|   #define RETRACT_RECOVER_FEEDRATE_SWAP 8 // Default feedrate for recovering from swap retraction (mm/s) | ||||
|   #if ENABLED(MIXING_EXTRUDER) | ||||
|     //#define RETRACT_SYNC_MIXING         // Retract and restore all mixing steppers simultaneously | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|   | ||||
| @@ -1021,6 +1021,9 @@ | ||||
|   #define RETRACT_RECOVER_LENGTH_SWAP 0   // Default additional swap recover length (mm, added to retract length when recovering from extruder change) | ||||
|   #define RETRACT_RECOVER_FEEDRATE 8      // Default feedrate for recovering from retraction (mm/s) | ||||
|   #define RETRACT_RECOVER_FEEDRATE_SWAP 8 // Default feedrate for recovering from swap retraction (mm/s) | ||||
|   #if ENABLED(MIXING_EXTRUDER) | ||||
|     //#define RETRACT_SYNC_MIXING         // Retract and restore all mixing steppers simultaneously | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|   | ||||
| @@ -1016,6 +1016,9 @@ | ||||
|   #define RETRACT_RECOVER_LENGTH_SWAP 0   // Default additional swap recover length (mm, added to retract length when recovering from extruder change) | ||||
|   #define RETRACT_RECOVER_FEEDRATE 8      // Default feedrate for recovering from retraction (mm/s) | ||||
|   #define RETRACT_RECOVER_FEEDRATE_SWAP 8 // Default feedrate for recovering from swap retraction (mm/s) | ||||
|   #if ENABLED(MIXING_EXTRUDER) | ||||
|     //#define RETRACT_SYNC_MIXING         // Retract and restore all mixing steppers simultaneously | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|   | ||||
| @@ -1016,6 +1016,9 @@ | ||||
|   #define RETRACT_RECOVER_LENGTH_SWAP 0   // Default additional swap recover length (mm, added to retract length when recovering from extruder change) | ||||
|   #define RETRACT_RECOVER_FEEDRATE 8      // Default feedrate for recovering from retraction (mm/s) | ||||
|   #define RETRACT_RECOVER_FEEDRATE_SWAP 8 // Default feedrate for recovering from swap retraction (mm/s) | ||||
|   #if ENABLED(MIXING_EXTRUDER) | ||||
|     //#define RETRACT_SYNC_MIXING         // Retract and restore all mixing steppers simultaneously | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|   | ||||
| @@ -1016,6 +1016,9 @@ | ||||
|   #define RETRACT_RECOVER_LENGTH_SWAP 0   // Default additional swap recover length (mm, added to retract length when recovering from extruder change) | ||||
|   #define RETRACT_RECOVER_FEEDRATE 8      // Default feedrate for recovering from retraction (mm/s) | ||||
|   #define RETRACT_RECOVER_FEEDRATE_SWAP 8 // Default feedrate for recovering from swap retraction (mm/s) | ||||
|   #if ENABLED(MIXING_EXTRUDER) | ||||
|     //#define RETRACT_SYNC_MIXING         // Retract and restore all mixing steppers simultaneously | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|   | ||||
| @@ -1016,6 +1016,9 @@ | ||||
|   #define RETRACT_RECOVER_LENGTH_SWAP 0   // Default additional swap recover length (mm, added to retract length when recovering from extruder change) | ||||
|   #define RETRACT_RECOVER_FEEDRATE 8      // Default feedrate for recovering from retraction (mm/s) | ||||
|   #define RETRACT_RECOVER_FEEDRATE_SWAP 8 // Default feedrate for recovering from swap retraction (mm/s) | ||||
|   #if ENABLED(MIXING_EXTRUDER) | ||||
|     //#define RETRACT_SYNC_MIXING         // Retract and restore all mixing steppers simultaneously | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|   | ||||
| @@ -1016,6 +1016,9 @@ | ||||
|   #define RETRACT_RECOVER_LENGTH_SWAP 0   // Default additional swap recover length (mm, added to retract length when recovering from extruder change) | ||||
|   #define RETRACT_RECOVER_FEEDRATE 8      // Default feedrate for recovering from retraction (mm/s) | ||||
|   #define RETRACT_RECOVER_FEEDRATE_SWAP 8 // Default feedrate for recovering from swap retraction (mm/s) | ||||
|   #if ENABLED(MIXING_EXTRUDER) | ||||
|     //#define RETRACT_SYNC_MIXING         // Retract and restore all mixing steppers simultaneously | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|   | ||||
| @@ -1016,6 +1016,9 @@ | ||||
|   #define RETRACT_RECOVER_LENGTH_SWAP 0   // Default additional swap recover length (mm, added to retract length when recovering from extruder change) | ||||
|   #define RETRACT_RECOVER_FEEDRATE 8      // Default feedrate for recovering from retraction (mm/s) | ||||
|   #define RETRACT_RECOVER_FEEDRATE_SWAP 8 // Default feedrate for recovering from swap retraction (mm/s) | ||||
|   #if ENABLED(MIXING_EXTRUDER) | ||||
|     //#define RETRACT_SYNC_MIXING         // Retract and restore all mixing steppers simultaneously | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|   | ||||
| @@ -1016,6 +1016,9 @@ | ||||
|   #define RETRACT_RECOVER_LENGTH_SWAP 0   // Default additional swap recover length (mm, added to retract length when recovering from extruder change) | ||||
|   #define RETRACT_RECOVER_FEEDRATE 8      // Default feedrate for recovering from retraction (mm/s) | ||||
|   #define RETRACT_RECOVER_FEEDRATE_SWAP 8 // Default feedrate for recovering from swap retraction (mm/s) | ||||
|   #if ENABLED(MIXING_EXTRUDER) | ||||
|     //#define RETRACT_SYNC_MIXING         // Retract and restore all mixing steppers simultaneously | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|   | ||||
| @@ -1016,6 +1016,9 @@ | ||||
|   #define RETRACT_RECOVER_LENGTH_SWAP 0   // Default additional swap recover length (mm, added to retract length when recovering from extruder change) | ||||
|   #define RETRACT_RECOVER_FEEDRATE 8      // Default feedrate for recovering from retraction (mm/s) | ||||
|   #define RETRACT_RECOVER_FEEDRATE_SWAP 8 // Default feedrate for recovering from swap retraction (mm/s) | ||||
|   #if ENABLED(MIXING_EXTRUDER) | ||||
|     //#define RETRACT_SYNC_MIXING         // Retract and restore all mixing steppers simultaneously | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|   | ||||
| @@ -1024,6 +1024,9 @@ | ||||
|   #define RETRACT_RECOVER_LENGTH_SWAP 0   // Default additional swap recover length (mm, added to retract length when recovering from extruder change) | ||||
|   #define RETRACT_RECOVER_FEEDRATE 8      // Default feedrate for recovering from retraction (mm/s) | ||||
|   #define RETRACT_RECOVER_FEEDRATE_SWAP 8 // Default feedrate for recovering from swap retraction (mm/s) | ||||
|   #if ENABLED(MIXING_EXTRUDER) | ||||
|     //#define RETRACT_SYNC_MIXING         // Retract and restore all mixing steppers simultaneously | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|   | ||||
| @@ -1016,6 +1016,9 @@ | ||||
|   #define RETRACT_RECOVER_LENGTH_SWAP 0   // Default additional swap recover length (mm, added to retract length when recovering from extruder change) | ||||
|   #define RETRACT_RECOVER_FEEDRATE 8      // Default feedrate for recovering from retraction (mm/s) | ||||
|   #define RETRACT_RECOVER_FEEDRATE_SWAP 8 // Default feedrate for recovering from swap retraction (mm/s) | ||||
|   #if ENABLED(MIXING_EXTRUDER) | ||||
|     //#define RETRACT_SYNC_MIXING         // Retract and restore all mixing steppers simultaneously | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|   | ||||
| @@ -1016,6 +1016,9 @@ | ||||
|   #define RETRACT_RECOVER_LENGTH_SWAP 0   // Default additional swap recover length (mm, added to retract length when recovering from extruder change) | ||||
|   #define RETRACT_RECOVER_FEEDRATE 8      // Default feedrate for recovering from retraction (mm/s) | ||||
|   #define RETRACT_RECOVER_FEEDRATE_SWAP 8 // Default feedrate for recovering from swap retraction (mm/s) | ||||
|   #if ENABLED(MIXING_EXTRUDER) | ||||
|     //#define RETRACT_SYNC_MIXING         // Retract and restore all mixing steppers simultaneously | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|   | ||||
| @@ -1016,6 +1016,9 @@ | ||||
|   #define RETRACT_RECOVER_LENGTH_SWAP 0   // Default additional swap recover length (mm, added to retract length when recovering from extruder change) | ||||
|   #define RETRACT_RECOVER_FEEDRATE 8      // Default feedrate for recovering from retraction (mm/s) | ||||
|   #define RETRACT_RECOVER_FEEDRATE_SWAP 8 // Default feedrate for recovering from swap retraction (mm/s) | ||||
|   #if ENABLED(MIXING_EXTRUDER) | ||||
|     //#define RETRACT_SYNC_MIXING         // Retract and restore all mixing steppers simultaneously | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|   | ||||
| @@ -1016,6 +1016,9 @@ | ||||
|   #define RETRACT_RECOVER_LENGTH_SWAP 0   // Default additional swap recover length (mm, added to retract length when recovering from extruder change) | ||||
|   #define RETRACT_RECOVER_FEEDRATE 8      // Default feedrate for recovering from retraction (mm/s) | ||||
|   #define RETRACT_RECOVER_FEEDRATE_SWAP 8 // Default feedrate for recovering from swap retraction (mm/s) | ||||
|   #if ENABLED(MIXING_EXTRUDER) | ||||
|     //#define RETRACT_SYNC_MIXING         // Retract and restore all mixing steppers simultaneously | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|   | ||||
| @@ -1016,6 +1016,9 @@ | ||||
|   #define RETRACT_RECOVER_LENGTH_SWAP 0   // Default additional swap recover length (mm, added to retract length when recovering from extruder change) | ||||
|   #define RETRACT_RECOVER_FEEDRATE 8      // Default feedrate for recovering from retraction (mm/s) | ||||
|   #define RETRACT_RECOVER_FEEDRATE_SWAP 8 // Default feedrate for recovering from swap retraction (mm/s) | ||||
|   #if ENABLED(MIXING_EXTRUDER) | ||||
|     //#define RETRACT_SYNC_MIXING         // Retract and restore all mixing steppers simultaneously | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|   | ||||
| @@ -1016,6 +1016,9 @@ | ||||
|   #define RETRACT_RECOVER_LENGTH_SWAP 0   // Default additional swap recover length (mm, added to retract length when recovering from extruder change) | ||||
|   #define RETRACT_RECOVER_FEEDRATE 8      // Default feedrate for recovering from retraction (mm/s) | ||||
|   #define RETRACT_RECOVER_FEEDRATE_SWAP 8 // Default feedrate for recovering from swap retraction (mm/s) | ||||
|   #if ENABLED(MIXING_EXTRUDER) | ||||
|     //#define RETRACT_SYNC_MIXING         // Retract and restore all mixing steppers simultaneously | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|   | ||||
| @@ -1016,6 +1016,9 @@ | ||||
|   #define RETRACT_RECOVER_LENGTH_SWAP 0   // Default additional swap recover length (mm, added to retract length when recovering from extruder change) | ||||
|   #define RETRACT_RECOVER_FEEDRATE 8      // Default feedrate for recovering from retraction (mm/s) | ||||
|   #define RETRACT_RECOVER_FEEDRATE_SWAP 8 // Default feedrate for recovering from swap retraction (mm/s) | ||||
|   #if ENABLED(MIXING_EXTRUDER) | ||||
|     //#define RETRACT_SYNC_MIXING         // Retract and restore all mixing steppers simultaneously | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|   | ||||
| @@ -1029,6 +1029,9 @@ | ||||
|   #define RETRACT_RECOVER_LENGTH_SWAP 0   // Default additional swap recover length (mm, added to retract length when recovering from extruder change) | ||||
|   #define RETRACT_RECOVER_FEEDRATE 8      // Default feedrate for recovering from retraction (mm/s) | ||||
|   #define RETRACT_RECOVER_FEEDRATE_SWAP 8 // Default feedrate for recovering from swap retraction (mm/s) | ||||
|   #if ENABLED(MIXING_EXTRUDER) | ||||
|     //#define RETRACT_SYNC_MIXING         // Retract and restore all mixing steppers simultaneously | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|   | ||||
| @@ -1016,6 +1016,9 @@ | ||||
|   #define RETRACT_RECOVER_LENGTH_SWAP 0   // Default additional swap recover length (mm, added to retract length when recovering from extruder change) | ||||
|   #define RETRACT_RECOVER_FEEDRATE 8      // Default feedrate for recovering from retraction (mm/s) | ||||
|   #define RETRACT_RECOVER_FEEDRATE_SWAP 8 // Default feedrate for recovering from swap retraction (mm/s) | ||||
|   #if ENABLED(MIXING_EXTRUDER) | ||||
|     //#define RETRACT_SYNC_MIXING         // Retract and restore all mixing steppers simultaneously | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|   | ||||
| @@ -1018,6 +1018,9 @@ | ||||
|   #define RETRACT_RECOVER_LENGTH_SWAP 0   // Default additional swap recover length (mm, added to retract length when recovering from extruder change) | ||||
|   #define RETRACT_RECOVER_FEEDRATE 8      // Default feedrate for recovering from retraction (mm/s) | ||||
|   #define RETRACT_RECOVER_FEEDRATE_SWAP 8 // Default feedrate for recovering from swap retraction (mm/s) | ||||
|   #if ENABLED(MIXING_EXTRUDER) | ||||
|     //#define RETRACT_SYNC_MIXING         // Retract and restore all mixing steppers simultaneously | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|   | ||||
| @@ -1018,6 +1018,9 @@ | ||||
|   #define RETRACT_RECOVER_LENGTH_SWAP 0   // Default additional swap recover length (mm, added to retract length when recovering from extruder change) | ||||
|   #define RETRACT_RECOVER_FEEDRATE 8      // Default feedrate for recovering from retraction (mm/s) | ||||
|   #define RETRACT_RECOVER_FEEDRATE_SWAP 8 // Default feedrate for recovering from swap retraction (mm/s) | ||||
|   #if ENABLED(MIXING_EXTRUDER) | ||||
|     //#define RETRACT_SYNC_MIXING         // Retract and restore all mixing steppers simultaneously | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|   | ||||
| @@ -1018,6 +1018,9 @@ | ||||
|   #define RETRACT_RECOVER_LENGTH_SWAP 0   // Default additional swap recover length (mm, added to retract length when recovering from extruder change) | ||||
|   #define RETRACT_RECOVER_FEEDRATE 8      // Default feedrate for recovering from retraction (mm/s) | ||||
|   #define RETRACT_RECOVER_FEEDRATE_SWAP 8 // Default feedrate for recovering from swap retraction (mm/s) | ||||
|   #if ENABLED(MIXING_EXTRUDER) | ||||
|     //#define RETRACT_SYNC_MIXING         // Retract and restore all mixing steppers simultaneously | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|   | ||||
| @@ -1018,6 +1018,9 @@ | ||||
|   #define RETRACT_RECOVER_LENGTH_SWAP 0   // Default additional swap recover length (mm, added to retract length when recovering from extruder change) | ||||
|   #define RETRACT_RECOVER_FEEDRATE 8      // Default feedrate for recovering from retraction (mm/s) | ||||
|   #define RETRACT_RECOVER_FEEDRATE_SWAP 8 // Default feedrate for recovering from swap retraction (mm/s) | ||||
|   #if ENABLED(MIXING_EXTRUDER) | ||||
|     //#define RETRACT_SYNC_MIXING         // Retract and restore all mixing steppers simultaneously | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|   | ||||
| @@ -1018,6 +1018,9 @@ | ||||
|   #define RETRACT_RECOVER_LENGTH_SWAP 0   // Default additional swap recover length (mm, added to retract length when recovering from extruder change) | ||||
|   #define RETRACT_RECOVER_FEEDRATE 8      // Default feedrate for recovering from retraction (mm/s) | ||||
|   #define RETRACT_RECOVER_FEEDRATE_SWAP 8 // Default feedrate for recovering from swap retraction (mm/s) | ||||
|   #if ENABLED(MIXING_EXTRUDER) | ||||
|     //#define RETRACT_SYNC_MIXING         // Retract and restore all mixing steppers simultaneously | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|   | ||||
| @@ -1018,6 +1018,9 @@ | ||||
|   #define RETRACT_RECOVER_LENGTH_SWAP 0   // Default additional swap recover length (mm, added to retract length when recovering from extruder change) | ||||
|   #define RETRACT_RECOVER_FEEDRATE 8      // Default feedrate for recovering from retraction (mm/s) | ||||
|   #define RETRACT_RECOVER_FEEDRATE_SWAP 8 // Default feedrate for recovering from swap retraction (mm/s) | ||||
|   #if ENABLED(MIXING_EXTRUDER) | ||||
|     //#define RETRACT_SYNC_MIXING         // Retract and restore all mixing steppers simultaneously | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|   | ||||
| @@ -1018,6 +1018,9 @@ | ||||
|   #define RETRACT_RECOVER_LENGTH_SWAP 0   // Default additional swap recover length (mm, added to retract length when recovering from extruder change) | ||||
|   #define RETRACT_RECOVER_FEEDRATE 8      // Default feedrate for recovering from retraction (mm/s) | ||||
|   #define RETRACT_RECOVER_FEEDRATE_SWAP 8 // Default feedrate for recovering from swap retraction (mm/s) | ||||
|   #if ENABLED(MIXING_EXTRUDER) | ||||
|     //#define RETRACT_SYNC_MIXING         // Retract and restore all mixing steppers simultaneously | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|   | ||||
| @@ -1018,6 +1018,9 @@ | ||||
|   #define RETRACT_RECOVER_LENGTH_SWAP 0   // Default additional swap recover length (mm, added to retract length when recovering from extruder change) | ||||
|   #define RETRACT_RECOVER_FEEDRATE 8      // Default feedrate for recovering from retraction (mm/s) | ||||
|   #define RETRACT_RECOVER_FEEDRATE_SWAP 8 // Default feedrate for recovering from swap retraction (mm/s) | ||||
|   #if ENABLED(MIXING_EXTRUDER) | ||||
|     //#define RETRACT_SYNC_MIXING         // Retract and restore all mixing steppers simultaneously | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|   | ||||
| @@ -1016,6 +1016,9 @@ | ||||
|   #define RETRACT_RECOVER_LENGTH_SWAP 0   // Default additional swap recover length (mm, added to retract length when recovering from extruder change) | ||||
|   #define RETRACT_RECOVER_FEEDRATE 8      // Default feedrate for recovering from retraction (mm/s) | ||||
|   #define RETRACT_RECOVER_FEEDRATE_SWAP 8 // Default feedrate for recovering from swap retraction (mm/s) | ||||
|   #if ENABLED(MIXING_EXTRUDER) | ||||
|     //#define RETRACT_SYNC_MIXING         // Retract and restore all mixing steppers simultaneously | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|   | ||||
| @@ -1016,6 +1016,9 @@ | ||||
|   #define RETRACT_RECOVER_LENGTH_SWAP 0   // Default additional swap recover length (mm, added to retract length when recovering from extruder change) | ||||
|   #define RETRACT_RECOVER_FEEDRATE 8      // Default feedrate for recovering from retraction (mm/s) | ||||
|   #define RETRACT_RECOVER_FEEDRATE_SWAP 8 // Default feedrate for recovering from swap retraction (mm/s) | ||||
|   #if ENABLED(MIXING_EXTRUDER) | ||||
|     //#define RETRACT_SYNC_MIXING         // Retract and restore all mixing steppers simultaneously | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|   | ||||
| @@ -1016,6 +1016,9 @@ | ||||
|   #define RETRACT_RECOVER_LENGTH_SWAP 0   // Default additional swap recover length (mm, added to retract length when recovering from extruder change) | ||||
|   #define RETRACT_RECOVER_FEEDRATE 8      // Default feedrate for recovering from retraction (mm/s) | ||||
|   #define RETRACT_RECOVER_FEEDRATE_SWAP 8 // Default feedrate for recovering from swap retraction (mm/s) | ||||
|   #if ENABLED(MIXING_EXTRUDER) | ||||
|     //#define RETRACT_SYNC_MIXING         // Retract and restore all mixing steppers simultaneously | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|   | ||||
| @@ -1017,6 +1017,9 @@ | ||||
|   #define RETRACT_RECOVER_LENGTH_SWAP 0   // Default additional swap recover length (mm, added to retract length when recovering from extruder change) | ||||
|   #define RETRACT_RECOVER_FEEDRATE 8      // Default feedrate for recovering from retraction (mm/s) | ||||
|   #define RETRACT_RECOVER_FEEDRATE_SWAP 8 // Default feedrate for recovering from swap retraction (mm/s) | ||||
|   #if ENABLED(MIXING_EXTRUDER) | ||||
|     //#define RETRACT_SYNC_MIXING         // Retract and restore all mixing steppers simultaneously | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|   | ||||
| @@ -36,6 +36,10 @@ FWRetract fwretract; // Single instance - this calls the constructor | ||||
| #include "../module/planner.h" | ||||
| #include "../module/stepper.h" | ||||
|  | ||||
| #if ENABLED(RETRACT_SYNC_MIXING) | ||||
|   #include "../feature/mixing.h" | ||||
| #endif | ||||
|  | ||||
| // private: | ||||
|  | ||||
| #if EXTRUDERS > 1 | ||||
| @@ -127,14 +131,32 @@ void FWRetract::retract(const bool retracting | ||||
|   const float old_feedrate_mm_s = feedrate_mm_s, | ||||
|               unscale_e = RECIPROCAL(planner.e_factor[active_extruder]), | ||||
|               unscale_fr = 100.0 / feedrate_percentage, // Disable feedrate scaling for retract moves | ||||
|               base_retract = swapping ? swap_retract_length : retract_length; | ||||
|               base_retract = ( | ||||
|                 (swapping ? swap_retract_length : retract_length) | ||||
|                 #if ENABLED(RETRACT_SYNC_MIXING) | ||||
|                   * (MIXING_STEPPERS) | ||||
|                 #endif | ||||
|               ); | ||||
|  | ||||
|   // The current position will be the destination for E and Z moves | ||||
|   set_destination_from_current(); | ||||
|  | ||||
|   #if ENABLED(RETRACT_SYNC_MIXING) | ||||
|     float old_mixing_factor[MIXING_STEPPERS]; | ||||
|     for (uint8_t i = 0; i < MIXING_STEPPERS; i++) { | ||||
|       old_mixing_factor[i] = mixing_factor[i]; | ||||
|       mixing_factor[i] = RECIPROCAL(MIXING_STEPPERS); | ||||
|     } | ||||
|   #endif | ||||
|  | ||||
|   if (retracting) { | ||||
|     // Retract by moving from a faux E position back to the current E position | ||||
|     feedrate_mm_s = retract_feedrate_mm_s * unscale_fr; | ||||
|     feedrate_mm_s = ( | ||||
|       retract_feedrate_mm_s * unscale_fr | ||||
|       #if ENABLED(RETRACT_SYNC_MIXING) | ||||
|         * (MIXING_STEPPERS) | ||||
|       #endif | ||||
|     ); | ||||
|     current_retract[active_extruder] = base_retract * unscale_e; | ||||
|     prepare_move_to_destination();                        // set_current_to_destination | ||||
|     planner.synchronize();                                // Wait for move to complete | ||||
| @@ -163,11 +185,20 @@ void FWRetract::retract(const bool retracting | ||||
|     } | ||||
|  | ||||
|     current_retract[active_extruder] = 0.0; | ||||
|     feedrate_mm_s = (swapping ? swap_retract_recover_feedrate_mm_s : retract_recover_feedrate_mm_s) * unscale_fr; | ||||
|     feedrate_mm_s = ( | ||||
|       (swapping ? swap_retract_recover_feedrate_mm_s : retract_recover_feedrate_mm_s) * unscale_fr | ||||
|       #if ENABLED(RETRACT_SYNC_MIXING) | ||||
|         * (MIXING_STEPPERS) | ||||
|       #endif | ||||
|     ); | ||||
|     prepare_move_to_destination();                        // Recover E, set_current_to_destination | ||||
|     planner.synchronize();                                // Wait for move to complete | ||||
|   } | ||||
|  | ||||
|   #if ENABLED(RETRACT_SYNC_MIXING) | ||||
|     COPY(mixing_factor, old_mixing_factor);               // Restore original mixing factor | ||||
|   #endif | ||||
|  | ||||
|   feedrate_mm_s = old_feedrate_mm_s;                      // Restore original feedrate | ||||
|   retracted[active_extruder] = retracting;                // Active extruder now retracted / recovered | ||||
|  | ||||
|   | ||||
| @@ -2084,7 +2084,17 @@ bool Planner::_populate_block(block_t * const block, bool split_move, | ||||
|   // Calculate and limit speed in mm/sec for each axis | ||||
|   float current_speed[NUM_AXIS], speed_factor = 1.0f; // factor <1 decreases speed | ||||
|   LOOP_XYZE(i) { | ||||
|     const float cs = ABS((current_speed[i] = delta_mm[i] * inverse_secs)); | ||||
|     #if ENABLED(MIXING_EXTRUDER) | ||||
|       float delta_mm_i = 0; | ||||
|       if (i == E_AXIS) { | ||||
|         for (uint8_t s = 0; s < MIXING_STEPPERS; s++) | ||||
|           delta_mm_i = MAX(mixing_factor[s] * ABS(delta_mm[i]), delta_mm_i); | ||||
|       } | ||||
|       else delta_mm_i = ABS(delta_mm[i]); | ||||
|     #else | ||||
|       const float delta_mm_i = ABS(delta_mm[i]); | ||||
|     #endif | ||||
|     const float cs = current_speed[i] = delta_mm_i * inverse_secs; | ||||
|     #if ENABLED(DISTINCT_E_FACTORS) | ||||
|       if (i == E_AXIS) i += extruder; | ||||
|     #endif | ||||
|   | ||||
		Reference in New Issue
	
	Block a user