From bacc58ad73258e7582e3dc62b51b3182a2548bc4 Mon Sep 17 00:00:00 2001 From: Stewart Allen Date: Thu, 31 Jul 2025 17:57:56 -0400 Subject: [PATCH] change dragknife start point for inner polys --- src/kiri/mode/laser/driver.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/kiri/mode/laser/driver.js b/src/kiri/mode/laser/driver.js index 50407301..7f2d136c 100644 --- a/src/kiri/mode/laser/driver.js +++ b/src/kiri/mode/laser/driver.js @@ -120,12 +120,18 @@ function arc(center, rad, s1, s2, out) { function addKnifeRadii(poly, tipoff) { poly.setClockwise(); let oldpts = poly.points.slice(); + // find leftpoint and make that the first point let start = oldpts[0]; let startI = 0; + let inner = tipoff < 0; + tipoff = Math.abs(tipoff); for (let i=1; i start.y) { + if (inner && (pt.x > start.x || (pt.x == start.x && pt.y < start.y))) { + start = pt; + startI = i; + } else if (!inner && (pt.x < start.x || (pt.x == start.x && pt.y > start.y))) { start = pt; startI = i; } @@ -352,7 +358,7 @@ async function laser_prepare(widgets, settings, update) { for (let poly of slice.offset) { addKnifeRadii(poly, ctOutKnifeTip); if (poly.inner) poly.inner.forEach(ip => { - addKnifeRadii(ip, ctOutKnifeTip); + addKnifeRadii(ip, -ctOutKnifeTip); }); } }