[2.0.x] SWITCHING_TOOLHEAD (#11623)
This commit is contained in:
@ -423,11 +423,10 @@
|
||||
#if DISABLED(SWITCHING_NOZZLE)
|
||||
#define HOTENDS E_STEPPERS
|
||||
#endif
|
||||
#define E_MANUAL EXTRUDERS
|
||||
#elif ENABLED(MIXING_EXTRUDER)
|
||||
#define E_STEPPERS MIXING_STEPPERS
|
||||
#define E_MANUAL 1
|
||||
#else
|
||||
#elif ENABLED(SWITCHING_TOOLHEAD)
|
||||
#define E_STEPPERS EXTRUDERS
|
||||
#define E_MANUAL EXTRUDERS
|
||||
#endif
|
||||
@ -454,6 +453,14 @@
|
||||
#define HOTENDS EXTRUDERS
|
||||
#endif
|
||||
|
||||
#ifndef E_STEPPERS
|
||||
#define E_STEPPERS EXTRUDERS
|
||||
#endif
|
||||
|
||||
#ifndef E_MANUAL
|
||||
#define E_MANUAL EXTRUDERS
|
||||
#endif
|
||||
|
||||
#define HOTEND_LOOP() for (int8_t e = 0; e < HOTENDS; e++)
|
||||
|
||||
#define DO_SWITCH_EXTRUDER (ENABLED(SWITCHING_EXTRUDER) && (DISABLED(SWITCHING_NOZZLE) || SWITCHING_EXTRUDER_SERVO_NR != SWITCHING_NOZZLE_SERVO_NR))
|
||||
|
@ -711,6 +711,37 @@ static_assert(X_MAX_LENGTH >= X_BED_SIZE && Y_MAX_LENGTH >= Y_BED_SIZE,
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Switching Toolhead requirements
|
||||
*/
|
||||
#if ENABLED(SWITCHING_TOOLHEAD)
|
||||
#if ENABLED(DUAL_X_CARRIAGE)
|
||||
#error "SWITCHING_TOOLHEAD and DUAL_X_CARRIAGE are incompatible."
|
||||
#elif ENABLED(SINGLENOZZLE)
|
||||
#error "SWITCHING_TOOLHEAD and SINGLENOZZLE are incompatible."
|
||||
#elif ENABLED(PARKING_EXTRUDER)
|
||||
#error "SWITCHING_TOOLHEAD and PARKING_EXTRUDER are incompatible."
|
||||
#elif !defined(SWITCHING_TOOLHEAD_SERVO_NR)
|
||||
#error "SWITCHING_TOOLHEAD requires SWITCHING_TOOLHEAD_SERVO_NR."
|
||||
#elif EXTRUDERS < 2
|
||||
#error "SWITCHING_TOOLHEAD requires at least 2 EXTRUDERS."
|
||||
#elif NUM_SERVOS < (SWITCHING_TOOLHEAD_SERVO_NR - 1)
|
||||
#if SWITCHING_TOOLHEAD_SERVO_NR == 0
|
||||
#error "A SWITCHING_TOOLHEAD_SERVO_NR of 0 requires NUM_SERVOS >= 1."
|
||||
#elif SWITCHING_TOOLHEAD_SERVO_NR == 1
|
||||
#error "A SWITCHING_TOOLHEAD_SERVO_NR of 1 requires NUM_SERVOS >= 2."
|
||||
#elif SWITCHING_TOOLHEAD_SERVO_NR == 2
|
||||
#error "A SWITCHING_TOOLHEAD_SERVO_NR of 2 requires NUM_SERVOS >= 3."
|
||||
#elif SWITCHING_TOOLHEAD_SERVO_NR == 3
|
||||
#error "A SWITCHING_TOOLHEAD_SERVO_NR of 3 requires NUM_SERVOS >= 4."
|
||||
#endif
|
||||
#elif !defined(SWITCHING_TOOLHEAD_SECURITY_RAISE)
|
||||
#error "SWITCHING_TOOLHEAD requires SWITCHING_TOOLHEAD_SECURITY_RAISE."
|
||||
#elif SWITCHING_TOOLHEAD_SECURITY_RAISE < 0
|
||||
#error "SWITCHING_TOOLHEAD _SECURITY_RAISE must be 0 or higher."
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Part-Cooling Fan Multiplexer requirements
|
||||
*/
|
||||
@ -732,8 +763,8 @@ static_assert(X_MAX_LENGTH >= X_BED_SIZE && Y_MAX_LENGTH >= Y_BED_SIZE,
|
||||
/**
|
||||
* Servo deactivation depends on servo endstops, switching nozzle, or switching extruder
|
||||
*/
|
||||
#if ENABLED(DEACTIVATE_SERVOS_AFTER_MOVE) && !HAS_Z_SERVO_PROBE && !defined(SWITCHING_NOZZLE_SERVO_NR) && !defined(SWITCHING_EXTRUDER_SERVO_NR)
|
||||
#error "Z_PROBE_SERVO_NR, switching nozzle, or switching extruder is required for DEACTIVATE_SERVOS_AFTER_MOVE."
|
||||
#if ENABLED(DEACTIVATE_SERVOS_AFTER_MOVE) && !HAS_Z_SERVO_PROBE && !defined(SWITCHING_NOZZLE_SERVO_NR) && !defined(SWITCHING_EXTRUDER_SERVO_NR) && !defined(SWITCHING_TOOLHEAD_SERVO_NR)
|
||||
#error "Z_PROBE_SERVO_NR, switching nozzle, switching toolhead or switching extruder is required for DEACTIVATE_SERVOS_AFTER_MOVE."
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user