add new slicePre()/slicePost() requirement to engine and enforce new threading/worker requirement

This commit is contained in:
Stewart Allen 2026-01-21 18:00:05 -05:00
commit 4a683bd389
2 changed files with 8 additions and 7 deletions

View file

@ -585,7 +585,7 @@ export function sliceOne(settings, widget, onupdate, ondone) {
}
// perform accumulation top down
for (let slice of stack.reverse()) {
for (let slice of stack.slice().reverse()) {
let shadow = slice.shadow ?? [];
if (devel) slice.output().setLayer("shadow", 0xff0000).addPolys(shadow);
if (process.sliceSupportExtra) {
@ -628,7 +628,7 @@ export function sliceOne(settings, widget, onupdate, ondone) {
// trim using support part offset value
let gaps = process.sliceSupportGap;
for (let slice of stack.reverse()) {
for (let slice of stack) {
let clips = [
slice.clips,
gaps ? slice.up?.clips : undefined,
@ -1162,6 +1162,7 @@ export function slicePost(settings, onupdate) {
// assign grid_id which can be embedded in gcode and
// used by the controller to cancel objects during print
let { bounds } = settings;
if (!bounds) return;
for (let widget of widgets) {
let { pos, box } = widget.track;
// calculate top/left coordinate for widget

View file

@ -26,6 +26,7 @@ class Engine {
client.setWorkPath(workURL);
client.setPoolPath(poolURL);
client.restart();
client.pool.start();
} catch (error) {
console.log({ error });
}
@ -63,11 +64,8 @@ class Engine {
}
setThreading(bool) {
if (bool) {
client.pool.start();
} else {
client.pool.stop();
}
console.log('setThreading() deprecated');
return this;
}
setListener(listener) {
@ -163,6 +161,7 @@ class Engine {
client.clear();
client.sync([this.widget]);
client.rotate(this.settings);
client.slicePre(this.settings, () => {});
client.slice(this.settings, this.widget, msg => {
this.listener({ slice: msg });
if (msg.error) {
@ -170,6 +169,7 @@ class Engine {
}
if (msg.done) {
accept(this);
client.slicePost(this.settings, () => {});
}
});
});