[2.0.x] Followup to IDEX changes (#11707)

This commit is contained in:
Scott Lahteine
2018-09-03 23:15:31 -05:00
committed by GitHub
parent d62f4df0b7
commit d1ceaf5550
13 changed files with 250 additions and 273 deletions

View File

@ -835,8 +835,8 @@ float soft_endstop_min[XYZ] = { X_MIN_BED, Y_MIN_BED, Z_MIN_POS },
#endif // !UBL_SEGMENTED
#if ENABLED(DUAL_X_CARRIAGE) || ENABLED(DUAL_NOZZLE_DUPLICATION_MODE)
bool extruder_duplication_enabled = false; // Used in Dual X mode 2 & 3
bool symmetric_duplication_mode = false; // Used in Dual X mode 2 & 3
bool extruder_duplication_enabled = false, // Used in Dual X mode 2 & 3
symmetric_duplication_mode = false; // Used in Dual X mode 2 & 3
#endif
#if ENABLED(DUAL_X_CARRIAGE)
@ -894,11 +894,11 @@ float soft_endstop_min[XYZ] = { X_MIN_BED, Y_MIN_BED, Z_MIN_POS },
#define RAISED_Y raised_parked_position[Y_AXIS]
#define RAISED_Z raised_parked_position[Z_AXIS]
SERIAL_ECHOLNPGM("dual_x_carriage_unpark()\n");
//SERIAL_ECHOLNPGM("dual_x_carriage_unpark()\n");
if (planner.buffer_line(RAISED_X, RAISED_Y, RAISED_Z, CUR_E, planner.max_feedrate_mm_s[Z_AXIS], active_extruder))
if (planner.buffer_line( CUR_X, CUR_Y, RAISED_Z, CUR_E, PLANNER_XY_FEEDRATE(), active_extruder))
planner.buffer_line( CUR_X, CUR_Y, CUR_Z, CUR_E, planner.max_feedrate_mm_s[Z_AXIS], active_extruder);
if ( planner.buffer_line(RAISED_X, RAISED_Y, RAISED_Z, CUR_E, planner.max_feedrate_mm_s[Z_AXIS], active_extruder))
if (planner.buffer_line( CUR_X, CUR_Y, RAISED_Z, CUR_E, PLANNER_XY_FEEDRATE(), active_extruder))
planner.buffer_line( CUR_X, CUR_Y, CUR_Z, CUR_E, planner.max_feedrate_mm_s[Z_AXIS], active_extruder);
delayed_move_time = 0;
active_extruder_parked = false;
#if ENABLED(DEBUG_LEVELING_FEATURE)

View File

@ -306,8 +306,8 @@ void homeaxis(const AxisEnum axis);
* Dual X Carriage / Dual Nozzle
*/
#if ENABLED(DUAL_X_CARRIAGE) || ENABLED(DUAL_NOZZLE_DUPLICATION_MODE)
extern bool extruder_duplication_enabled; // Used in Dual X mode 2
extern bool symmetric_duplication_mode; // Used in Dual X mode 2
extern bool extruder_duplication_enabled, // Used in Dual X mode 2
symmetric_duplication_mode; // Used in Dual X mode 2
#endif
/**
@ -318,7 +318,7 @@ void homeaxis(const AxisEnum axis);
enum DualXMode : char {
DXC_FULL_CONTROL_MODE, // DUAL_X_CARRIAGE only
DXC_AUTO_PARK_MODE, // DUAL_X_CARRIAGE only
DXC_DUPLICATION_MODE,
DXC_DUPLICATION_MODE
};
extern DualXMode dual_x_carriage_mode;

View File

@ -231,10 +231,7 @@ int8_t Stepper::count_direction[NUM_AXIS] = { 0, 0, 0, 0 };
#define X_APPLY_DIR(v,ALWAYS) \
if (extruder_duplication_enabled || ALWAYS) { \
X_DIR_WRITE(v); \
if (symmetric_duplication_mode) \
X2_DIR_WRITE(!v); \
else \
X2_DIR_WRITE(v); \
X2_DIR_WRITE(bool(v)); \
} \
else { \
if (movement_extruder()) X2_DIR_WRITE(v); else X_DIR_WRITE(v); \

View File

@ -332,9 +332,10 @@ inline void invalid_extruder_error(const uint8_t e) {
void tool_change(const uint8_t tmp_extruder, const float fr_mm_s/*=0.0*/, bool no_move/*=false*/) {
planner.synchronize();
#if ENABLED(DUAL_X_CARRIAGE) // Only T0 allowed if the Printer is in DXC_DUPLICATION_MODE
#if ENABLED(DUAL_X_CARRIAGE)
// Only T0 allowed in DXC_DUPLICATION_MODE
if (tmp_extruder != 0 && dual_x_carriage_mode == DXC_DUPLICATION_MODE)
return invalid_extruder_error(tmp_extruder);
return invalid_extruder_error(tmp_extruder);
#endif
#if HAS_LEVELING