fix depth first with multiple pocket selections in cnc pocket op
This commit is contained in:
parent
fb6c1371b2
commit
1cc3f42f60
2 changed files with 16 additions and 9 deletions
|
|
@ -25,7 +25,7 @@
|
|||
},
|
||||
"dependencies": {
|
||||
"@fortawesome/fontawesome-free": "^6.1.1",
|
||||
"@gridspace/app-server": "^0.0.13",
|
||||
"@gridspace/app-server": "^0.0.14",
|
||||
"@gridspace/net-level-client": "^0.2.3",
|
||||
"@tracespace/parser": "^5.0.0-next.0",
|
||||
"@tweenjs/tween.js": "^16.6.0",
|
||||
|
|
|
|||
|
|
@ -1177,7 +1177,8 @@ class OpPocket extends CamOp {
|
|||
let { updateToolDiams, cutTabs, cutPolys, healPolys, shadowAt } = state;
|
||||
let { process, stock } = settings;
|
||||
// generate tracing offsets from chosen features
|
||||
let sliceOut = this.sliceOut = [];
|
||||
let sliceOut;
|
||||
let pockets = this.pockets = [];
|
||||
let camTool = new CAM.Tool(settings, tool);
|
||||
let toolDiam = camTool.fluteDiameter();
|
||||
let toolOver = toolDiam * op.step;
|
||||
|
|
@ -1208,6 +1209,9 @@ class OpPocket extends CamOp {
|
|||
tab.off = POLY.expand([tab.poly], toolDiam / 2).flat();
|
||||
});
|
||||
}
|
||||
function newPocket() {
|
||||
pockets.push(sliceOut = []);
|
||||
}
|
||||
function newSliceOut(z) {
|
||||
let slice = newSlice(z);
|
||||
sliceOut.push(slice);
|
||||
|
|
@ -1229,6 +1233,7 @@ class OpPocket extends CamOp {
|
|||
}
|
||||
let zpro = 0, zinc = 1 / (polys.length * zs.length);
|
||||
for (let poly of polys) {
|
||||
newPocket();
|
||||
for (let z of zs) {
|
||||
let clip = [], shadow;
|
||||
if (contour) {
|
||||
|
|
@ -1375,7 +1380,7 @@ class OpPocket extends CamOp {
|
|||
}
|
||||
|
||||
prepare(ops, progress) {
|
||||
let { op, state, sliceOut } = this;
|
||||
let { op, state, pockets } = this;
|
||||
let { setTool, setSpindle, setTolerance, sliceOutput } = ops;
|
||||
let { process } = state.settings;
|
||||
|
||||
|
|
@ -1386,12 +1391,14 @@ class OpPocket extends CamOp {
|
|||
setTolerance(this.topo.tolerance);
|
||||
}
|
||||
|
||||
sliceOutput(sliceOut, {
|
||||
cutdir: process.camConventional,
|
||||
depthFirst: process.camDepthFirst && !state.isIndexed,
|
||||
easeDown: op.down && process.easeDown ? op.down : 0,
|
||||
progress: (n,m) => progress(n/m, "pocket")
|
||||
});
|
||||
for (let sliceOut of pockets) {
|
||||
sliceOutput(sliceOut, {
|
||||
cutdir: process.camConventional,
|
||||
depthFirst: process.camDepthFirst && !state.isIndexed,
|
||||
easeDown: op.down && process.easeDown ? op.down : 0,
|
||||
progress: (n,m) => progress(n/m, "pocket")
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue