add tabs to travel boundaries, ensure ease-down does not go thru tab

This commit is contained in:
Stewart Allen 2025-12-11 21:14:45 -05:00
commit dd88f38e39
2 changed files with 11 additions and 1 deletions

View file

@ -180,6 +180,11 @@ class OpArea extends CamOp {
} else if (op.omitinner) { } else if (op.omitinner) {
outs = omitInner(outs); 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 // store travel boundary that triggers up and over moves
slice.tool_shadow = [ area, ...shadow, ...tool_shadow ]; slice.tool_shadow = [ area, ...shadow, ...tool_shadow ];
slice.camLines = outs; 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 }),
...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; zroc += zinc;
progress(proc + (pinc * zroc), 'trace'); progress(proc + (pinc * zroc), 'trace');
layers layers

View file

@ -730,7 +730,7 @@ export async function prepare_one(widget, settings, print, firstPoint, update) {
let dd = lp.distTo2D(pt); let dd = lp.distTo2D(pt);
zat = Math.max(pt.z, zat - (dd * easeDzPerMm)); 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 }); camOut(lp, 1, { feed: easeFeed });
} }
} }