diff --git a/src/kiri-mode/cam/ops.js b/src/kiri-mode/cam/ops.js index 59648bb9..73a6fcf5 100644 --- a/src/kiri-mode/cam/ops.js +++ b/src/kiri-mode/cam/ops.js @@ -227,7 +227,7 @@ class OpRough extends CamOp { let shadow = []; let slices = []; let indices = slicer.interval(roughDown, { - down: true, min: zBottom, fit: true, off: 0.01 + down: true, min: 0, fit: true, off: 0.01 }); // shift out first (top-most) slice indices.shift(); @@ -510,7 +510,7 @@ class OpOutline extends CamOp { let shadow = []; let slices = []; let intopt = { - down: true, min: zBottom, fit: true, off: 0.01, + down: true, min: 0, fit: true, off: 0.01, max: op.top ? zMax + ztOff : undefined }; let indices = slicer.interval(op.down, intopt); diff --git a/src/kiri-mode/cam/slicer.js b/src/kiri-mode/cam/slicer.js index e64cc98f..5bc28ade 100644 --- a/src/kiri-mode/cam/slicer.js +++ b/src/kiri-mode/cam/slicer.js @@ -216,7 +216,7 @@ class Slicer { const promises = [] for (let bucket of buckets) { - promises.push(sliceFn(bucket, opt, slice => { + promises.push(sliceFn(bucket, { ...opt, minZ: this.bounds.min.z }, slice => { track.count++; if (opt.progress) { opt.progress(track.count, track.total); @@ -281,7 +281,7 @@ class Slicer { let links = opt.links !== false, dedup = opt.dedup !== false, edges = opt.edges || false, - over = opt.over || false, + over = opt.over || z <= opt.minZ, debug = opt.debug, phash = {}, lines = [];