diff --git a/src/kiri-mode/cam/ops.js b/src/kiri-mode/cam/ops.js index 5260d193..790d598d 100644 --- a/src/kiri-mode/cam/ops.js +++ b/src/kiri-mode/cam/ops.js @@ -138,13 +138,13 @@ class OpLevel extends CamOp { prepare(ops, progress) { let { op, state, lines, stepOver } = this; - let { setTool, setSpindle, printPoint } = ops; + let { setTool, setSpindle, printPoint, setPrintPoint } = ops; let { polyEmit, newLayer, tip2tipEmit, camOut } = ops; setTool(op.tool, op.rate); setSpindle(op.spindle); lines = lines.map(p => { return { first: p.first(), last: p.last(), poly: p } }); - tip2tipEmit(lines, printPoint, (el, point, count) => { + printPoint = tip2tipEmit(lines, printPoint, (el, point, count) => { let poly = el.poly; if (poly.last() === point) { poly.reverse(); @@ -153,6 +153,7 @@ class OpLevel extends CamOp { camOut(point.clone(), pidx > 0, stepOver); }, false); }); + setPrintPoint(printPoint); newLayer(); } diff --git a/src/kiri-mode/cam/prepare.js b/src/kiri-mode/cam/prepare.js index 19879a80..68a13284 100644 --- a/src/kiri-mode/cam/prepare.js +++ b/src/kiri-mode/cam/prepare.js @@ -458,6 +458,11 @@ function prepEach(widget, settings, print, firstPoint, update) { update((opSum + (progress * weight)) / opTot, message || op.type(), message); }); opSum += weight; + if (tool) { + newLayer(); + camOut(printPoint = printPoint.clone().setZ(zmax + zadd + ztOff)); + newLayer(); + } } function emitTrace(slice) {