From c4ec01d59ba987a8de660a1c2b400012ad6cc885 Mon Sep 17 00:00:00 2001
From: Scott Lahteine <github@thinkyhead.com>
Date: Mon, 19 Feb 2018 10:59:23 -0600
Subject: [PATCH] Conditionals for SWITCHING_EXTRUDER

In reference to #5367. SWITCHING_EXTRUDER was not fully implemented for EXTRUDERS > 2.
---
 Marlin/src/inc/Conditionals_LCD.h | 28 +++++++++++++++++++---------
 1 file changed, 19 insertions(+), 9 deletions(-)

diff --git a/Marlin/src/inc/Conditionals_LCD.h b/Marlin/src/inc/Conditionals_LCD.h
index 0524d202a1..5cec44b004 100644
--- a/Marlin/src/inc/Conditionals_LCD.h
+++ b/Marlin/src/inc/Conditionals_LCD.h
@@ -421,18 +421,28 @@
   #define HOTEND_INDEX  e
 #endif
 
-#if ENABLED(SWITCHING_EXTRUDER) || ENABLED(MIXING_EXTRUDER)   // Unified E axis
-  #if ENABLED(MIXING_EXTRUDER)
-    #define E_STEPPERS  MIXING_STEPPERS
+#if ENABLED(SWITCHING_EXTRUDER)                               // One stepper for every two EXTRUDERS
+  #if EXTRUDERS > 4
+    #define E_STEPPERS    3
+    #define E_MANUAL      3
+    #define TOOL_E_INDEX  current_block->active_extruder
+  #elif EXTRUDERS > 2
+    #define E_STEPPERS    2
+    #define E_MANUAL      2
+    #define TOOL_E_INDEX  current_block->active_extruder
   #else
-    #define E_STEPPERS  1                                     // One E stepper
+    #define E_STEPPERS    1
+    #define TOOL_E_INDEX  0
   #endif
-  #define E_MANUAL      1
-  #define TOOL_E_INDEX  0
+  #define E_MANUAL        E_STEPPERS
+#elif ENABLED(MIXING_EXTRUDER)
+  #define E_STEPPERS      MIXING_STEPPERS
+  #define E_MANUAL        1
+  #define TOOL_E_INDEX    0
 #else
-  #define E_STEPPERS    EXTRUDERS
-  #define E_MANUAL      EXTRUDERS
-  #define TOOL_E_INDEX  current_block->active_extruder
+  #define E_STEPPERS      EXTRUDERS
+  #define E_MANUAL        EXTRUDERS
+  #define TOOL_E_INDEX    current_block->active_extruder
 #endif
 
 /**
-- 
GitLab