fix retraction between widgets. put retraction in prepare instead of export. inline comments
This commit is contained in:
parent
551c65dff9
commit
461e71ca64
2 changed files with 18 additions and 22 deletions
|
|
@ -212,9 +212,6 @@
|
||||||
let angle = -Math.PI / 4;
|
let angle = -Math.PI / 4;
|
||||||
|
|
||||||
function moveTo(newpos, rate, comment) {
|
function moveTo(newpos, rate, comment) {
|
||||||
if (comment) {
|
|
||||||
append(";; " + comment);
|
|
||||||
}
|
|
||||||
let o = [!rate && !newpos.e ? 'G0' : 'G1'];
|
let o = [!rate && !newpos.e ? 'G0' : 'G1'];
|
||||||
let emit = { x: false, y: false, z: false };
|
let emit = { x: false, y: false, z: false };
|
||||||
if (typeof newpos.x === 'number' && newpos.x !== pos.x) {
|
if (typeof newpos.x === 'number' && newpos.x !== pos.x) {
|
||||||
|
|
@ -254,6 +251,9 @@
|
||||||
o.append(" F").append(Math.round(rate));
|
o.append(" F").append(Math.round(rate));
|
||||||
pos.f = rate
|
pos.f = rate
|
||||||
}
|
}
|
||||||
|
if (comment) {
|
||||||
|
o.append(` ; ${comment}`);
|
||||||
|
}
|
||||||
let line = o.join('');
|
let line = o.join('');
|
||||||
if (last == line) {
|
if (last == line) {
|
||||||
// console.log({dup:line});
|
// console.log({dup:line});
|
||||||
|
|
@ -325,10 +325,6 @@
|
||||||
append(`;; --- layer ${layer} (${subst.height} @ ${subst.z.round(3)}) ---`);
|
append(`;; --- layer ${layer} (${subst.height} @ ${subst.z.round(3)}) ---`);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (layer > 0 && process.outputLayerRetract) {
|
|
||||||
retract();
|
|
||||||
}
|
|
||||||
|
|
||||||
// enable fan at fan layer
|
// enable fan at fan layer
|
||||||
if (gcodeFan && layer === process.outputFanLayer) {
|
if (gcodeFan && layer === process.outputFanLayer) {
|
||||||
appendAllSub(gcodeFan);
|
appendAllSub(gcodeFan);
|
||||||
|
|
|
||||||
|
|
@ -34,14 +34,9 @@
|
||||||
firstLayerMult = process.firstLayerPrintMult,
|
firstLayerMult = process.firstLayerPrintMult,
|
||||||
firstLayerBrim = process.firstLayerBrim,
|
firstLayerBrim = process.firstLayerBrim,
|
||||||
firstLayerBrimTrig = process.firstLayerBrimTrig,
|
firstLayerBrimTrig = process.firstLayerBrimTrig,
|
||||||
|
layerRetract = process.outputLayerRetract,
|
||||||
layerno = 0,
|
layerno = 0,
|
||||||
zoff = 0,
|
zoff = 0,
|
||||||
meshIndex,
|
|
||||||
lastIndex,
|
|
||||||
closest,
|
|
||||||
mindist,
|
|
||||||
minidx,
|
|
||||||
find,
|
|
||||||
layerout = [],
|
layerout = [],
|
||||||
slices = [],
|
slices = [],
|
||||||
print = self.worker.print = KIRI.newPrint(settings, widgets),
|
print = self.worker.print = KIRI.newPrint(settings, widgets),
|
||||||
|
|
@ -271,7 +266,9 @@
|
||||||
let rec = track[nozzle];
|
let rec = track[nozzle];
|
||||||
if (rec) {
|
if (rec) {
|
||||||
track[nozzle] = null;
|
track[nozzle] = null;
|
||||||
if (layer.last()) layer.last().retract = true;
|
if (layer.last()) {
|
||||||
|
layer.last().retract = true;
|
||||||
|
}
|
||||||
start = print.polyPrintPath(rec.poly.clone().setZ(z), start, layer, {
|
start = print.polyPrintPath(rec.poly.clone().setZ(z), start, layer, {
|
||||||
tool: using || nozzle,
|
tool: using || nozzle,
|
||||||
open: true,
|
open: true,
|
||||||
|
|
@ -343,6 +340,8 @@
|
||||||
return a.z - b.z;
|
return a.z - b.z;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
let lastWidget;
|
||||||
|
|
||||||
// walk cake layers bottom up
|
// walk cake layers bottom up
|
||||||
for (let layer of cake) {
|
for (let layer of cake) {
|
||||||
// track purge blocks generated for each layer
|
// track purge blocks generated for each layer
|
||||||
|
|
@ -379,10 +378,11 @@
|
||||||
});
|
});
|
||||||
let { z, slice, offset } = order[0];
|
let { z, slice, offset } = order[0];
|
||||||
slice.prep = true;
|
slice.prep = true;
|
||||||
// retract between widgets
|
// retract between widgets or layers (when set)
|
||||||
if (layerout.length && minidx !== lastIndex) {
|
if (layerout.length && slice.widget !== lastWidget) {
|
||||||
layerout.last().retract = true;
|
layerout.last().retract = true;
|
||||||
}
|
}
|
||||||
|
lastWidget = slice.widget;
|
||||||
layerout.z = z + slice.height / 2;
|
layerout.z = z + slice.height / 2;
|
||||||
layerout.height = layerout.height || slice.height;
|
layerout.height = layerout.height || slice.height;
|
||||||
// mark layer as anchor if slice is belt and flag set
|
// mark layer as anchor if slice is belt and flag set
|
||||||
|
|
@ -408,7 +408,9 @@
|
||||||
layerout.appendAll(tmpout);
|
layerout.appendAll(tmpout);
|
||||||
lastOut = slice;
|
lastOut = slice;
|
||||||
lastExt = lastOut.ext
|
lastExt = lastOut.ext
|
||||||
lastIndex = minidx;
|
if (layerRetract) {
|
||||||
|
layerout.last().retract = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// if a declared extruder isn't used in a layer, use selected
|
// if a declared extruder isn't used in a layer, use selected
|
||||||
|
|
@ -700,9 +702,7 @@
|
||||||
.setLayer(opts.other || 'move', moveOpt, opts.moves !== true)
|
.setLayer(opts.other || 'move', moveOpt, opts.moves !== true)
|
||||||
.addPolys(moves, { thin: true, z: opts.z });
|
.addPolys(moves, { thin: true, z: opts.z });
|
||||||
// force level when present
|
// force level when present
|
||||||
if (level.z) {
|
let pz = level.z ? level.z - height : opts.z;
|
||||||
opts.z = level.z - height;
|
|
||||||
}
|
|
||||||
Object.values(prints).forEach(array => {
|
Object.values(prints).forEach(array => {
|
||||||
array.forEach(poly => {
|
array.forEach(poly => {
|
||||||
if (flat && poly.appearsClosed()) {
|
if (flat && poly.appearsClosed()) {
|
||||||
|
|
@ -715,10 +715,10 @@
|
||||||
.addPolys([ poly ],
|
.addPolys([ poly ],
|
||||||
thin ? { thin, z: opts.z, color: poly.color } :
|
thin ? { thin, z: opts.z, color: poly.color } :
|
||||||
flat ? {
|
flat ? {
|
||||||
flat, z: opts.z, color: poly.color,
|
flat, z: pz, color: poly.color,
|
||||||
outline: true, offset: array.width, open: poly.open } :
|
outline: true, offset: array.width, open: poly.open } :
|
||||||
{
|
{
|
||||||
offset: array.width, height, z: opts.z,
|
offset: array.width, height, z: pz,
|
||||||
color: { face: poly.color, line: poly.color }
|
color: { face: poly.color, line: poly.color }
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue