fix outline stock clipto with offset origin, fix origin select with offset origin

This commit is contained in:
Stewart Allen 2025-11-16 13:31:31 -05:00
commit 94f3f0d943
2 changed files with 12 additions and 7 deletions

View file

@ -140,8 +140,8 @@ function pointHoverUp(int, ev) {
x += stock.x / 2;
y += stock.y / 2;
}
process.camOriginOffX = x;
process.camOriginOffY = y;
process.camOriginOffX = x - stock.center.x;
process.camOriginOffY = y - stock.center.y;
process.camOriginOffZ = z;
api.settings.update_fields(process);
api.platform.update_origin();

View file

@ -40,6 +40,8 @@ class OpOutline extends CamOp {
let indices = slicer.interval(op.down, intopt);
let trueShadow = process.camTrueShadow === true;
let lastShadowZ;
let stockClip;
// shift out first (top-most) slice
indices.shift();
// add flats to shadow
@ -188,6 +190,11 @@ class OpOutline extends CamOp {
addDogbones(offset, toolDiam / 5);
}
if (process.camStockClipTo && stock.x && stock.y && stock.center) {
stockClip = newPolygon().centerRectangle(stock.center, stock.x + 0.001, stock.y + 0.001);
offset = cutPolys([stockClip], offset, slice.z, true);
}
if (tabs) {
tabs.forEach(tab => {
tab.off = POLY.expand([tab.poly], toolDiam / 2).flat();
@ -195,11 +202,6 @@ class OpOutline extends CamOp {
offset = cutTabs(tabs, offset);
}
if (process.camStockClipTo && stock.x && stock.y && stock.center) {
let rect = newPolygon().centerRectangle({x:0,y:0}, stock.x, stock.y);
offset = cutPolys([rect], offset, slice.z, true);
}
// offset.xout(`slice ${slice.z}`);
slice.camLines = offset;
});
@ -215,6 +217,9 @@ class OpOutline extends CamOp {
if (controller.devel) slice.output()
.setLayer("shadow", {line: 0x557799}, false)
.addPolys(slice.shadow)
if (controller.devel && stockClip) slice.output()
.setLayer("stock clip", {line: 0x557799}, false)
.addPolys([ stockClip ])
slice.output()
.setLayer(state.layername, {face: color, line: color})
.addPolys(slice.camLines);