Single X Duplication Extension (#13373)

* Multi-nozzle selective duplication
* Use a bit-mask, reduce stepper_indirection.h size
* Tweak the multi-nozzle duplication description
* Use 'S' as a bool in M605
* Add HAS_DUPLICATION_MODE conditional
* Remove '_MODE' from the option name
* M605 in the style of Stacker M280
* Also include direct mask style (P)
This commit is contained in:
InsanityAutomation
2019-03-13 01:42:50 -04:00
committed by Scott Lahteine
parent ad91476d26
commit 050eac03af
86 changed files with 289 additions and 220 deletions

View File

@ -313,11 +313,15 @@ void homeaxis(const AxisEnum axis);
#endif
/**
* Dual X Carriage / Dual Nozzle
* Duplication mode
*/
#if ENABLED(DUAL_X_CARRIAGE) || ENABLED(DUAL_NOZZLE_DUPLICATION_MODE)
extern bool extruder_duplication_enabled, // Used in Dual X mode 2
scaled_duplication_mode; // Used in Dual X mode 3
#if HAS_DUPLICATION_MODE
extern bool extruder_duplication_enabled; // Used in Dual X mode 2
//scaled_duplication_mode; // Used in Dual X mode 3
#endif
#if ENABLED(MULTI_NOZZLE_DUPLICATION) && HOTENDS > 2
uint8_t duplication_e_mask;
#endif
/**
@ -346,7 +350,7 @@ void homeaxis(const AxisEnum axis);
FORCE_INLINE int x_home_dir(const uint8_t extruder) { return extruder ? X2_HOME_DIR : X_HOME_DIR; }
#elif ENABLED(DUAL_NOZZLE_DUPLICATION_MODE)
#elif ENABLED(MULTI_NOZZLE_DUPLICATION)
enum DualXMode : char {
DXC_DUPLICATION_MODE = 2