From 6e433985094874f3c3fbf70becd577b8ea2115eb Mon Sep 17 00:00:00 2001 From: whosawhatsis Date: Wed, 12 Feb 2014 13:01:19 -0800 Subject: [PATCH] G10/G11 bugfixes Previous version was broken by using G92 E0 between retract and recover. --- Marlin/Marlin_main.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index ab14f9907f..7c7a0b0442 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -1114,7 +1114,9 @@ void process_commands() destination[Y_AXIS]=current_position[Y_AXIS]; destination[Z_AXIS]=current_position[Z_AXIS]; current_position[Z_AXIS]-=retract_zlift; - destination[E_AXIS]=current_position[E_AXIS]-retract_length/volumetric_multiplier[active_extruder]; + destination[E_AXIS]=current_position[E_AXIS]; + current_position[E_AXIS]+=retract_length/volumetric_multiplier[active_extruder]; + plan_set_e_position(current_position[E_AXIS]); float oldFeedrate = feedrate; feedrate=retract_feedrate; retracted=true; @@ -1130,7 +1132,9 @@ void process_commands() destination[Y_AXIS]=current_position[Y_AXIS]; destination[Z_AXIS]=current_position[Z_AXIS]; current_position[Z_AXIS]+=retract_zlift; - destination[E_AXIS]=current_position[E_AXIS]+(retract_length+retract_recover_length)/volumetric_multiplier[active_extruder]; + destination[E_AXIS]=current_position[E_AXIS]; + current_position[E_AXIS]-=(retract_length+retract_recover_length)/volumetric_multiplier[active_extruder]; + plan_set_e_position(current_position[E_AXIS]); float oldFeedrate = feedrate; feedrate=retract_recover_feedrate; retracted=false;