From 1fd9a7d476c945fc2088a978ddd37fd3cd2f5b30 Mon Sep 17 00:00:00 2001 From: Robert Quattlebaum Date: Wed, 9 Jul 2014 09:24:26 -0700 Subject: [PATCH] Fix for FWRETRACT on DELTA printers. Fixes #817 --- Marlin/Marlin_main.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 0367eb46c..df935c5b8 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -1132,7 +1132,12 @@ void refresh_cmd_timeout(void) retracted=true; prepare_move(); current_position[Z_AXIS]-=retract_zlift; +#ifdef DELTA + calculate_delta(current_position); // change cartesian kinematic to delta kinematic; + plan_set_position(delta[X_AXIS], delta[Y_AXIS], delta[Z_AXIS], current_position[E_AXIS]); +#else plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); +#endif prepare_move(); feedrate = oldFeedrate; } else if(!retracting && retracted) { @@ -1141,7 +1146,12 @@ void refresh_cmd_timeout(void) destination[Z_AXIS]=current_position[Z_AXIS]; destination[E_AXIS]=current_position[E_AXIS]; current_position[Z_AXIS]+=retract_zlift; +#ifdef DELTA + calculate_delta(current_position); // change cartesian kinematic to delta kinematic; + plan_set_position(delta[X_AXIS], delta[Y_AXIS], delta[Z_AXIS], current_position[E_AXIS]); +#else plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); +#endif //prepare_move(); current_position[E_AXIS]-=(retract_length+retract_recover_length)/volumetric_multiplier[active_extruder]; plan_set_e_position(current_position[E_AXIS]);