checkpoint belt work

This commit is contained in:
Stewart Allen 2021-01-09 11:51:46 -05:00
commit 3f0327393d
3 changed files with 35 additions and 26 deletions

View file

@ -45,7 +45,8 @@
print = self.worker.print = KIRI.newPrint(settings, widgets),
isThin = settings.controller.lineType === "line",
isFlat = settings.controller.lineType === "flat",
isBelt = device.bedBelt;
isBelt = device.bedBelt,
beltYoff = device.bedDepth / 2;
// compute bounds if missing
if (!bounds) {
@ -297,11 +298,13 @@
let widget = mesh.widget;
let mslices = widget.slices;
if (mslices && mslices[layer]) {
let offset = widget.track.pos || mesh.position || center;
let offset = mesh.position || center;
if (isBelt) {
offset = Object.clone(offset);
offset = Object.clone(center); // widget.track.pos
// offset = Object.clone(offset);
let ycomp = widget.track.pos.y - beltYoff;
offset.y = widget.rotinfo.dz;
offset.z = widget.rotinfo.dy;
// offset.z = widget.rotinfo.dy;
}
slices.push({
slice: mslices[layer],
@ -407,6 +410,27 @@
print.output = output;
// if belt, adjust z and y to baselines
if (isBelt) {
let bcos = Math.cos(Math.PI/4);
let icos = 1/bcos;
let miny = Infinity, minz = Infinity;
for (let layer of output) {
for (let rec of layer) {
rec.point.z = rec.point.z * icos;
rec.point.y = rec.point.y + rec.point.z * bcos;
miny = Math.min(miny, rec.point.y);
minz = Math.min(minz, rec.point.y);
}
}
for (let layer of output) {
for (let rec of layer) {
rec.point.y -= minz;
rec.point.z -= miny;
}
}
}
// render if not explicitly disabled
if (render) {
print.render = FDM.prepareRender(output, (progress, layer) => {
@ -414,24 +438,6 @@
}, { tools: device.extruders, thin: isThin, flat: isFlat, fdm: true });
}
// if belt, adjust z and y to baselines
if (isBelt) {
let miny = Infinity, minz = Infinity;
for (let layer of output) {
for (let rec of layer) {
miny = Math.min(miny, rec.point.y);
minz = Math.min(minz, rec.point.y);
}
}
console.log({miny, minz});
// for (let layer of output) {
// for (let rec of layer) {
// rec.point.y -= minz;
// rec.point.z -= miny;
// }
// }
}
return print.render;
};