fix output order for slices with shells touching the belt

This commit is contained in:
Stewart Allen 2021-02-16 22:01:10 -05:00
commit 8be93cb3c9
4 changed files with 21 additions and 17 deletions

View file

@ -71,11 +71,11 @@
"sliceMinHeight": 0,
"sliceSupportDensity": 0.25,
"sliceSupportOffset": 0.4,
"sliceSupportGap": 1,
"sliceSupportGap": 0,
"sliceSupportSize": 6,
"sliceSupportArea": 0.5,
"sliceSupportArea": 0.25,
"sliceSupportExtra": 0,
"sliceSupportAngle": 2,
"sliceSupportAngle": 1,
"sliceSupportNozzle": 0,
"sliceSolidMinArea": 10,
"sliceSolidLayers": 3,
@ -85,10 +85,12 @@
"firstLayerPrintMult": 1.15,
"firstLayerYOffset": 0,
"firstLayerBrim": 0,
"firstLayerBeltLead": 3,
"firstLayerBeltLead": 0,
"firstLayerFanSpeed": 0,
"outputTemp": 210,
"outputFanMax": 255,
"outputBedTemp": 60,
"outputFanSpeed": 255,
"outputFeedrate": 50,
"outputFinishrate": 50,
"outputSeekrate": 80,
@ -96,14 +98,15 @@
"outputFillMult": 1.25,
"outputSparseMult": 1.25,
"outputFanLayer": 0,
"outputRetractDist": 4,
"outputRetractSpeed": 30,
"outputRetractDwell": 30,
"outputShortPoly": 100.0,
"outputRetractDist": 4.5,
"outputRetractSpeed": 50,
"outputRetractWipe": 1,
"outputRetractDwell": 25,
"outputShortPoly": 60.0,
"outputMinSpeed": 10.0,
"outputCoastDist": 0.1,
"outputWipeDistance": 0,
"outputLayerRetract": true,
"outputWipeDistance": 1,
"outputLayerRetract": false,
"detectThinWalls": true,
"zHopDistance": 0,
"antiBacklash": 0

View file

@ -845,7 +845,7 @@
// and enforce optimal shell order (outer first)
if (isBelt && opt.onBelt) {
startPoint = startClone;
shellOrder = 1;
shellOrder = -1;
}
// top object

View file

@ -314,10 +314,11 @@
}
}
}
// todo remove b/c this is now calculated at slice time
// flag slices as being on or off the bed / belt
for (let slice of widget.slices) {
slice.onbelt = Math.abs(minby - slice.minby) < 0.01;
}
// for (let slice of widget.slices) {
// slice.onbelt = Math.abs(minby - slice.minby) < 0.01;
// }
} else {
// when rafts used this is non-zero
offset.z = zoff;
@ -410,7 +411,7 @@
params, // range parameters
first: slice.index === 0,
support: slice.widget.support,
onBelt: slice.onbelt,
onBelt: slice.belt.touch,
pretract: (wipeDist) => {
if (lastLayer && lastLayer.length) {
let lastOut = lastLayer.last();

View file

@ -299,7 +299,7 @@
}, "offsets");
// add lead in when specified in belt mode
if (!isSynth && isBelt && spro.firstLayerBeltLead) {
if (!isSynth && isBelt) {
let wb = widget.bounds;
// find adjusted zero point from slices
let smin = Infinity;
@ -336,7 +336,7 @@
while (start.up && start.topShells().length === 0) {
start = start.up;
}
while (start && offset >= sliceHeight) {
while (offset && start && offset >= sliceHeight) {
let addto = start.down;
if (!addto) {
addto = newSlice(start.z - sliceHeight);