diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index d1019b34b3..944151e901 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -322,16 +322,16 @@ static uint8_t target_extruder; // Extruder offsets #if EXTRUDERS > 1 #ifndef EXTRUDER_OFFSET_X - #define EXTRUDER_OFFSET_X { 0 } + #define EXTRUDER_OFFSET_X { 0 } // X offsets for each extruder #endif #ifndef EXTRUDER_OFFSET_Y - #define EXTRUDER_OFFSET_Y { 0 } + #define EXTRUDER_OFFSET_Y { 0 } // Y offsets for each extruder #endif float extruder_offset[][EXTRUDERS] = { EXTRUDER_OFFSET_X, EXTRUDER_OFFSET_Y #if ENABLED(DUAL_X_CARRIAGE) - , { 0 } // supports offsets in XYZ plane + , { 0 } // Z offsets for each extruder #endif }; #endif @@ -5150,7 +5150,12 @@ inline void gcode_M206() { #if EXTRUDERS > 1 /** - * M218 - set hotend offset (in mm), T X Y + * M218 - set hotend offset (in mm) + * + * T + * X + * Y + * Z - Available with DUAL_X_CARRIAGE */ inline void gcode_M218() { if (setTargetedHotend(218)) return; @@ -6184,10 +6189,10 @@ inline void gcode_T(uint8_t tmp_extruder) { // Offset extruder, make sure to apply the bed level rotation matrix vector_3 tmp_offset_vec = vector_3(extruder_offset[X_AXIS][tmp_extruder], extruder_offset[Y_AXIS][tmp_extruder], - extruder_offset[Z_AXIS][tmp_extruder]), + 0), act_offset_vec = vector_3(extruder_offset[X_AXIS][active_extruder], extruder_offset[Y_AXIS][active_extruder], - extruder_offset[Z_AXIS][active_extruder]), + 0), offset_vec = tmp_offset_vec - act_offset_vec; #if ENABLED(DEBUG_LEVELING_FEATURE)