From c9c4105289c26bb5b5d912dc39d35892f2803da9 Mon Sep 17 00:00:00 2001 From: bubnikv Date: Mon, 22 May 2017 18:16:35 +0200 Subject: [PATCH] Fixed an excessive retract / derectract length with the new retract_before_wipe value set to nonzero. --- xs/src/libslic3r/GCode.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/xs/src/libslic3r/GCode.cpp b/xs/src/libslic3r/GCode.cpp index 38f83cbf5..068652bb6 100644 --- a/xs/src/libslic3r/GCode.cpp +++ b/xs/src/libslic3r/GCode.cpp @@ -95,7 +95,9 @@ Wipe::wipe(GCode &gcodegen, bool toolchange) double length = toolchange ? gcodegen.writer().extruder()->retract_length_toolchange() : gcodegen.writer().extruder()->retract_length(); - + // Shorten the retraction length by the amount already retracted before wipe. + length *= (1. - gcodegen.writer().extruder()->retract_before_wipe()); + if (length > 0) { /* Calculate how long we need to travel in order to consume the required amount of retraction. In other words, how far do we move in XY at wipe_speed