From 9083966c22ced89d3dbd6ea3a92ab7ee2036f754 Mon Sep 17 00:00:00 2001 From: Erik vd Zalm Date: Sun, 12 Aug 2012 18:13:34 +0200 Subject: [PATCH] Do not use feedrate multiiply on Z and E only moves. --- Marlin/Marlin.pde | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Marlin/Marlin.pde b/Marlin/Marlin.pde index 13b2b11db..f48a41921 100644 --- a/Marlin/Marlin.pde +++ b/Marlin/Marlin.pde @@ -1602,8 +1602,14 @@ void prepare_move() { clamp_to_software_endstops(destination); - previous_millis_cmd = millis(); - plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate*feedmultiply/60/100.0, active_extruder); + previous_millis_cmd = millis(); + // Do not use feedmultiply for E or Z only moves + if( (current_position[X_AXIS] == destination [X_AXIS]) && (current_position[Y_AXIS] == destination [Y_AXIS])) { + plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate/60, active_extruder); + } + else { + plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate*feedmultiply/60/100.0, active_extruder); + } for(int8_t i=0; i < NUM_AXIS; i++) { current_position[i] = destination[i]; }