add new slicePre()/slicePost() requirement to engine and enforce new threading/worker requirement
This commit is contained in:
parent
07220655d6
commit
4a683bd389
2 changed files with 8 additions and 7 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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, () => {});
|
||||
}
|
||||
});
|
||||
});
|
||||
|
|
|
|||
Loading…
Reference in a new issue