Fix tool-change for MIXING_EXTRUDER with < 2 virtual tools (#12417)
Fix #12416 Better handling of `ENABLED(MIXING_EXTRUDER) && !MIXING_VIRTUAL_TOOLS > 1` - to not fall through to the general case. Fix compiler warnings for `#elif EXTRUDERS < 2`.
This commit is contained in:
parent
d631267548
commit
9ad3aed0ef
@ -498,25 +498,28 @@ inline void invalid_extruder_error(const uint8_t e) {
|
|||||||
* previous tool out of the way and the new tool into place.
|
* previous tool out of the way and the new tool into place.
|
||||||
*/
|
*/
|
||||||
void tool_change(const uint8_t tmp_extruder, const float fr_mm_s/*=0.0*/, bool no_move/*=false*/) {
|
void tool_change(const uint8_t tmp_extruder, const float fr_mm_s/*=0.0*/, bool no_move/*=false*/) {
|
||||||
#if ENABLED(MIXING_EXTRUDER) && MIXING_VIRTUAL_TOOLS > 1
|
#if ENABLED(MIXING_EXTRUDER)
|
||||||
|
|
||||||
if (tmp_extruder >= MIXING_VIRTUAL_TOOLS)
|
|
||||||
return invalid_extruder_error(tmp_extruder);
|
|
||||||
// T0-Tnnn: Switch virtual tool by changing the index to the mix
|
|
||||||
mixer.T(uint_fast8_t(tmp_extruder));
|
|
||||||
UNUSED(fr_mm_s);
|
UNUSED(fr_mm_s);
|
||||||
UNUSED(no_move);
|
UNUSED(no_move);
|
||||||
|
if (tmp_extruder >= MIXING_VIRTUAL_TOOLS)
|
||||||
|
return invalid_extruder_error(tmp_extruder);
|
||||||
|
|
||||||
|
#if MIXING_VIRTUAL_TOOLS > 1
|
||||||
|
// T0-Tnnn: Switch virtual tool by changing the index to the mix
|
||||||
|
mixer.T(uint_fast8_t(tmp_extruder));
|
||||||
|
#endif
|
||||||
|
|
||||||
#elif EXTRUDERS < 2
|
#elif EXTRUDERS < 2
|
||||||
|
|
||||||
|
UNUSED(fr_mm_s);
|
||||||
|
UNUSED(no_move);
|
||||||
if (tmp_extruder) invalid_extruder_error(tmp_extruder);
|
if (tmp_extruder) invalid_extruder_error(tmp_extruder);
|
||||||
return;
|
return;
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
#if DISABLED(MIXING_EXTRUDER)
|
|
||||||
planner.synchronize();
|
planner.synchronize();
|
||||||
#endif
|
|
||||||
|
|
||||||
#if ENABLED(DUAL_X_CARRIAGE) // Only T0 allowed if the Printer is in DXC_DUPLICATION_MODE or DXC_SCALED_DUPLICATION_MODE
|
#if ENABLED(DUAL_X_CARRIAGE) // Only T0 allowed if the Printer is in DXC_DUPLICATION_MODE or DXC_SCALED_DUPLICATION_MODE
|
||||||
if (tmp_extruder != 0 && dxc_is_duplicating())
|
if (tmp_extruder != 0 && dxc_is_duplicating())
|
||||||
|
Loading…
Reference in New Issue
Block a user