Merge pull request #4013 from thinkyhead/rc_toolchange_no_move

Use "Tn S1" to change tools without moving
This commit is contained in:
Scott Lahteine 2016-06-14 20:13:01 -07:00 committed by GitHub
commit 52ac2a62ee

View file

@ -6613,6 +6613,7 @@ inline void gcode_M999() {
* T0-T3: Switch tool, usually switching extruders * T0-T3: Switch tool, usually switching extruders
* *
* F[mm/min] Set the movement feedrate * F[mm/min] Set the movement feedrate
* S1 Don't move the tool in XY after change
*/ */
inline void gcode_T(uint8_t tmp_extruder) { inline void gcode_T(uint8_t tmp_extruder) {
if (tmp_extruder >= EXTRUDERS) { if (tmp_extruder >= EXTRUDERS) {
@ -6639,8 +6640,9 @@ inline void gcode_T(uint8_t tmp_extruder) {
#if HOTENDS > 1 #if HOTENDS > 1
if (tmp_extruder != active_extruder) { if (tmp_extruder != active_extruder) {
bool no_move = code_seen('S') && code_value_bool();
// Save current position to return to after applying extruder offset // Save current position to return to after applying extruder offset
set_destination_to_current(); if (!no_move) set_destination_to_current();
#if ENABLED(DUAL_X_CARRIAGE) #if ENABLED(DUAL_X_CARRIAGE)
if (dual_x_carriage_mode == DXC_AUTO_PARK_MODE && IsRunning() && if (dual_x_carriage_mode == DXC_AUTO_PARK_MODE && IsRunning() &&
(delayed_move_time || current_position[X_AXIS] != x_home_pos(active_extruder))) { (delayed_move_time || current_position[X_AXIS] != x_home_pos(active_extruder))) {
@ -6744,7 +6746,7 @@ inline void gcode_T(uint8_t tmp_extruder) {
#endif #endif
// Move to the "old position" (move the extruder into place) // Move to the "old position" (move the extruder into place)
if (IsRunning()) prepare_move_to_destination(); if (!no_move && IsRunning()) prepare_move_to_destination();
} // (tmp_extruder != active_extruder) } // (tmp_extruder != active_extruder)