|
@ -1303,11 +1303,7 @@ bool get_target_extruder_from_command(int code) { |
|
|
|
|
|
|
|
|
#if ENABLED(DUAL_X_CARRIAGE) |
|
|
#if ENABLED(DUAL_X_CARRIAGE) |
|
|
|
|
|
|
|
|
#define DXC_FULL_CONTROL_MODE 0 |
|
|
static DualXMode dual_x_carriage_mode = DEFAULT_DUAL_X_CARRIAGE_MODE; |
|
|
#define DXC_AUTO_PARK_MODE 1 |
|
|
|
|
|
#define DXC_DUPLICATION_MODE 2 |
|
|
|
|
|
|
|
|
|
|
|
static int dual_x_carriage_mode = DEFAULT_DUAL_X_CARRIAGE_MODE; |
|
|
|
|
|
|
|
|
|
|
|
static float x_home_pos(int extruder) { |
|
|
static float x_home_pos(int extruder) { |
|
|
if (extruder == 0) |
|
|
if (extruder == 0) |
|
@ -6950,7 +6946,7 @@ inline void gcode_M503() { |
|
|
*/ |
|
|
*/ |
|
|
inline void gcode_M605() { |
|
|
inline void gcode_M605() { |
|
|
stepper.synchronize(); |
|
|
stepper.synchronize(); |
|
|
if (code_seen('S')) dual_x_carriage_mode = code_value_byte(); |
|
|
if (code_seen('S')) dual_x_carriage_mode = (DualXMode)code_value_byte(); |
|
|
switch (dual_x_carriage_mode) { |
|
|
switch (dual_x_carriage_mode) { |
|
|
case DXC_DUPLICATION_MODE: |
|
|
case DXC_DUPLICATION_MODE: |
|
|
if (code_seen('X')) duplicate_extruder_x_offset = max(code_value_axis_units(X_AXIS), X2_MIN_POS - x_home_pos(0)); |
|
|
if (code_seen('X')) duplicate_extruder_x_offset = max(code_value_axis_units(X_AXIS), X2_MIN_POS - x_home_pos(0)); |
|
|