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