Single nozzle filament change (#11994)
This commit is contained in:
		
				
					committed by
					
						
						Scott Lahteine
					
				
			
			
				
	
			
			
			
						parent
						
							bfcf570d68
						
					
				
				
					commit
					74cd6cb4fc
				
			@@ -155,6 +155,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -155,6 +155,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -155,6 +155,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -155,6 +155,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -155,6 +155,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -155,6 +155,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -155,6 +155,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -156,6 +156,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -155,6 +155,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -155,6 +155,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -155,6 +155,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -155,6 +155,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -163,6 +163,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -155,6 +155,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -156,6 +156,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -155,6 +155,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -159,6 +159,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -164,6 +164,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -155,6 +155,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -155,6 +155,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -155,6 +155,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -155,6 +155,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -155,6 +155,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -155,6 +155,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -155,6 +155,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -155,6 +155,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -196,6 +196,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -158,6 +158,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -159,6 +159,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -155,6 +155,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -155,6 +155,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -155,6 +155,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -155,6 +155,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -155,6 +155,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -155,6 +155,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -155,6 +155,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -155,6 +155,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -160,6 +160,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -175,6 +175,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -160,6 +160,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -155,6 +155,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -155,6 +155,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -155,6 +155,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -155,6 +155,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -155,6 +155,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -155,6 +155,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -158,6 +158,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -186,6 +186,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -155,6 +155,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -155,6 +155,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -155,6 +155,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -155,6 +155,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -177,6 +177,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -155,6 +155,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -155,6 +155,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -155,6 +155,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -155,6 +155,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -155,6 +155,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -175,6 +175,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -155,6 +155,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -155,6 +155,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -155,6 +155,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -155,6 +155,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -168,6 +168,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -155,6 +155,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -155,6 +155,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -155,6 +155,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -160,6 +160,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -155,6 +155,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -155,6 +155,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -159,6 +159,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -155,6 +155,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -160,6 +160,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -155,6 +155,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -155,6 +155,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -155,6 +155,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -155,6 +155,18 @@
 | 
			
		||||
 | 
			
		||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
 | 
			
		||||
//#define SINGLENOZZLE
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  // Length of filament to retract and prime on toolchange
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_LENGTH 12.0
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PRIME_SPEED   3600  // (mm/m)
 | 
			
		||||
  //#define SINGLENOZZLE_SWAP_PARK
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
  #else
 | 
			
		||||
    #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
 | 
			
		||||
 
 | 
			
		||||
@@ -112,7 +112,7 @@ static bool ensure_safe_temperature(const AdvancedPauseMode mode=ADVANCED_PAUSE_
 | 
			
		||||
  return thermalManager.wait_for_hotend(active_extruder);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void do_pause_e_move(const float &length, const float &fr) {
 | 
			
		||||
void do_pause_e_move(const float &length, const float &fr) {
 | 
			
		||||
  current_position[E_AXIS] += length / planner.e_factor[active_extruder];
 | 
			
		||||
  planner.buffer_line(current_position, fr, active_extruder);
 | 
			
		||||
  planner.synchronize();
 | 
			
		||||
 
 | 
			
		||||
@@ -77,6 +77,8 @@ extern uint8_t did_pause_print;
 | 
			
		||||
  #define DXC_PASS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
void do_pause_e_move(const float &length, const float &fr);
 | 
			
		||||
 | 
			
		||||
bool pause_print(const float &retract, const point_t &park_point, const float &unload_length=0, const bool show_lcd=false DXC_PARAMS);
 | 
			
		||||
 | 
			
		||||
void wait_for_filament_reload(const int8_t max_beep_count=0 DXC_PARAMS);
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										63
									
								
								Marlin/src/gcode/config/M217.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										63
									
								
								Marlin/src/gcode/config/M217.cpp
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,63 @@
 | 
			
		||||
/**
 | 
			
		||||
 * Marlin 3D Printer Firmware
 | 
			
		||||
 * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
 | 
			
		||||
 *
 | 
			
		||||
 * Based on Sprinter and grbl.
 | 
			
		||||
 * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
 | 
			
		||||
 *
 | 
			
		||||
 * This program is free software: you can redistribute it and/or modify
 | 
			
		||||
 * it under the terms of the GNU General Public License as published by
 | 
			
		||||
 * the Free Software Foundation, either version 3 of the License, or
 | 
			
		||||
 * (at your option) any later version.
 | 
			
		||||
 *
 | 
			
		||||
 * This program is distributed in the hope that it will be useful,
 | 
			
		||||
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
 * GNU General Public License for more details.
 | 
			
		||||
 *
 | 
			
		||||
 * You should have received a copy of the GNU General Public License
 | 
			
		||||
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "../../inc/MarlinConfigPre.h"
 | 
			
		||||
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
 | 
			
		||||
#include "../gcode.h"
 | 
			
		||||
#include "../../module/tool_change.h"
 | 
			
		||||
 | 
			
		||||
#if NUM_SERIAL > 1
 | 
			
		||||
  #include "../../gcode/queue.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
void M217_report(const bool eeprom=false) {
 | 
			
		||||
  #if NUM_SERIAL > 1
 | 
			
		||||
    const int16_t port = command_queue_port[cmd_queue_index_r];
 | 
			
		||||
  #endif
 | 
			
		||||
  serialprintPGM_P(port, eeprom ? PSTR("  M217") : PSTR("Singlenozzle:"));
 | 
			
		||||
  SERIAL_ECHOPAIR_P(port, " S", singlenozzle_swap_length);
 | 
			
		||||
  SERIAL_ECHOPAIR_P(port, " P", singlenozzle_prime_speed);
 | 
			
		||||
  SERIAL_ECHOLNPAIR_P(port, " R", singlenozzle_retract_speed);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * M217 - Set SINGLENOZZLE toolchange parameters
 | 
			
		||||
 *
 | 
			
		||||
 *  S[mm]   Swap length
 | 
			
		||||
 *  P[mm/s] Prime speed
 | 
			
		||||
 *  R[mm/s] Retract speed
 | 
			
		||||
 */
 | 
			
		||||
void GcodeSuite::M217() {
 | 
			
		||||
 | 
			
		||||
  bool report = true;
 | 
			
		||||
 | 
			
		||||
  if (parser.seenval('S')) { report = false; const float v = parser.value_float(); singlenozzle_swap_length = constrain(v, 0, 500); }
 | 
			
		||||
  if (parser.seenval('P')) { report = false; const int16_t v = parser.value_int(); singlenozzle_prime_speed = constrain(v, 10, 5400); }
 | 
			
		||||
  if (parser.seenval('R')) { report = false; const int16_t v = parser.value_int(); singlenozzle_retract_speed = constrain(v, 10, 5400); }
 | 
			
		||||
 | 
			
		||||
  if (report) M217_report();
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif // SINGLENOZZLE
 | 
			
		||||
@@ -487,6 +487,10 @@ void GcodeSuite::process_parsed_command(
 | 
			
		||||
 | 
			
		||||
      case 211: M211(); break;                                    // M211: Enable, Disable, and/or Report software endstops
 | 
			
		||||
 | 
			
		||||
      #if ENABLED(SINGLENOZZLE)
 | 
			
		||||
        case 217: M217(); break;                                  // M217: Set filament swap parameters
 | 
			
		||||
      #endif
 | 
			
		||||
 | 
			
		||||
      #if HOTENDS > 1
 | 
			
		||||
        case 218: M218(); break;                                  // M218: Set a tool offset
 | 
			
		||||
      #endif
 | 
			
		||||
 
 | 
			
		||||
@@ -165,6 +165,7 @@
 | 
			
		||||
 * M209 - Turn Automatic Retract Detection on/off: S<0|1> (For slicers that don't support G10/11). (Requires FWRETRACT_AUTORETRACT)
 | 
			
		||||
          Every normal extrude-only move will be classified as retract depending on the direction.
 | 
			
		||||
 * M211 - Enable, Disable, and/or Report software endstops: S<0|1> (Requires MIN_SOFTWARE_ENDSTOPS or MAX_SOFTWARE_ENDSTOPS)
 | 
			
		||||
 * M217 - Set filament swap parameters: "M217 S<length> P<feedrate> R<feedrate>". (Requires SINGLENOZZLE)
 | 
			
		||||
 * M218 - Set/get a tool offset: "M218 T<index> X<offset> Y<offset>". (Requires 2 or more extruders)
 | 
			
		||||
 * M220 - Set Feedrate Percentage: "M220 S<percent>" (i.e., "FR" on the LCD)
 | 
			
		||||
 * M221 - Set Flow Percentage: "M221 S<percent>"
 | 
			
		||||
@@ -617,6 +618,10 @@ private:
 | 
			
		||||
 | 
			
		||||
  static void M211();
 | 
			
		||||
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE)
 | 
			
		||||
    static void M217();
 | 
			
		||||
  #endif
 | 
			
		||||
 | 
			
		||||
  #if HOTENDS > 1
 | 
			
		||||
    static void M218();
 | 
			
		||||
  #endif
 | 
			
		||||
 
 | 
			
		||||
@@ -35,6 +35,10 @@
 | 
			
		||||
  #include "../../feature/leds/leds.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  #include "../../module/tool_change.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * M104: Set hot end temperature
 | 
			
		||||
 */
 | 
			
		||||
@@ -44,12 +48,12 @@ void GcodeSuite::M104() {
 | 
			
		||||
 | 
			
		||||
  const uint8_t e = target_extruder;
 | 
			
		||||
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE)
 | 
			
		||||
    if (e != active_extruder) return;
 | 
			
		||||
  #endif
 | 
			
		||||
 | 
			
		||||
  if (parser.seenval('S')) {
 | 
			
		||||
    const int16_t temp = parser.value_celsius();
 | 
			
		||||
    #if ENABLED(SINGLENOZZLE)
 | 
			
		||||
      singlenozzle_temp[e] = temp;
 | 
			
		||||
      if (e != active_extruder) return;
 | 
			
		||||
    #endif
 | 
			
		||||
    thermalManager.setTargetHotend(temp, e);
 | 
			
		||||
 | 
			
		||||
    #if ENABLED(DUAL_X_CARRIAGE)
 | 
			
		||||
@@ -85,14 +89,14 @@ void GcodeSuite::M109() {
 | 
			
		||||
  if (get_target_extruder_from_command()) return;
 | 
			
		||||
  if (DEBUGGING(DRYRUN)) return;
 | 
			
		||||
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE)
 | 
			
		||||
    if (target_extruder != active_extruder) return;
 | 
			
		||||
  #endif
 | 
			
		||||
 | 
			
		||||
  const bool no_wait_for_cooling = parser.seenval('S'),
 | 
			
		||||
             set_temp = no_wait_for_cooling || parser.seenval('R');
 | 
			
		||||
  if (set_temp) {
 | 
			
		||||
    const int16_t temp = parser.value_celsius();
 | 
			
		||||
    #if ENABLED(SINGLENOZZLE)
 | 
			
		||||
      singlenozzle_temp[target_extruder] = temp;
 | 
			
		||||
      if (target_extruder != active_extruder) return;
 | 
			
		||||
    #endif
 | 
			
		||||
    thermalManager.setTargetHotend(temp, target_extruder);
 | 
			
		||||
 | 
			
		||||
    #if ENABLED(DUAL_X_CARRIAGE)
 | 
			
		||||
@@ -115,13 +119,8 @@ void GcodeSuite::M109() {
 | 
			
		||||
    #endif
 | 
			
		||||
 | 
			
		||||
    #if ENABLED(ULTRA_LCD)
 | 
			
		||||
      const bool heating = thermalManager.isHeatingHotend(target_extruder);
 | 
			
		||||
      if (heating || !no_wait_for_cooling)
 | 
			
		||||
        #if HOTENDS > 1
 | 
			
		||||
          lcd_status_printf_P(0, heating ? PSTR("E%i " MSG_HEATING) : PSTR("E%i " MSG_COOLING), target_extruder + 1);
 | 
			
		||||
        #else
 | 
			
		||||
          lcd_setstatusPGM(heating ? PSTR("E " MSG_HEATING) : PSTR("E " MSG_COOLING));
 | 
			
		||||
        #endif
 | 
			
		||||
      if (thermalManager.isHeatingHotend(target_extruder) || !no_wait_for_cooling)
 | 
			
		||||
        thermalManager.set_heating_message(target_extruder);
 | 
			
		||||
    #endif
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -27,6 +27,11 @@
 | 
			
		||||
#include "../gcode.h"
 | 
			
		||||
#include "../../Marlin.h" // for fan_speed — should move those to Planner
 | 
			
		||||
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  #include "../../module/motion.h"
 | 
			
		||||
  #include "../../module/tool_change.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * M106: Set Fan Speed
 | 
			
		||||
 *
 | 
			
		||||
@@ -42,6 +47,15 @@
 | 
			
		||||
 */
 | 
			
		||||
void GcodeSuite::M106() {
 | 
			
		||||
  const uint8_t p = parser.byteval('P');
 | 
			
		||||
  const uint16_t s = parser.ushortval('S', 255);
 | 
			
		||||
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE)
 | 
			
		||||
    if (p != active_extruder) {
 | 
			
		||||
      if (p < EXTRUDERS) singlenozzle_fan_speed[p] = MIN(s, 255U);
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
  #endif
 | 
			
		||||
 | 
			
		||||
  if (p < FAN_COUNT) {
 | 
			
		||||
    #if ENABLED(EXTRA_FAN_SPEED)
 | 
			
		||||
      const int16_t t = parser.intval('T');
 | 
			
		||||
@@ -55,14 +69,12 @@ void GcodeSuite::M106() {
 | 
			
		||||
            fan_speed[p] = new_fan_speed[p];
 | 
			
		||||
            break;
 | 
			
		||||
          default:
 | 
			
		||||
            new_fan_speed[p] = MIN(t, 255);
 | 
			
		||||
            new_fan_speed[p] = MIN(t, 255U);
 | 
			
		||||
            break;
 | 
			
		||||
        }
 | 
			
		||||
        return;
 | 
			
		||||
 | 
			
		||||
      }
 | 
			
		||||
    #endif // EXTRA_FAN_SPEED
 | 
			
		||||
    const uint16_t s = parser.ushortval('S', 255);
 | 
			
		||||
    fan_speed[p] = MIN(s, 255U);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -72,6 +84,13 @@ void GcodeSuite::M106() {
 | 
			
		||||
 */
 | 
			
		||||
void GcodeSuite::M107() {
 | 
			
		||||
  const uint16_t p = parser.ushortval('P');
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE)
 | 
			
		||||
    if (p != active_extruder) {
 | 
			
		||||
      if (p < EXTRUDERS) singlenozzle_fan_speed[p] = 0;
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
  #endif
 | 
			
		||||
 | 
			
		||||
  if (p < FAN_COUNT) fan_speed[p] = 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1513,6 +1513,28 @@
 | 
			
		||||
// Add commands that need sub-codes to this list
 | 
			
		||||
#define USE_GCODE_SUBCODES ENABLED(G38_PROBE_TARGET) || ENABLED(CNC_COORDINATE_SYSTEMS) || ENABLED(POWER_LOSS_RECOVERY)
 | 
			
		||||
 | 
			
		||||
// Single Nozzle swap on toolchange defaults
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  #ifndef SINGLENOZZLE_SWAP_LENGTH
 | 
			
		||||
    #define SINGLENOZZLE_SWAP_LENGTH 0
 | 
			
		||||
  #endif
 | 
			
		||||
  #ifndef SINGLENOZZLE_SWAP_RETRACT_SPEED
 | 
			
		||||
    #define SINGLENOZZLE_SWAP_RETRACT_SPEED 60.0
 | 
			
		||||
  #endif
 | 
			
		||||
  #ifndef SINGLENOZZLE_SWAP_PRIME_SPEED
 | 
			
		||||
    #define SINGLENOZZLE_SWAP_PRIME_SPEED 60.0
 | 
			
		||||
  #endif
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #ifndef SINGLENOZZLE_TOOLCHANGE_POSITION
 | 
			
		||||
      #define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
 | 
			
		||||
    #endif
 | 
			
		||||
  #else
 | 
			
		||||
    #ifndef SINGLENOZZLE_TOOLCHANGE_ZRAISE
 | 
			
		||||
      #define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
 | 
			
		||||
    #endif
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// Parking Extruder
 | 
			
		||||
#if ENABLED(PARKING_EXTRUDER)
 | 
			
		||||
  #ifndef PARKING_EXTRUDER_GRAB_DISTANCE
 | 
			
		||||
 
 | 
			
		||||
@@ -602,6 +602,10 @@ static_assert(X_MAX_LENGTH >= X_BED_SIZE && Y_MAX_LENGTH >= Y_BED_SIZE,
 | 
			
		||||
    #error "EXTRUDERS must be 1 with HEATERS_PARALLEL."
 | 
			
		||||
  #endif
 | 
			
		||||
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE) && !defined(SINGLENOZZLE_SWAP_LENGTH)
 | 
			
		||||
    #define SINGLENOZZLE_SWAP_LENGTH 0
 | 
			
		||||
  #endif
 | 
			
		||||
 | 
			
		||||
#elif ENABLED(MK2_MULTIPLEXER)
 | 
			
		||||
  #error "MK2_MULTIPLEXER requires 2 or more EXTRUDERS."
 | 
			
		||||
#elif ENABLED(SINGLENOZZLE)
 | 
			
		||||
 
 | 
			
		||||
@@ -768,6 +768,18 @@
 | 
			
		||||
#ifndef MSG_AUTORETRACT
 | 
			
		||||
  #define MSG_AUTORETRACT                     _UxGT("AutoRetr.")
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef MSG_FILAMENT_SWAP_LENGTH
 | 
			
		||||
  #define MSG_FILAMENT_SWAP_LENGTH            _UxGT("Retract Distance")
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef MSG_SINGLENOZZLE_TOOL_CHANGE
 | 
			
		||||
  #define MSG_SINGLENOZZLE_TOOL_CHANGE        _UxGT("Tool Change")
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef MSG_SINGLENOZZLE_PRIME_SPD
 | 
			
		||||
  #define MSG_SINGLENOZZLE_PRIME_SPD          _UxGT("Prime Speed")
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef MSG_SINGLENOZZLE_RETRACT_SPD
 | 
			
		||||
  #define MSG_SINGLENOZZLE_RETRACT_SPD        _UxGT("Retract Speed")
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef MSG_FILAMENTCHANGE
 | 
			
		||||
  #define MSG_FILAMENTCHANGE                  _UxGT("Change filament")
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
@@ -138,6 +138,7 @@ millis_t next_lcd_update_ms;
 | 
			
		||||
    } \
 | 
			
		||||
    typedef void _name##_void
 | 
			
		||||
  DEFINE_LCD_IMPLEMENTATION_DRAWMENU_SETTING_EDIT_TYPE(int16_t, int3, itostr3);
 | 
			
		||||
  DEFINE_LCD_IMPLEMENTATION_DRAWMENU_SETTING_EDIT_TYPE(int16_t, int4, itostr4sign);
 | 
			
		||||
  DEFINE_LCD_IMPLEMENTATION_DRAWMENU_SETTING_EDIT_TYPE(uint8_t, int8, i8tostr3);
 | 
			
		||||
  DEFINE_LCD_IMPLEMENTATION_DRAWMENU_SETTING_EDIT_TYPE(float, float3, ftostr3);
 | 
			
		||||
  DEFINE_LCD_IMPLEMENTATION_DRAWMENU_SETTING_EDIT_TYPE(float, float52, ftostr52);
 | 
			
		||||
@@ -267,6 +268,7 @@ millis_t next_lcd_update_ms;
 | 
			
		||||
    typedef void _name##_void
 | 
			
		||||
 | 
			
		||||
  DECLARE_MENU_EDIT_TYPE(int16_t, int3);
 | 
			
		||||
  DECLARE_MENU_EDIT_TYPE(int16_t, int4);
 | 
			
		||||
  DECLARE_MENU_EDIT_TYPE(uint8_t, int8);
 | 
			
		||||
  DECLARE_MENU_EDIT_TYPE(float, float3);
 | 
			
		||||
  DECLARE_MENU_EDIT_TYPE(float, float52);
 | 
			
		||||
@@ -974,15 +976,23 @@ void lcd_quick_feedback(const bool clear_buttons) {
 | 
			
		||||
 | 
			
		||||
  #endif // POWER_LOSS_RECOVERY
 | 
			
		||||
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE)
 | 
			
		||||
    void singlenozzle_swap_menu() {
 | 
			
		||||
      START_MENU();
 | 
			
		||||
      MENU_BACK(MSG_MAIN);
 | 
			
		||||
      MENU_ITEM_EDIT(float3, MSG_FILAMENT_SWAP_LENGTH, &singlenozzle_swap_length, 0, 200);
 | 
			
		||||
      MENU_MULTIPLIER_ITEM_EDIT(int4, MSG_SINGLENOZZLE_RETRACT_SPD, &singlenozzle_retract_speed, 10, 5400);
 | 
			
		||||
      MENU_MULTIPLIER_ITEM_EDIT(int4, MSG_SINGLENOZZLE_PRIME_SPD, &singlenozzle_prime_speed, 10, 5400);
 | 
			
		||||
      END_MENU();
 | 
			
		||||
    }
 | 
			
		||||
  #endif
 | 
			
		||||
  
 | 
			
		||||
  #if ENABLED(MENU_ITEM_CASE_LIGHT)
 | 
			
		||||
 | 
			
		||||
    #include "../feature/caselight.h"
 | 
			
		||||
 | 
			
		||||
    void case_light_menu() {
 | 
			
		||||
      START_MENU();
 | 
			
		||||
      //
 | 
			
		||||
      // ^ Main
 | 
			
		||||
      //
 | 
			
		||||
      MENU_BACK(MSG_MAIN);
 | 
			
		||||
      MENU_ITEM_EDIT_CALLBACK(int8, MSG_CASE_LIGHT_BRIGHTNESS, &case_light_brightness, 0, 255, update_case_light, true);
 | 
			
		||||
      MENU_ITEM_EDIT_CALLBACK(bool, MSG_CASE_LIGHT, (bool*)&case_light_on, update_case_light);
 | 
			
		||||
@@ -999,9 +1009,6 @@ void lcd_quick_feedback(const bool clear_buttons) {
 | 
			
		||||
     */
 | 
			
		||||
    static void bltouch_menu() {
 | 
			
		||||
      START_MENU();
 | 
			
		||||
      //
 | 
			
		||||
      // ^ Main
 | 
			
		||||
      //
 | 
			
		||||
      MENU_BACK(MSG_MAIN);
 | 
			
		||||
      MENU_ITEM(gcode, MSG_BLTOUCH_RESET, PSTR("M280 P" STRINGIFY(Z_PROBE_SERVO_NR) " S" STRINGIFY(BLTOUCH_RESET)));
 | 
			
		||||
      MENU_ITEM(gcode, MSG_BLTOUCH_SELFTEST, PSTR("M280 P" STRINGIFY(Z_PROBE_SERVO_NR) " S" STRINGIFY(BLTOUCH_SELFTEST)));
 | 
			
		||||
@@ -1042,7 +1049,7 @@ void lcd_quick_feedback(const bool clear_buttons) {
 | 
			
		||||
    void lcd_debug_menu() {
 | 
			
		||||
      START_MENU();
 | 
			
		||||
 | 
			
		||||
      MENU_BACK(MSG_MAIN); // ^ Main
 | 
			
		||||
      MENU_BACK(MSG_MAIN);
 | 
			
		||||
 | 
			
		||||
      #if ENABLED(LCD_PROGRESS_BAR_TEST)
 | 
			
		||||
        MENU_ITEM(submenu, MSG_PROGRESS_BAR_TEST, _progress_bar_test);
 | 
			
		||||
@@ -1494,10 +1501,6 @@ void lcd_quick_feedback(const bool clear_buttons) {
 | 
			
		||||
   */
 | 
			
		||||
  void lcd_tune_menu() {
 | 
			
		||||
    START_MENU();
 | 
			
		||||
 | 
			
		||||
    //
 | 
			
		||||
    // ^ Main
 | 
			
		||||
    //
 | 
			
		||||
    MENU_BACK(MSG_MAIN);
 | 
			
		||||
 | 
			
		||||
    //
 | 
			
		||||
@@ -3438,6 +3441,13 @@ void lcd_quick_feedback(const bool clear_buttons) {
 | 
			
		||||
      #endif
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //
 | 
			
		||||
    // Set single nozzle filament retract and prime length
 | 
			
		||||
    //
 | 
			
		||||
    #if ENABLED(SINGLENOZZLE)
 | 
			
		||||
      MENU_ITEM(submenu, MSG_SINGLENOZZLE_TOOL_CHANGE, singlenozzle_swap_menu);
 | 
			
		||||
    #endif
 | 
			
		||||
 | 
			
		||||
    //
 | 
			
		||||
    // Set Case light on/off/brightness
 | 
			
		||||
    //
 | 
			
		||||
@@ -5143,6 +5153,7 @@ void lcd_quick_feedback(const bool clear_buttons) {
 | 
			
		||||
    typedef void _name##_void
 | 
			
		||||
 | 
			
		||||
  DEFINE_MENU_EDIT_TYPE(int16_t, int3, itostr3, 1);
 | 
			
		||||
  DEFINE_MENU_EDIT_TYPE(int16_t, int4, itostr4sign, 1);
 | 
			
		||||
  DEFINE_MENU_EDIT_TYPE(uint8_t, int8, i8tostr3, 1);
 | 
			
		||||
  DEFINE_MENU_EDIT_TYPE(float, float3, ftostr3, 1);
 | 
			
		||||
  DEFINE_MENU_EDIT_TYPE(float, float52, ftostr52, 100);
 | 
			
		||||
 
 | 
			
		||||
@@ -98,6 +98,11 @@ typedef struct {  int16_t X, Y, Z;                                         } tmc
 | 
			
		||||
  #include "../feature/pause.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  #include "tool_change.h"
 | 
			
		||||
  void M217_report(const bool eeprom);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if ENABLED(PID_EXTRUSION_SCALING)
 | 
			
		||||
  #define LPQ_LEN thermalManager.lpq_len
 | 
			
		||||
#endif
 | 
			
		||||
@@ -289,6 +294,15 @@ typedef struct SettingsDataStruct {
 | 
			
		||||
  float filament_change_unload_length[EXTRUDERS],       // M603 T U
 | 
			
		||||
        filament_change_load_length[EXTRUDERS];         // M603 T L
 | 
			
		||||
 | 
			
		||||
  //
 | 
			
		||||
  // SINGLENOZZLE toolchange values
 | 
			
		||||
  //
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE)
 | 
			
		||||
    float singlenozzle_swap_length;                     // M217 S
 | 
			
		||||
    int16_t singlenozzle_prime_speed,                   // M217 P
 | 
			
		||||
            singlenozzle_retract_speed;                 // M217 R
 | 
			
		||||
  #endif
 | 
			
		||||
 | 
			
		||||
} SettingsData;
 | 
			
		||||
 | 
			
		||||
#pragma pack(pop)
 | 
			
		||||
@@ -947,6 +961,17 @@ void MarlinSettings::postprocess() {
 | 
			
		||||
      for (uint8_t q = EXTRUDERS * 2; q--;) EEPROM_WRITE(dummy);
 | 
			
		||||
    #endif
 | 
			
		||||
 | 
			
		||||
    //
 | 
			
		||||
    // SINGLENOZZLE
 | 
			
		||||
    //
 | 
			
		||||
 | 
			
		||||
    #if ENABLED(SINGLENOZZLE)
 | 
			
		||||
      _FIELD_TEST(singlenozzle_swap_length);
 | 
			
		||||
      EEPROM_WRITE(singlenozzle_swap_length);
 | 
			
		||||
      EEPROM_WRITE(singlenozzle_prime_speed);
 | 
			
		||||
      EEPROM_WRITE(singlenozzle_retract_speed);
 | 
			
		||||
    #endif
 | 
			
		||||
 | 
			
		||||
    //
 | 
			
		||||
    // Validate CRC and Data Size
 | 
			
		||||
    //
 | 
			
		||||
@@ -1582,6 +1607,17 @@ void MarlinSettings::postprocess() {
 | 
			
		||||
        for (uint8_t q = EXTRUDERS * 2; q--;) EEPROM_READ(dummy);
 | 
			
		||||
      #endif
 | 
			
		||||
 | 
			
		||||
      //
 | 
			
		||||
      // SINGLENOZZLE toolchange values
 | 
			
		||||
      //
 | 
			
		||||
 | 
			
		||||
      #if ENABLED(SINGLENOZZLE)
 | 
			
		||||
        _FIELD_TEST(singlenozzle_swap_length);
 | 
			
		||||
        EEPROM_READ(singlenozzle_swap_length);
 | 
			
		||||
        EEPROM_READ(singlenozzle_prime_speed);
 | 
			
		||||
        EEPROM_READ(singlenozzle_retract_speed);
 | 
			
		||||
      #endif
 | 
			
		||||
 | 
			
		||||
      eeprom_error = size_error(eeprom_index - (EEPROM_OFFSET));
 | 
			
		||||
      if (eeprom_error) {
 | 
			
		||||
        #if ENABLED(EEPROM_CHITCHAT)
 | 
			
		||||
@@ -1840,6 +1876,12 @@ void MarlinSettings::reset(PORTARG_SOLO) {
 | 
			
		||||
    #endif
 | 
			
		||||
  #endif
 | 
			
		||||
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE)
 | 
			
		||||
    singlenozzle_swap_length = SINGLENOZZLE_SWAP_LENGTH;
 | 
			
		||||
    singlenozzle_prime_speed = SINGLENOZZLE_SWAP_PRIME_SPEED;
 | 
			
		||||
    singlenozzle_retract_speed = SINGLENOZZLE_SWAP_RETRACT_SPEED;
 | 
			
		||||
  #endif
 | 
			
		||||
 | 
			
		||||
  //
 | 
			
		||||
  // Global Leveling
 | 
			
		||||
  //
 | 
			
		||||
@@ -2897,6 +2939,15 @@ void MarlinSettings::reset(PORTARG_SOLO) {
 | 
			
		||||
        #endif // EXTRUDERS > 2
 | 
			
		||||
      #endif // EXTRUDERS == 1
 | 
			
		||||
    #endif // ADVANCED_PAUSE_FEATURE
 | 
			
		||||
 | 
			
		||||
    #if ENABLED(SINGLENOZZLE)
 | 
			
		||||
      CONFIG_ECHO_START;
 | 
			
		||||
      if (!forReplay) {
 | 
			
		||||
        SERIAL_ECHOLNPGM_P(port, "SINGLENOZZLE:");
 | 
			
		||||
        CONFIG_ECHO_START;
 | 
			
		||||
      }
 | 
			
		||||
      M217_report(true);
 | 
			
		||||
    #endif
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
#endif // !DISABLE_M503
 | 
			
		||||
 
 | 
			
		||||
@@ -2416,6 +2416,17 @@ void Temperature::isr() {
 | 
			
		||||
 | 
			
		||||
  #endif // AUTO_REPORT_TEMPERATURES
 | 
			
		||||
 | 
			
		||||
  #if ENABLED(ULTRA_LCD)
 | 
			
		||||
    void Temperature::set_heating_message(const uint8_t e) {
 | 
			
		||||
      const bool heating = isHeatingHotend(e);
 | 
			
		||||
      #if HOTENDS > 1
 | 
			
		||||
        lcd_status_printf_P(0, heating ? PSTR("E%i " MSG_HEATING) : PSTR("E%i " MSG_COOLING), int(e + 1));
 | 
			
		||||
      #else
 | 
			
		||||
        lcd_setstatusPGM(heating ? PSTR("E " MSG_HEATING) : PSTR("E " MSG_COOLING));
 | 
			
		||||
      #endif
 | 
			
		||||
    }
 | 
			
		||||
  #endif
 | 
			
		||||
 | 
			
		||||
  #if HAS_TEMP_HOTEND
 | 
			
		||||
 | 
			
		||||
    #ifndef MIN_COOLING_SLOPE_DEG
 | 
			
		||||
 
 | 
			
		||||
@@ -616,6 +616,10 @@ class Temperature {
 | 
			
		||||
      #endif
 | 
			
		||||
    #endif
 | 
			
		||||
 | 
			
		||||
    #if ENABLED(ULTRA_LCD)
 | 
			
		||||
      static void set_heating_message(const uint8_t e);
 | 
			
		||||
    #endif
 | 
			
		||||
 | 
			
		||||
  private:
 | 
			
		||||
 | 
			
		||||
    #if ENABLED(FAST_PWM_FAN)
 | 
			
		||||
@@ -659,7 +663,6 @@ class Temperature {
 | 
			
		||||
      #endif
 | 
			
		||||
 | 
			
		||||
    #endif // THERMAL_PROTECTION
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
extern Temperature thermalManager;
 | 
			
		||||
 
 | 
			
		||||
@@ -25,9 +25,24 @@
 | 
			
		||||
#include "probe.h"
 | 
			
		||||
#include "motion.h"
 | 
			
		||||
#include "planner.h"
 | 
			
		||||
#include "temperature.h"
 | 
			
		||||
 | 
			
		||||
#include "../Marlin.h"
 | 
			
		||||
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  float singlenozzle_swap_length      = SINGLENOZZLE_SWAP_LENGTH;
 | 
			
		||||
  int16_t singlenozzle_prime_speed    = SINGLENOZZLE_SWAP_PRIME_SPEED,
 | 
			
		||||
          singlenozzle_retract_speed  = SINGLENOZZLE_SWAP_RETRACT_SPEED;
 | 
			
		||||
  uint16_t singlenozzle_temp[EXTRUDERS];
 | 
			
		||||
  #if FAN_COUNT > 0
 | 
			
		||||
    uint8_t singlenozzle_fan_speed[EXTRUDERS];
 | 
			
		||||
  #endif
 | 
			
		||||
  #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
    #include "../libs/point_t.h"
 | 
			
		||||
    const point_t singlenozzle_change_point = SINGLENOZZLE_TOOLCHANGE_POSITION;
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if ENABLED(PARKING_EXTRUDER) && PARKING_EXTRUDER_SOLENOIDS_DELAY > 0
 | 
			
		||||
  #include "../gcode/gcode.h" // for dwell()
 | 
			
		||||
#endif
 | 
			
		||||
@@ -625,16 +640,89 @@ void tool_change(const uint8_t tmp_extruder, const float fr_mm_s/*=0.0*/, bool n
 | 
			
		||||
      UNUSED(no_move);
 | 
			
		||||
 | 
			
		||||
      #if ENABLED(MK2_MULTIPLEXER)
 | 
			
		||||
        if (tmp_extruder >= E_STEPPERS)
 | 
			
		||||
          return invalid_extruder_error(tmp_extruder);
 | 
			
		||||
 | 
			
		||||
        if (tmp_extruder >= E_STEPPERS) return invalid_extruder_error(tmp_extruder);
 | 
			
		||||
        select_multiplexed_stepper(tmp_extruder);
 | 
			
		||||
      #endif
 | 
			
		||||
 | 
			
		||||
      #if EXTRUDERS > 1
 | 
			
		||||
        // Set the new active extruder
 | 
			
		||||
        active_extruder = tmp_extruder;
 | 
			
		||||
      #endif
 | 
			
		||||
 | 
			
		||||
        #if ENABLED(SINGLENOZZLE)
 | 
			
		||||
 | 
			
		||||
          #if ENABLED(PREVENT_COLD_EXTRUSION)
 | 
			
		||||
            if (!DEBUGGING(DRYRUN) && thermalManager.targetTooColdToExtrude(active_extruder)) {
 | 
			
		||||
              SERIAL_ERROR_START();
 | 
			
		||||
              SERIAL_ERRORLNPGM(MSG_HOTEND_TOO_COLD);
 | 
			
		||||
              return;
 | 
			
		||||
            }
 | 
			
		||||
          #endif
 | 
			
		||||
 | 
			
		||||
          #if FAN_COUNT > 0
 | 
			
		||||
            singlenozzle_fan_speed[active_extruder] = fan_speed[0];
 | 
			
		||||
            fan_speed[0] = singlenozzle_fan_speed[tmp_extruder];
 | 
			
		||||
          #endif
 | 
			
		||||
 | 
			
		||||
          set_destination_from_current();
 | 
			
		||||
 | 
			
		||||
          current_position[Z_AXIS] += (
 | 
			
		||||
            #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
              singlenozzle_change_point.z
 | 
			
		||||
            #else
 | 
			
		||||
              SINGLENOZZLE_TOOLCHANGE_ZRAISE
 | 
			
		||||
            #endif
 | 
			
		||||
          );
 | 
			
		||||
 | 
			
		||||
          planner.buffer_line(current_position, planner.max_feedrate_mm_s[Z_AXIS], active_extruder);
 | 
			
		||||
 | 
			
		||||
          #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
            current_position[X_AXIS] = singlenozzle_change_point.x;
 | 
			
		||||
            current_position[Y_AXIS] = singlenozzle_change_point.y;
 | 
			
		||||
            planner.buffer_line(current_position, planner.max_feedrate_mm_s[Y_AXIS], active_extruder);
 | 
			
		||||
          #endif
 | 
			
		||||
 | 
			
		||||
          if (singlenozzle_swap_length) {
 | 
			
		||||
            #if ENABLED(ADVANCED_PAUSE_FEATURE)
 | 
			
		||||
              do_pause_e_move(-singlenozzle_swap_length, MMM_TO_MMS(singlenozzle_retract_speed));
 | 
			
		||||
            #else
 | 
			
		||||
              current_position[E_AXIS] -= singlenozzle_swap_length / planner.e_factor[active_extruder];
 | 
			
		||||
              planner.buffer_line(current_position, MMM_TO_MMS(singlenozzle_retract_speed), active_extruder);
 | 
			
		||||
            #endif
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          singlenozzle_temp[active_extruder] = thermalManager.target_temperature[0];
 | 
			
		||||
          if (singlenozzle_temp[tmp_extruder] && singlenozzle_temp[tmp_extruder] != singlenozzle_temp[active_extruder]) {
 | 
			
		||||
            thermalManager.setTargetHotend(singlenozzle_temp[tmp_extruder], 0);
 | 
			
		||||
            #if ENABLED(ULTRA_LCD)
 | 
			
		||||
              thermalManager.set_heating_message(0);
 | 
			
		||||
            #endif
 | 
			
		||||
            (void)thermalManager.wait_for_hotend(0, false);  // Wait for heating or cooling
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          active_extruder = tmp_extruder;
 | 
			
		||||
 | 
			
		||||
          if (singlenozzle_swap_length) {
 | 
			
		||||
            #if ENABLED(ADVANCED_PAUSE_FEATURE)
 | 
			
		||||
              do_pause_e_move(singlenozzle_swap_length, singlenozzle_prime_speed);
 | 
			
		||||
            #else
 | 
			
		||||
              current_position[E_AXIS] += singlenozzle_swap_length / planner.e_factor[tmp_extruder];
 | 
			
		||||
              planner.buffer_line(current_position, singlenozzle_prime_speed, tmp_extruder);
 | 
			
		||||
            #endif
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          #if ENABLED(SINGLENOZZLE_SWAP_PARK)
 | 
			
		||||
            current_position[X_AXIS] = destination[X_AXIS];
 | 
			
		||||
            current_position[Y_AXIS] = destination[Y_AXIS];
 | 
			
		||||
            planner.buffer_line(current_position, planner.max_feedrate_mm_s[Y_AXIS], active_extruder);
 | 
			
		||||
          #endif
 | 
			
		||||
 | 
			
		||||
          do_blocking_move_to(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS]);
 | 
			
		||||
 | 
			
		||||
        #else // !SINGLENOZZLE
 | 
			
		||||
 | 
			
		||||
          active_extruder = tmp_extruder;
 | 
			
		||||
 | 
			
		||||
        #endif // !SINGLENOZZLE
 | 
			
		||||
 | 
			
		||||
      #endif // EXTRUDERS > 1
 | 
			
		||||
 | 
			
		||||
    #endif // HOTENDS <= 1
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -50,6 +50,16 @@
 | 
			
		||||
 | 
			
		||||
#endif // PARKING_EXTRUDER
 | 
			
		||||
 | 
			
		||||
#if ENABLED(SINGLENOZZLE)
 | 
			
		||||
  extern float singlenozzle_swap_length;
 | 
			
		||||
  extern int16_t singlenozzle_prime_speed,
 | 
			
		||||
                 singlenozzle_retract_speed;
 | 
			
		||||
  extern uint16_t singlenozzle_temp[EXTRUDERS];
 | 
			
		||||
  #if FAN_COUNT > 0
 | 
			
		||||
    extern uint8_t singlenozzle_fan_speed[EXTRUDERS];
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Perform a tool-change, which may result in moving the
 | 
			
		||||
 * previous tool out of the way and the new tool into place.
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user