From dd88f38e39c365f3394e0b407b145efea289fdbf Mon Sep 17 00:00:00 2001 From: Stewart Allen Date: Thu, 11 Dec 2025 21:14:45 -0500 Subject: [PATCH] add tabs to travel boundaries, ensure ease-down does not go thru tab --- src/kiri/mode/cam/op-area.js | 10 ++++++++++ src/kiri/mode/cam/prepare.js | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/kiri/mode/cam/op-area.js b/src/kiri/mode/cam/op-area.js index be207617..20b7df99 100644 --- a/src/kiri/mode/cam/op-area.js +++ b/src/kiri/mode/cam/op-area.js @@ -180,6 +180,11 @@ class OpArea extends CamOp { } else if (op.omitinner) { outs = omitInner(outs); } + // add tabs to travel boundaries + if (tabs) { + let tab_shadows = tabs.filter(t => t.top >= z).map(t => t.poly); + if (tab_shadows) tool_shadow.push(...tab_shadows); + } // store travel boundary that triggers up and over moves slice.tool_shadow = [ area, ...shadow, ...tool_shadow ]; slice.camLines = outs; @@ -254,6 +259,11 @@ class OpArea extends CamOp { ...POLY.offset(shadow, [ ts_off ], { count: 1, z }), ...POLY.offset(shadow, [ -ts_off ], { count: 1, z }), ]; + // add tabs to travel boundaries + if (tabs) { + let tab_shadows = tabs.filter(t => t.top >= z).map(t => t.poly); + if (tab_shadows) slice.tool_shadow.push(...tab_shadows); + } zroc += zinc; progress(proc + (pinc * zroc), 'trace'); layers diff --git a/src/kiri/mode/cam/prepare.js b/src/kiri/mode/cam/prepare.js index a3e7738b..b31117fb 100644 --- a/src/kiri/mode/cam/prepare.js +++ b/src/kiri/mode/cam/prepare.js @@ -730,7 +730,7 @@ export async function prepare_one(widget, settings, print, firstPoint, update) { let dd = lp.distTo2D(pt); zat = Math.max(pt.z, zat - (dd * easeDzPerMm)); } - lp = pt.clone().setZ(zat); + lp = pt.clone().setZ(Math.max(pt.z, zat)); camOut(lp, 1, { feed: easeFeed }); } }