checkpoint belt work
This commit is contained in:
parent
bab96a1faa
commit
8798d060ac
6 changed files with 43 additions and 32 deletions
|
|
@ -857,7 +857,7 @@
|
|||
segtimes[`${segNumber}_draw`] = widget.render(stack);
|
||||
// rotate stack for belt beds
|
||||
if (settings.device.bedBelt && widget.rotinfo) {
|
||||
STACKS.rotate(widget.rotinfo);
|
||||
stack.obj.rotate(widget.rotinfo);
|
||||
}
|
||||
updateSliderMax(true);
|
||||
setVisibleLayer(-1, 0);
|
||||
|
|
@ -977,9 +977,9 @@
|
|||
// rotate stack for belt beds
|
||||
if (settings.device.bedBelt && WIDGETS[0].rotinfo) {
|
||||
let ri = WIDGETS[0].rotinfo;
|
||||
console.log({ri})
|
||||
ri.dy = ri.dz = 0;
|
||||
STACKS.rotate(WIDGETS[0].rotinfo);
|
||||
ri.dy = settings.device.bedDepth / 2 - ri.ypos;
|
||||
stack.obj.rotate(WIDGETS[0].rotinfo);
|
||||
}
|
||||
segtimes[`${segNumber}_draw`] = Date.now() - startTime;
|
||||
}
|
||||
|
|
@ -1685,7 +1685,8 @@
|
|||
}
|
||||
|
||||
if (isBelt) {
|
||||
let bounds = platformUpdateBounds(), movey = -(dev.bedDepth / 2 + bounds.min.y);
|
||||
let bounds = platformUpdateBounds(),
|
||||
movey = -(dev.bedDepth / 2 + bounds.min.y);
|
||||
forAllWidgets(widget => widget.move(0, movey + 10, 0));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -288,15 +288,15 @@
|
|||
});
|
||||
|
||||
// recenter for visualization
|
||||
if (morph && belt) {
|
||||
for (let layer of output) {
|
||||
for (let rec of layer) {
|
||||
let point = rec.point;
|
||||
point.y -= bounds.min.z;
|
||||
point.z += bounds.min.y;
|
||||
}
|
||||
}
|
||||
}
|
||||
// if (false && morph && belt) {
|
||||
// for (let layer of output) {
|
||||
// for (let rec of layer) {
|
||||
// let point = rec.point;
|
||||
// point.y -= bounds.min.z;
|
||||
// point.z += bounds.min.y;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
scope.imported = gcode;
|
||||
scope.lines = lines.length;
|
||||
|
|
|
|||
|
|
@ -66,18 +66,22 @@ KIRI.worker = {
|
|||
|
||||
let widget = cache[data.id],
|
||||
last = time(),
|
||||
ypos,
|
||||
now;
|
||||
|
||||
try {
|
||||
|
||||
let rotation = (Math.PI/180) * (settings.device.bedBelt ? 45 : 0);
|
||||
if (rotation) {
|
||||
let track = widget.track;
|
||||
ypos = track.pos.y + settings.device.bedDepth / 2 - track.box.h / 2;
|
||||
widget.mesh = null;
|
||||
widget.points = null;
|
||||
widget.loadVertices(widget.vertices);
|
||||
widget._rotate(rotation,0,0,true);
|
||||
widget.center(false, true);
|
||||
widget.getBoundingBox(true);
|
||||
widget.belt = { ypos };
|
||||
}
|
||||
|
||||
widget.slice(settings, function(error) {
|
||||
|
|
@ -102,7 +106,7 @@ KIRI.worker = {
|
|||
let wbb = widget.getBoundingBox(true);
|
||||
let dy = (wbb.max.y + wbb.min.y)/2;
|
||||
let dz = wbb.min.z;
|
||||
widget.rotinfo = { angle: 45, dy, dz };
|
||||
widget.rotinfo = { angle: 45, dy, dz, ypos };
|
||||
send.data({ rotinfo: widget.rotinfo });
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@
|
|||
gcodeLayer = device.gcodeLayer,
|
||||
gcodeTrack = device.gcodeTrack,
|
||||
tool = 0,
|
||||
isBelt = device.bedBelt || false,
|
||||
isBelt = device.bedBelt,
|
||||
bedType = isBelt ? "belt" : "fixed",
|
||||
extruder = extruders[tool],
|
||||
offset_x = extruder.extOffsetX,
|
||||
|
|
|
|||
|
|
@ -297,10 +297,11 @@
|
|||
let widget = mesh.widget;
|
||||
let mslices = widget.slices;
|
||||
if (mslices && mslices[layer]) {
|
||||
let offset = mesh.position || center;
|
||||
let offset = widget.track.pos || mesh.position || center;
|
||||
if (isBelt) {
|
||||
offset = Object.clone(offset);
|
||||
offset.y -= widget.belt_offset || 0;
|
||||
offset.y = widget.rotinfo.dz;
|
||||
offset.z = widget.rotinfo.dy;
|
||||
}
|
||||
slices.push({
|
||||
slice: mslices[layer],
|
||||
|
|
@ -406,8 +407,15 @@
|
|||
|
||||
print.output = output;
|
||||
|
||||
// render if not explicitly disabled
|
||||
if (render) {
|
||||
print.render = FDM.prepareRender(output, (progress, layer) => {
|
||||
update(0.5 + progress * 0.5, "render", layer);
|
||||
}, { tools: device.extruders, thin: isThin, flat: isFlat, fdm: true });
|
||||
}
|
||||
|
||||
// if belt, adjust z and y to baselines
|
||||
if (false && isBelt) {
|
||||
if (isBelt) {
|
||||
let miny = Infinity, minz = Infinity;
|
||||
for (let layer of output) {
|
||||
for (let rec of layer) {
|
||||
|
|
@ -416,21 +424,15 @@
|
|||
}
|
||||
}
|
||||
console.log({miny, minz});
|
||||
for (let layer of output) {
|
||||
for (let rec of layer) {
|
||||
// rec.point.y -= minz;
|
||||
// rec.point.z -= miny;
|
||||
}
|
||||
}
|
||||
// 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) => {
|
||||
update(0.5 + progress * 0.5, "render", layer);
|
||||
}, { tools: device.extruders, thin: isThin, flat: isFlat, fdm: true });
|
||||
return print.render;
|
||||
}
|
||||
return print.render;
|
||||
};
|
||||
|
||||
class Counter {
|
||||
|
|
|
|||
|
|
@ -272,7 +272,11 @@
|
|||
for (let top of slices[0].tops) {
|
||||
bounds.merge(top.poly.bounds);
|
||||
}
|
||||
widget.belt_offset = bounds.miny;
|
||||
widget.belt = {
|
||||
offset_y: bounds.miny,
|
||||
pos_y: sdev.bedDepth / 2 + widget.track.pos.y,
|
||||
ypos: widget.belt.ypos
|
||||
};
|
||||
}
|
||||
|
||||
// report slicing complete
|
||||
|
|
|
|||
Loading…
Reference in a new issue