Extend M217 with configurable park/raise (#12076)

This commit is contained in:
Scott Lahteine 2018-10-13 23:08:20 -05:00 committed by GitHub
parent ea13a77dcb
commit 951b25163e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
87 changed files with 241 additions and 291 deletions

View file

@ -35,10 +35,6 @@
#if FAN_COUNT > 0
uint8_t singlenozzle_fan_speed[EXTRUDERS];
#endif
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
#include "../libs/point_t.h"
const point_t singlenozzle_change_point = SINGLENOZZLE_TOOLCHANGE_POSITION;
#endif
#endif
#if ENABLED(PARKING_EXTRUDER) && PARKING_EXTRUDER_SOLENOIDS_DELAY > 0
@ -659,8 +655,6 @@ void tool_change(const uint8_t tmp_extruder, const float fr_mm_s/*=0.0*/, bool n
fan_speed[0] = singlenozzle_fan_speed[tmp_extruder];
#endif
if (!no_move) set_destination_from_current();
if (sn_settings.swap_length) {
#if ENABLED(ADVANCED_PAUSE_FEATURE)
do_pause_e_move(-sn_settings.swap_length, MMM_TO_MMS(sn_settings.retract_speed));
@ -670,22 +664,26 @@ void tool_change(const uint8_t tmp_extruder, const float fr_mm_s/*=0.0*/, bool n
#endif
}
if (!no_move) {
current_position[Z_AXIS] += (
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
singlenozzle_change_point.z
#else
SINGLENOZZLE_TOOLCHANGE_ZRAISE
#endif
);
constexpr float snfr =
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
MMM_TO_MMS(SINGLENOZZLE_PARK_XY_FEEDRATE);
#else
0
#endif
;
planner.buffer_line(current_position, planner.settings.max_feedrate_mm_s[Z_AXIS], active_extruder);
float old_pos[XYZ];
if (!no_move) {
COPY(old_pos, current_position);
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
current_position[X_AXIS] = singlenozzle_change_point.x;
current_position[Y_AXIS] = singlenozzle_change_point.y;
planner.buffer_line(current_position, MMM_TO_MMS(SINGLENOZZLE_PARK_XY_FEEDRATE), active_extruder);
current_position[X_AXIS] = sn_settings.change_point.x;
current_position[Y_AXIS] = sn_settings.change_point.y;
#endif
current_position[Z_AXIS] += sn_settings.z_raise;
do_blocking_move_to(current_position, snfr);
}
singlenozzle_temp[active_extruder] = thermalManager.target_temperature[0];
@ -708,15 +706,7 @@ void tool_change(const uint8_t tmp_extruder, const float fr_mm_s/*=0.0*/, bool n
#endif
}
if (!no_move) {
#if ENABLED(SINGLENOZZLE_SWAP_PARK)
current_position[X_AXIS] = destination[X_AXIS];
current_position[Y_AXIS] = destination[Y_AXIS];
planner.buffer_line(current_position, MMM_TO_MMS(SINGLENOZZLE_PARK_XY_FEEDRATE), active_extruder);
#endif
do_blocking_move_to(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS]);
}
if (!no_move) do_blocking_move_to(old_pos, snfr);
#elif EXTRUDERS > 1