diff --git a/src/kiri-mode/cam/slice.js b/src/kiri-mode/cam/slice.js index 109bbb6a..08cb51fb 100644 --- a/src/kiri-mode/cam/slice.js +++ b/src/kiri-mode/cam/slice.js @@ -235,7 +235,6 @@ CAM.slice = async function(settings, widget, onupdate, ondone) { unsafe, color, dark, - // workarea }; let opList = [ @@ -275,7 +274,9 @@ CAM.slice = async function(settings, widget, onupdate, ondone) { // apply operation override vars let workover = structuredClone(workarea_orig); let valz = op.op; - if (valz.ov_topz) workover.top_z = bottom_stock + valz.ov_topz; + if (valz.ov_topz) { + workover.top_z = bottom_stock + valz.ov_topz; + } if (valz.ov_botz) { workover.bottom_z = bottom_stock + valz.ov_botz; workover.bottom_cut = Math.max(workover.bottom_z, -zThru); diff --git a/src/kiri-mode/laser/driver.js b/src/kiri-mode/laser/driver.js index 287f33fa..ee4909d2 100644 --- a/src/kiri-mode/laser/driver.js +++ b/src/kiri-mode/laser/driver.js @@ -68,7 +68,7 @@ function sliceEmitObjects(print, slice, groups, opt = { }) { pathOpt.rate = 0.001; pathOpt.extrude = 2; } else if (label && type === "out") { - let lbl = index !== undefined ? `${slice.index}-${index}` : `${slice.index}`; + let lbl = indexed !== undefined ? `${slice.index}-${indexed}` : `${slice.index}`; polyLabel(poly, lbl); } if (simple) { @@ -84,7 +84,7 @@ function sliceEmitObjects(print, slice, groups, opt = { }) { if (ctOutMark && type === "out" && lastEmit) { for (let out of lastEmit.out) { if (out.isInside(poly)) { - polyOut(out, group, "mark"); + polyOut(out.clone().setZ(poly.getZ()), group, "mark"); } } } @@ -375,7 +375,8 @@ async function prepare(widgets, settings, update) { } } let lastEmit; - for (let slice of widget.slices.reverse()) { + let slices = ctOutStack ? widget.slices.reverse() : widget.slices; + for (let slice of slices) { lastEmit = sliceEmitObjects(print, slice, layers, {simple: isKnife, lastEmit}); update((slices++ / totalSlices) * 0.5, "prepare"); }