From 54395c17d53d62e9261b703e3e078b8a8efd89d1 Mon Sep 17 00:00:00 2001 From: Stewart Allen Date: Sat, 25 Feb 2023 23:26:57 -0500 Subject: [PATCH] some cam slicer debugging --- src/kiri-mode/cam/slice.js | 3 ++- src/kiri-mode/cam/slicer.js | 11 ++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/kiri-mode/cam/slice.js b/src/kiri-mode/cam/slice.js index e6bb3a00..c86b77da 100644 --- a/src/kiri-mode/cam/slice.js +++ b/src/kiri-mode/cam/slice.js @@ -353,7 +353,7 @@ CAM.traces = async function(settings, widget, single) { } } } else - base.polygons.flatten(data.tops,null,true).forEach(poly => { + base.polygons.flatten(data.tops).forEach(poly => { poly.inner = null; poly.parent = null; let z = poly.getZ(); @@ -366,6 +366,7 @@ CAM.traces = async function(settings, widget, single) { } // do not add duplicates if (traces[i].isEquivalent(poly) && dz < 0.1) { + // console.log({ dup: poly }); return; } } diff --git a/src/kiri-mode/cam/slicer.js b/src/kiri-mode/cam/slicer.js index 5a4913a9..cf4f730b 100644 --- a/src/kiri-mode/cam/slicer.js +++ b/src/kiri-mode/cam/slicer.js @@ -80,6 +80,10 @@ class Slicer { p2 = newPoint(0,0,0), p3 = newPoint(0,0,0); + // for (let i = 0, il = points.length; i < il; ) { + // points[i] = points[i++].toFixed(5); + // } + for (let i = 0, il = points.length; i < il; ) { p1.set(points[i++], points[i++], points[i++]); p2.set(points[i++], points[i++], points[i++]); @@ -185,8 +189,8 @@ class Slicer { let zmax = Math.max(p1.z, p2.z, p3.z); for (let bucket of buckets) { const { zs, index } = bucket; - const min = zs[0]; - const max = zs.last(); + const min = Math.min(...zs); + const max = Math.max(...zs); if (zmin < min && zmax < min) { continue; } @@ -199,7 +203,7 @@ class Slicer { end("create buckets"); } - // console.log({ zs, zlen, count, step, buckets }); + // console.log({ zs, zlen, count, step, buckets, flatoff }); begin("slicing"); const { minions } = kiri; @@ -326,6 +330,7 @@ class Slicer { } if (dedup) { + // console.log({ z, dedup: lines, points }); lines = sliceDedup(lines, debug); }