Extend M217 with configurable park/raise (#12076)

2.0.x
Scott Lahteine 6 years ago committed by GitHub
parent ea13a77dcb
commit 951b25163e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -161,11 +161,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -161,11 +161,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -161,11 +161,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -161,11 +161,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -161,11 +161,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -161,11 +161,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -161,11 +161,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -162,11 +162,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -161,11 +161,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -161,11 +161,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -161,11 +161,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -161,11 +161,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -169,11 +169,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -161,11 +161,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -162,11 +162,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -161,11 +161,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -165,11 +165,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -170,11 +170,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -161,11 +161,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -161,11 +161,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -161,11 +161,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -161,11 +161,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -161,11 +161,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -161,11 +161,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -161,11 +161,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -161,11 +161,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -202,11 +202,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -164,11 +164,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -165,11 +165,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -161,11 +161,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -161,11 +161,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -161,11 +161,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -161,11 +161,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -161,11 +161,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -161,11 +161,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -161,11 +161,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -161,11 +161,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -166,11 +166,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -181,11 +181,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -166,11 +166,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -161,11 +161,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -161,11 +161,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -161,11 +161,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -161,11 +161,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -161,11 +161,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -161,11 +161,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -164,11 +164,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -192,11 +192,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -161,11 +161,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -161,11 +161,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -161,11 +161,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -161,11 +161,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -183,11 +183,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -161,11 +161,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -161,11 +161,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -161,11 +161,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -161,11 +161,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -161,11 +161,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -181,11 +181,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -161,11 +161,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -161,11 +161,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -161,11 +161,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -161,11 +161,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -174,11 +174,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -161,11 +161,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -161,11 +161,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -161,11 +161,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -166,11 +166,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -161,11 +161,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -161,11 +161,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -165,11 +165,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -161,11 +161,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -166,11 +166,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -161,11 +161,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -161,11 +161,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -161,11 +161,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -161,11 +161,10 @@
#define SINGLENOZZLE_SWAP_RETRACT_SPEED 3600 // (mm/m)
#define SINGLENOZZLE_SWAP_PRIME_SPEED 3600 // (mm/m)
//#define SINGLENOZZLE_SWAP_PARK
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2 // (mm)
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#define SINGLENOZZLE_TOOLCHANGE_POSITION { (X_MIN_POS + 10), (Y_MIN_POS + 10), 5 }
#define SINGLENOZZLE_TOOLCHANGE_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define SINGLENOZZLE_PARK_XY_FEEDRATE 6000 // (mm/m)
#else
#define SINGLENOZZLE_TOOLCHANGE_ZRAISE 2.0
#endif
#endif

@ -36,25 +36,41 @@ void M217_report(const bool eeprom=false) {
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", sn_settings.swap_length);
SERIAL_ECHOPAIR_P(port, " P", sn_settings.prime_speed);
SERIAL_ECHOLNPAIR_P(port, " R", sn_settings.retract_speed);
SERIAL_ECHOPAIR_P(port, " S", LINEAR_UNIT(sn_settings.swap_length));
SERIAL_ECHOPAIR_P(port, " P", LINEAR_UNIT(sn_settings.prime_speed));
SERIAL_ECHOPAIR_P(port, " R", LINEAR_UNIT(sn_settings.retract_speed));
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
SERIAL_ECHOPAIR_P(port, " X", LINEAR_UNIT(sn_settings.change_point.x));
SERIAL_ECHOPAIR_P(port, " Y", LINEAR_UNIT(sn_settings.change_point.y));
#endif
SERIAL_ECHOPAIR_P(port, " Z", LINEAR_UNIT(sn_settings.z_raise));
SERIAL_EOL();
}
/**
* M217 - Set SINGLENOZZLE toolchange parameters
*
* S[mm] Swap length
* P[mm/m] Prime speed
* R[mm/m] Retract speed
* S[linear] Swap length
* P[linear/m] Prime speed
* R[linear/m] Retract speed
* X[linear] Park X (Requires SINGLENOZZLE_SWAP_PARK)
* Y[linear] Park Y (Requires SINGLENOZZLE_SWAP_PARK)
* Z[linear] Z Raise
*/
void GcodeSuite::M217() {
bool report = true;
if (parser.seenval('S')) { report = false; const float v = parser.value_float(); sn_settings.swap_length = constrain(v, 0, 500); }
if (parser.seenval('P')) { report = false; const int16_t v = parser.value_int(); sn_settings.prime_speed = constrain(v, 10, 5400); }
if (parser.seenval('R')) { report = false; const int16_t v = parser.value_int(); sn_settings.retract_speed = constrain(v, 10, 5400); }
if (parser.seenval('S')) { report = false; const float v = parser.value_linear_units(); sn_settings.swap_length = constrain(v, 0, 500); }
if (parser.seenval('P')) { report = false; const int16_t v = parser.value_linear_units(); sn_settings.prime_speed = constrain(v, 10, 5400); }
if (parser.seenval('R')) { report = false; const int16_t v = parser.value_linear_units(); sn_settings.retract_speed = constrain(v, 10, 5400); }
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
if (parser.seenval('X')) { report = false; sn_settings.change_point.x = parser.value_linear_units(); }
if (parser.seenval('Y')) { report = false; sn_settings.change_point.y = parser.value_linear_units(); }
#endif
if (parser.seenval('Z')) { report = false; sn_settings.z_raise = parser.value_linear_units(); }
if (report) M217_report();

@ -36,7 +36,7 @@ void GcodeSuite::M92() {
LOOP_XYZE(i) {
if (parser.seen(axis_codes[i])) {
if (i == E_AXIS) {
const float value = parser.value_per_axis_unit((AxisEnum)(E_AXIS + TARGET_EXTRUDER));
const float value = parser.value_per_axis_units((AxisEnum)(E_AXIS + TARGET_EXTRUDER));
if (value < 20) {
float factor = planner.settings.axis_steps_per_mm[E_AXIS + TARGET_EXTRUDER] / value; // increase e constants if M92 E14 is given for netfab.
#if HAS_CLASSIC_JERK && (DISABLED(JUNCTION_DEVIATION) || DISABLED(LIN_ADVANCE))
@ -48,7 +48,7 @@ void GcodeSuite::M92() {
planner.settings.axis_steps_per_mm[E_AXIS + TARGET_EXTRUDER] = value;
}
else {
planner.settings.axis_steps_per_mm[i] = parser.value_per_axis_unit((AxisEnum)i);
planner.settings.axis_steps_per_mm[i] = parser.value_per_axis_units((AxisEnum)i);
}
}
}

@ -224,6 +224,9 @@ public:
#if ENABLED(INCH_MODE_SUPPORT)
static inline float mm_to_linear_unit(const float mm) { return mm / linear_unit_factor; }
static inline float mm_to_volumetric_unit(const float mm) { return mm / (volumetric_enabled ? volumetric_unit_factor : linear_unit_factor); }
// Init linear units by constructor
GCodeParser() { set_input_linear_units(LINEARUNIT_MM); }
@ -244,18 +247,28 @@ public:
return (axis >= E_AXIS && volumetric_enabled ? volumetric_unit_factor : linear_unit_factor);
}
static inline float value_linear_units() { return value_float() * linear_unit_factor; }
static inline float value_axis_units(const AxisEnum axis) { return value_float() * axis_unit_factor(axis); }
static inline float value_per_axis_unit(const AxisEnum axis) { return value_float() / axis_unit_factor(axis); }
FORCE_INLINE static float linear_value_to_mm(const float v) { return v * linear_unit_factor; }
FORCE_INLINE static float axis_value_to_mm(const AxisEnum axis, const float v) { return v * axis_unit_factor(axis); }
FORCE_INLINE static float per_axis_value(const AxisEnum axis, const float v) { return v / axis_unit_factor(axis); }
#else
FORCE_INLINE static float value_linear_units() { return value_float(); }
FORCE_INLINE static float value_axis_units(const AxisEnum a) { UNUSED(a); return value_float(); }
FORCE_INLINE static float value_per_axis_unit(const AxisEnum a) { UNUSED(a); return value_float(); }
FORCE_INLINE static float mm_to_linear_unit(const float mm) { return mm; }
FORCE_INLINE static float mm_to_volumetric_unit(const float mm) { return mm; }
FORCE_INLINE static float linear_value_to_mm(const float v) { return v; }
FORCE_INLINE static float axis_value_to_mm(const AxisEnum axis, const float v) { UNUSED(axis); return v; }
FORCE_INLINE static float per_axis_value(const AxisEnum axis, const float v) { UNUSED(axis); return v; }
#endif
#define LINEAR_UNIT(V) parser.mm_to_linear_unit(V)
#define VOLUMETRIC_UNIT(V) parser.mm_to_volumetric_unit(V)
static inline float value_linear_units() { return linear_value_to_mm(value_float()); }
static inline float value_axis_units(const AxisEnum axis) { return axis_value_to_mm(axis, value_float()); }
static inline float value_per_axis_units(const AxisEnum axis) { return per_axis_value(axis, value_float()); }
#if ENABLED(TEMPERATURE_UNITS_SUPPORT)
static inline void set_input_temp_units(TempUnit units) { input_temp_units = units; }
@ -306,11 +319,15 @@ public:
}
}
#define TEMP_UNIT(N) parser.to_temp_units(N)
#else // !TEMPERATURE_UNITS_SUPPORT
FORCE_INLINE static float value_celsius() { return value_float(); }
FORCE_INLINE static float value_celsius_diff() { return value_float(); }
#define TEMP_UNIT(N) (N)
#endif // !TEMPERATURE_UNITS_SUPPORT
FORCE_INLINE static float value_feedrate() { return value_linear_units(); }

@ -611,8 +611,8 @@ static_assert(X_MAX_LENGTH >= X_BED_SIZE && Y_MAX_LENGTH >= Y_BED_SIZE,
#error "SINGLENOZZLE requires SINGLENOZZLE_SWAP_PRIME_SPEED. Please update your Configuration."
#endif
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#ifndef SINGLENOZZLE_TOOLCHANGE_POSITION
#error "SINGLENOZZLE_SWAP_PARK requires SINGLENOZZLE_TOOLCHANGE_POSITION. Please update your Configuration."
#ifndef SINGLENOZZLE_TOOLCHANGE_XY
#error "SINGLENOZZLE_SWAP_PARK requires SINGLENOZZLE_TOOLCHANGE_XY. Please update your Configuration."
#elif !defined(SINGLENOZZLE_PARK_XY_FEEDRATE)
#error "SINGLENOZZLE_SWAP_PARK requires SINGLENOZZLE_PARK_XY_FEEDRATE. Please update your Configuration."
#endif

@ -19,9 +19,9 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
#pragma once
#ifndef __POINT_T__
#define __POINT_T__
#include <math.h>
/**
* @brief Cartesian Point
@ -53,5 +53,3 @@ struct point_t {
point_t(const float x, const float y) : point_t(x, y, NAN) {}
};
#endif // __POINT_T__

@ -1836,6 +1836,10 @@ void MarlinSettings::reset(PORTARG_SOLO) {
sn_settings.swap_length = SINGLENOZZLE_SWAP_LENGTH;
sn_settings.prime_speed = SINGLENOZZLE_SWAP_PRIME_SPEED;
sn_settings.retract_speed = SINGLENOZZLE_SWAP_RETRACT_SPEED;
sn_settings.z_raise = SINGLENOZZLE_TOOLCHANGE_ZRAISE;
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
sn_settings.change_point = SINGLENOZZLE_TOOLCHANGE_XY;
#endif
#endif
//
@ -2096,15 +2100,11 @@ void MarlinSettings::reset(PORTARG_SOLO) {
*/
CONFIG_ECHO_START;
#if ENABLED(INCH_MODE_SUPPORT)
#define LINEAR_UNIT(N) (float(N) / parser.linear_unit_factor)
#define VOLUMETRIC_UNIT(N) (float(N) / (parser.volumetric_enabled ? parser.volumetric_unit_factor : parser.linear_unit_factor))
SERIAL_ECHOPGM_P(port, " G2");
SERIAL_CHAR_P(port, parser.linear_unit_factor == 1.0 ? '1' : '0');
SERIAL_ECHOPGM_P(port, " ;");
SAY_UNITS_P(port, false);
#else
#define LINEAR_UNIT(N) (N)
#define VOLUMETRIC_UNIT(N) (N)
SERIAL_ECHOPGM_P(port, " G21 ; Units in mm");
SAY_UNITS_P(port, false);
#endif
@ -2116,13 +2116,11 @@ void MarlinSettings::reset(PORTARG_SOLO) {
CONFIG_ECHO_START;
#if ENABLED(TEMPERATURE_UNITS_SUPPORT)
#define TEMP_UNIT(N) parser.to_temp_units(N)
SERIAL_ECHOPGM_P(port, " M149 ");
SERIAL_CHAR_P(port, parser.temp_units_code());
SERIAL_ECHOPGM_P(port, " ; Units in ");
serialprintPGM_P(port, parser.temp_units_name());
#else
#define TEMP_UNIT(N) (N)
SERIAL_ECHOLNPGM_P(port, " M149 C ; Units in Celsius");
#endif

@ -155,6 +155,14 @@ void do_blocking_move_to_x(const float &rx, const float &fr_mm_s=0);
void do_blocking_move_to_z(const float &rz, const float &fr_mm_s=0);
void do_blocking_move_to_xy(const float &rx, const float &ry, const float &fr_mm_s=0);
FORCE_INLINE void do_blocking_move_to(const float (&raw)[XYZ], const float &fr_mm_s) {
do_blocking_move_to(raw[X_AXIS], raw[Y_AXIS], raw[Z_AXIS], fr_mm_s);
}
FORCE_INLINE void do_blocking_move_to(const float (&raw)[XYZE], const float &fr_mm_s) {
do_blocking_move_to(raw[X_AXIS], raw[Y_AXIS], raw[Z_AXIS], fr_mm_s);
}
void setup_for_endstop_or_probe_move();
void clean_up_after_endstop_or_probe_move();

@ -94,10 +94,6 @@ float zprobe_zoffset; // Initialized by settings.load()
#elif ENABLED(Z_PROBE_ALLEN_KEY)
FORCE_INLINE void do_blocking_move_to(const float (&raw)[XYZ], const float &fr_mm_s) {
do_blocking_move_to(raw[X_AXIS], raw[Y_AXIS], raw[Z_AXIS], fr_mm_s);
}
void run_deploy_moves_script() {
#if defined(Z_PROBE_ALLEN_KEY_DEPLOY_1_X) || defined(Z_PROBE_ALLEN_KEY_DEPLOY_1_Y) || defined(Z_PROBE_ALLEN_KEY_DEPLOY_1_Z)
#ifndef Z_PROBE_ALLEN_KEY_DEPLOY_1_X

@ -35,10 +35,6 @@
#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
@ -659,8 +655,6 @@ void tool_change(const uint8_t tmp_extruder, const float fr_mm_s/*=0.0*/, bool n
fan_speed[0] = singlenozzle_fan_speed[tmp_extruder];
#endif
if (!no_move) set_destination_from_current();
if (sn_settings.swap_length) {
#if ENABLED(ADVANCED_PAUSE_FEATURE)
do_pause_e_move(-sn_settings.swap_length, MMM_TO_MMS(sn_settings.retract_speed));
@ -670,22 +664,26 @@ void tool_change(const uint8_t tmp_extruder, const float fr_mm_s/*=0.0*/, bool n
#endif
}
if (!no_move) {
current_position[Z_AXIS] += (
constexpr float snfr =
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
singlenozzle_change_point.z
MMM_TO_MMS(SINGLENOZZLE_PARK_XY_FEEDRATE);
#else
SINGLENOZZLE_TOOLCHANGE_ZRAISE
0
#endif
);
;
planner.buffer_line(current_position, planner.settings.max_feedrate_mm_s[Z_AXIS], active_extruder);
float old_pos[XYZ];
if (!no_move) {
COPY(old_pos, current_position);
#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, MMM_TO_MMS(SINGLENOZZLE_PARK_XY_FEEDRATE), active_extruder);
current_position[X_AXIS] = sn_settings.change_point.x;
current_position[Y_AXIS] = sn_settings.change_point.y;
#endif
current_position[Z_AXIS] += sn_settings.z_raise;
do_blocking_move_to(current_position, snfr);
}
singlenozzle_temp[active_extruder] = thermalManager.target_temperature[0];
@ -708,15 +706,7 @@ void tool_change(const uint8_t tmp_extruder, const float fr_mm_s/*=0.0*/, bool n
#endif
}
if (!no_move) {
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
current_position[X_AXIS] = destination[X_AXIS];
current_position[Y_AXIS] = destination[Y_AXIS];
planner.buffer_line(current_position, MMM_TO_MMS(SINGLENOZZLE_PARK_XY_FEEDRATE), active_extruder);
#endif
do_blocking_move_to(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS]);
}
if (!no_move) do_blocking_move_to(old_pos, snfr);
#elif EXTRUDERS > 1

@ -52,6 +52,10 @@
typedef struct {
float swap_length;
int16_t prime_speed, retract_speed;
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
struct { float x, y; } change_point;
#endif
float z_raise;
} singlenozzle_settings_t;
extern singlenozzle_settings_t sn_settings;
extern uint16_t singlenozzle_temp[EXTRUDERS];

Loading…
Cancel
Save