[2.0.x] Fix change filament for delta machines (#9295)
This commit is contained in:
parent
62ecc74e76
commit
3db35ba9be
@ -119,7 +119,7 @@ static bool ensure_safe_temperature(const AdvancedPauseMode mode=ADVANCED_PAUSE_
|
|||||||
static void do_pause_e_move(const float &length, const float &fr) {
|
static void do_pause_e_move(const float &length, const float &fr) {
|
||||||
set_destination_from_current();
|
set_destination_from_current();
|
||||||
destination[E_AXIS] += length / planner.e_factor[active_extruder];
|
destination[E_AXIS] += length / planner.e_factor[active_extruder];
|
||||||
buffer_line_to_destination(fr);
|
planner.buffer_line_kinematic(destination, fr, active_extruder);
|
||||||
stepper.synchronize();
|
stepper.synchronize();
|
||||||
set_current_from_destination();
|
set_current_from_destination();
|
||||||
}
|
}
|
||||||
@ -137,8 +137,8 @@ static void do_pause_e_move(const float &length, const float &fr) {
|
|||||||
* Returns 'true' if load was completed, 'false' for abort
|
* Returns 'true' if load was completed, 'false' for abort
|
||||||
*/
|
*/
|
||||||
bool load_filament(const float &load_length/*=0*/, const float &purge_length/*=0*/, const int8_t max_beep_count/*=0*/,
|
bool load_filament(const float &load_length/*=0*/, const float &purge_length/*=0*/, const int8_t max_beep_count/*=0*/,
|
||||||
const bool show_lcd/*=false*/, const bool pause_for_user/*=false*/,
|
const bool show_lcd/*=false*/, const bool pause_for_user/*=false*/,
|
||||||
const AdvancedPauseMode mode/*=ADVANCED_PAUSE_MODE_PAUSE_PRINT*/
|
const AdvancedPauseMode mode/*=ADVANCED_PAUSE_MODE_PAUSE_PRINT*/
|
||||||
) {
|
) {
|
||||||
#if DISABLED(ULTIPANEL)
|
#if DISABLED(ULTIPANEL)
|
||||||
UNUSED(show_lcd);
|
UNUSED(show_lcd);
|
||||||
@ -232,7 +232,7 @@ bool load_filament(const float &load_length/*=0*/, const float &purge_length/*=0
|
|||||||
* Returns 'true' if unload was completed, 'false' for abort
|
* Returns 'true' if unload was completed, 'false' for abort
|
||||||
*/
|
*/
|
||||||
bool unload_filament(const float &unload_length, const bool show_lcd/*=false*/,
|
bool unload_filament(const float &unload_length, const bool show_lcd/*=false*/,
|
||||||
const AdvancedPauseMode mode/*=ADVANCED_PAUSE_MODE_PAUSE_PRINT*/
|
const AdvancedPauseMode mode/*=ADVANCED_PAUSE_MODE_PAUSE_PRINT*/
|
||||||
) {
|
) {
|
||||||
if (!ensure_safe_temperature(mode)) {
|
if (!ensure_safe_temperature(mode)) {
|
||||||
#if ENABLED(ULTIPANEL)
|
#if ENABLED(ULTIPANEL)
|
||||||
@ -336,8 +336,11 @@ bool pause_print(const float &retract, const point_t &park_point, const float &u
|
|||||||
if (retract && thermalManager.hotEnoughToExtrude(active_extruder))
|
if (retract && thermalManager.hotEnoughToExtrude(active_extruder))
|
||||||
do_pause_e_move(retract, PAUSE_PARK_RETRACT_FEEDRATE);
|
do_pause_e_move(retract, PAUSE_PARK_RETRACT_FEEDRATE);
|
||||||
|
|
||||||
// Park the nozzle by moving up by z_lift and then moving to (x_pos, y_pos)
|
#if ENABLED(NO_MOTION_BEFORE_HOMING)
|
||||||
Nozzle::park(2, park_point);
|
if (!axis_unhomed_error())
|
||||||
|
#endif
|
||||||
|
// Park the nozzle by moving up by z_lift and then moving to (x_pos, y_pos)
|
||||||
|
Nozzle::park(2, park_point);
|
||||||
|
|
||||||
// Unload the filament
|
// Unload the filament
|
||||||
if (unload_length)
|
if (unload_length)
|
||||||
|
@ -41,7 +41,7 @@
|
|||||||
* L[distance] - Extrude distance for insertion, for the specified extruder
|
* L[distance] - Extrude distance for insertion, for the specified extruder
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
inline void GcodeSuite::M603() {
|
void GcodeSuite::M603() {
|
||||||
|
|
||||||
if (get_target_extruder_from_command()) return;
|
if (get_target_extruder_from_command()) return;
|
||||||
|
|
||||||
|
@ -50,6 +50,11 @@
|
|||||||
void GcodeSuite::M701() {
|
void GcodeSuite::M701() {
|
||||||
point_t park_point = NOZZLE_PARK_POINT;
|
point_t park_point = NOZZLE_PARK_POINT;
|
||||||
|
|
||||||
|
#if ENABLED(NO_MOTION_BEFORE_HOMING)
|
||||||
|
// Only raise Z if the machine is homed
|
||||||
|
if (axis_unhomed_error()) park_point.z = 0;
|
||||||
|
#endif
|
||||||
|
|
||||||
if (get_target_extruder_from_command()) return;
|
if (get_target_extruder_from_command()) return;
|
||||||
|
|
||||||
// Z axis lift
|
// Z axis lift
|
||||||
@ -107,6 +112,11 @@ void GcodeSuite::M701() {
|
|||||||
void GcodeSuite::M702() {
|
void GcodeSuite::M702() {
|
||||||
point_t park_point = NOZZLE_PARK_POINT;
|
point_t park_point = NOZZLE_PARK_POINT;
|
||||||
|
|
||||||
|
#if ENABLED(NO_MOTION_BEFORE_HOMING)
|
||||||
|
// Only raise Z if the machine is homed
|
||||||
|
if (axis_unhomed_error()) park_point.z = 0;
|
||||||
|
#endif
|
||||||
|
|
||||||
if (get_target_extruder_from_command()) return;
|
if (get_target_extruder_from_command()) return;
|
||||||
|
|
||||||
// Z axis lift
|
// Z axis lift
|
||||||
|
@ -633,17 +633,17 @@ void GcodeSuite::process_parsed_command() {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if ENABLED(ADVANCED_PAUSE_FEATURE)
|
#if ENABLED(ADVANCED_PAUSE_FEATURE)
|
||||||
case 600: // M600: Pause for filament change
|
case 600: M600(); break; // M600: Pause for Filament Change
|
||||||
M600();
|
case 603: M603(); break; // M603: Configure Filament Change
|
||||||
break;
|
|
||||||
#endif // ADVANCED_PAUSE_FEATURE
|
#endif // ADVANCED_PAUSE_FEATURE
|
||||||
|
|
||||||
#if ENABLED(DUAL_X_CARRIAGE) || ENABLED(DUAL_NOZZLE_DUPLICATION_MODE)
|
#if ENABLED(DUAL_X_CARRIAGE) || ENABLED(DUAL_NOZZLE_DUPLICATION_MODE)
|
||||||
case 605: M605(); break; // M605: Set Dual X Carriage movement mode
|
case 605: M605(); break; // M605: Set Dual X Carriage movement mode
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if ENABLED(MK2_MULTIPLEXER)
|
#if ENABLED(FILAMENT_LOAD_UNLOAD_GCODES)
|
||||||
case 702: M702(); break; // M702: Unload all extruders
|
case 701: M701(); break; // M701: Load Filament
|
||||||
|
case 702: M702(); break; // M702: Unload Filament
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if ENABLED(LIN_ADVANCE)
|
#if ENABLED(LIN_ADVANCE)
|
||||||
|
@ -1249,6 +1249,12 @@
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// Nozzle park
|
||||||
|
#if ENABLED(NOZZLE_PARK_FEATURE) && ENABLED(DELTA)
|
||||||
|
#undef NOZZLE_PARK_Z_FEEDRATE
|
||||||
|
#define NOZZLE_PARK_Z_FEEDRATE NOZZLE_PARK_XY_FEEDRATE
|
||||||
|
#endif
|
||||||
|
|
||||||
// Force SDCARD_SORT_ALPHA to be enabled for Graphical LCD on LPC1768
|
// Force SDCARD_SORT_ALPHA to be enabled for Graphical LCD on LPC1768
|
||||||
// because of a bug in the shared SPI implementation. (See #8122)
|
// because of a bug in the shared SPI implementation. (See #8122)
|
||||||
|
Loading…
Reference in New Issue
Block a user