fix latent layer retract detection
This commit is contained in:
parent
2f184703e7
commit
dc55da0232
2 changed files with 18 additions and 5 deletions
|
|
@ -538,7 +538,15 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
function retract() {
|
function retract() {
|
||||||
if (preout.length) preout.last().retract = true;
|
if (preout.length) {
|
||||||
|
preout.last().retract = true;
|
||||||
|
} else if (output.length) {
|
||||||
|
output.last().retract = true;
|
||||||
|
} else if (opt.pretract) {
|
||||||
|
opt.pretract();
|
||||||
|
} else {
|
||||||
|
console.log('unable to retract. no preout or output');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function intersectsTop(p1, p2) {
|
function intersectsTop(p1, p2) {
|
||||||
|
|
|
||||||
|
|
@ -218,6 +218,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let lastLayer;
|
||||||
let extruders = [];
|
let extruders = [];
|
||||||
let extcount = 0;
|
let extcount = 0;
|
||||||
|
|
||||||
|
|
@ -391,21 +392,24 @@
|
||||||
if (!lastOut || lastOut.extruder !== slice.extruder) {
|
if (!lastOut || lastOut.extruder !== slice.extruder) {
|
||||||
printPoint = purge(slice.extruder, track, layerout, printPoint, slice.z);
|
printPoint = purge(slice.extruder, track, layerout, printPoint, slice.z);
|
||||||
}
|
}
|
||||||
let tmpout = [];
|
|
||||||
let wtb = slice.widget.track.box;
|
let wtb = slice.widget.track.box;
|
||||||
// output seek to start point between mesh slices if previous data
|
// output seek to start point between mesh slices if previous data
|
||||||
printPoint = print.slicePrintPath(
|
printPoint = print.slicePrintPath(
|
||||||
slice,
|
slice,
|
||||||
isBelt ? newPoint(-wtb.w, wtb.d * 2, 0) : printPoint.sub(offset),
|
isBelt ? newPoint(-wtb.w, wtb.d * 2, 0) : printPoint.sub(offset),
|
||||||
offset,
|
offset,
|
||||||
tmpout, //layerout,
|
layerout,
|
||||||
{
|
{
|
||||||
first: slice.index === 0,
|
first: slice.index === 0,
|
||||||
support: slice.widget.support,
|
support: slice.widget.support,
|
||||||
onBelt: slice.onbelt
|
onBelt: slice.onbelt,
|
||||||
|
pretract: () => {
|
||||||
|
if (lastLayer && lastLayer.length) {
|
||||||
|
lastLayer.last().retract = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
layerout.appendAll(tmpout);
|
|
||||||
lastOut = slice;
|
lastOut = slice;
|
||||||
lastExt = lastOut.ext
|
lastExt = lastOut.ext
|
||||||
if (layerRetract && layerout.length) {
|
if (layerRetract && layerout.length) {
|
||||||
|
|
@ -435,6 +439,7 @@
|
||||||
layerout.layer = layerno++;
|
layerout.layer = layerno++;
|
||||||
update((layerno / cake.length) * 0.5, "prepare");
|
update((layerno / cake.length) * 0.5, "prepare");
|
||||||
|
|
||||||
|
lastLayer = layerout;
|
||||||
slices = [];
|
slices = [];
|
||||||
layerout = [];
|
layerout = [];
|
||||||
lastOut = undefined;
|
lastOut = undefined;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue