checkpoint belt work
This commit is contained in:
parent
8798d060ac
commit
3f0327393d
3 changed files with 35 additions and 26 deletions
|
|
@ -978,8 +978,8 @@
|
||||||
if (settings.device.bedBelt && WIDGETS[0].rotinfo) {
|
if (settings.device.bedBelt && WIDGETS[0].rotinfo) {
|
||||||
let ri = WIDGETS[0].rotinfo;
|
let ri = WIDGETS[0].rotinfo;
|
||||||
ri.dy = ri.dz = 0;
|
ri.dy = ri.dz = 0;
|
||||||
ri.dy = settings.device.bedDepth / 2 - ri.ypos;
|
// ri.dy = settings.device.bedDepth / 2 - ri.ypos;
|
||||||
stack.obj.rotate(WIDGETS[0].rotinfo);
|
// stack.obj.rotate(WIDGETS[0].rotinfo);
|
||||||
}
|
}
|
||||||
segtimes[`${segNumber}_draw`] = Date.now() - startTime;
|
segtimes[`${segNumber}_draw`] = Date.now() - startTime;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@
|
||||||
gcodeLayer = device.gcodeLayer,
|
gcodeLayer = device.gcodeLayer,
|
||||||
gcodeTrack = device.gcodeTrack,
|
gcodeTrack = device.gcodeTrack,
|
||||||
tool = 0,
|
tool = 0,
|
||||||
isBelt = device.bedBelt,
|
isBelt = false && device.bedBelt,
|
||||||
bedType = isBelt ? "belt" : "fixed",
|
bedType = isBelt ? "belt" : "fixed",
|
||||||
extruder = extruders[tool],
|
extruder = extruders[tool],
|
||||||
offset_x = extruder.extOffsetX,
|
offset_x = extruder.extOffsetX,
|
||||||
|
|
@ -199,11 +199,14 @@
|
||||||
}
|
}
|
||||||
let epos = isBelt ? { x: pos.x, y: pos.y, z: pos.z } : pos;
|
let epos = isBelt ? { x: pos.x, y: pos.y, z: pos.z } : pos;
|
||||||
if (isBelt) {
|
if (isBelt) {
|
||||||
let rpos = new THREE.Vector3(pos.x, pos.y, pos.z);
|
// let rpos = new THREE.Vector3(pos.x, pos.y, pos.z);
|
||||||
rpos.applyAxisAngle( taxis, angle );
|
// rpos.applyAxisAngle( taxis, angle );
|
||||||
epos.x = rpos.x;
|
// epos.x = rpos.x;
|
||||||
epos.y = rpos.z * icos;
|
// epos.y = rpos.z * icos;
|
||||||
epos.z = rpos.y + (bcos * rpos.z);
|
// epos.z = rpos.y + (bcos * rpos.z);
|
||||||
|
epos.x = pos.x;
|
||||||
|
epos.z = pos.z * icos;
|
||||||
|
epos.y = pos.y + epos.z * bcos;
|
||||||
}
|
}
|
||||||
if (emit.x) o.append(" X").append(epos.x.toFixed(decimals));
|
if (emit.x) o.append(" X").append(epos.x.toFixed(decimals));
|
||||||
if (emit.y) o.append(" Y").append(epos.y.toFixed(decimals));
|
if (emit.y) o.append(" Y").append(epos.y.toFixed(decimals));
|
||||||
|
|
|
||||||
|
|
@ -45,7 +45,8 @@
|
||||||
print = self.worker.print = KIRI.newPrint(settings, widgets),
|
print = self.worker.print = KIRI.newPrint(settings, widgets),
|
||||||
isThin = settings.controller.lineType === "line",
|
isThin = settings.controller.lineType === "line",
|
||||||
isFlat = settings.controller.lineType === "flat",
|
isFlat = settings.controller.lineType === "flat",
|
||||||
isBelt = device.bedBelt;
|
isBelt = device.bedBelt,
|
||||||
|
beltYoff = device.bedDepth / 2;
|
||||||
|
|
||||||
// compute bounds if missing
|
// compute bounds if missing
|
||||||
if (!bounds) {
|
if (!bounds) {
|
||||||
|
|
@ -297,11 +298,13 @@
|
||||||
let widget = mesh.widget;
|
let widget = mesh.widget;
|
||||||
let mslices = widget.slices;
|
let mslices = widget.slices;
|
||||||
if (mslices && mslices[layer]) {
|
if (mslices && mslices[layer]) {
|
||||||
let offset = widget.track.pos || mesh.position || center;
|
let offset = mesh.position || center;
|
||||||
if (isBelt) {
|
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.y = widget.rotinfo.dz;
|
||||||
offset.z = widget.rotinfo.dy;
|
// offset.z = widget.rotinfo.dy;
|
||||||
}
|
}
|
||||||
slices.push({
|
slices.push({
|
||||||
slice: mslices[layer],
|
slice: mslices[layer],
|
||||||
|
|
@ -407,6 +410,27 @@
|
||||||
|
|
||||||
print.output = output;
|
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
|
// render if not explicitly disabled
|
||||||
if (render) {
|
if (render) {
|
||||||
print.render = FDM.prepareRender(output, (progress, layer) => {
|
print.render = FDM.prepareRender(output, (progress, layer) => {
|
||||||
|
|
@ -414,24 +438,6 @@
|
||||||
}, { tools: device.extruders, thin: isThin, flat: isFlat, fdm: true });
|
}, { 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;
|
return print.render;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue