diff --git a/src/kiri/print.js b/src/kiri/print.js index e30f06ff..2b8f1c92 100644 --- a/src/kiri/print.js +++ b/src/kiri/print.js @@ -534,6 +534,7 @@ wipeDist = process.outputRetractWipe || 0, isBelt = device.bedBelt, startClone = startPoint.clone(), + seedPoint = opt.seedPoint || startPoint, z = slice.z, lastPoly; @@ -628,10 +629,11 @@ coast: firstLayer ? 0 : coastDist, extrude: pref(opt.extrude, shellMult), onfirst: function(firstPoint) { - let from = lastOut ? lastOut.point.sub(offset) : startPoint; + let from = seedPoint || startPoint; if (from.distTo2D(firstPoint) > retractDist) { retract(); } + seedPoint = null; } }); lastPoly = slice.lastPoly = poly; diff --git a/src/mode/fdm/prepare.js b/src/mode/fdm/prepare.js index 9d57604f..60e299d7 100644 --- a/src/mode/fdm/prepare.js +++ b/src/mode/fdm/prepare.js @@ -411,6 +411,7 @@ offset, layerout, { + seedPoint: printPoint.sub(offset), params, // range parameters first: slice.index === 0, support: slice.widget.support,