checkpoint belt work
This commit is contained in:
parent
3f0327393d
commit
9ce62bcac8
3 changed files with 30 additions and 20 deletions
|
|
@ -977,9 +977,10 @@
|
|||
// 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;
|
||||
// ri.dy = settings.device.bedDepth / 2 - ri.ypos;
|
||||
// stack.obj.rotate(WIDGETS[0].rotinfo);
|
||||
ri.dy = settings.device.bedDepth / 2 - ri.ypos;
|
||||
stack.obj.rotate(WIDGETS[0].rotinfo);
|
||||
}
|
||||
segtimes[`${segNumber}_draw`] = Date.now() - startTime;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -298,13 +298,14 @@
|
|||
let widget = mesh.widget;
|
||||
let mslices = widget.slices;
|
||||
if (mslices && mslices[layer]) {
|
||||
let offset = mesh.position || center;
|
||||
let offset = Object.clone(mesh.position || center);
|
||||
if (isBelt) {
|
||||
offset = Object.clone(center); // widget.track.pos
|
||||
// offset = Object.clone(offset);
|
||||
let ycomp = widget.track.pos.y - beltYoff;
|
||||
offset = center;
|
||||
offset.y = widget.rotinfo.dz;
|
||||
// offset.z = widget.rotinfo.dy;
|
||||
offset.z = widget.rotinfo.ypos;
|
||||
} else {
|
||||
// when rafts used this is non-zero
|
||||
offset.z = zoff;
|
||||
}
|
||||
slices.push({
|
||||
slice: mslices[layer],
|
||||
|
|
@ -362,7 +363,7 @@
|
|||
}
|
||||
layerout.height = layerout.height || closest.slice.height;
|
||||
slices[minidx] = null;
|
||||
closest.offset.z = zoff;
|
||||
// if (!isBelt) closest.offset.z = zoff;
|
||||
// detect extruder change and print purge block
|
||||
if (!lastOut || lastOut.extruder !== closest.slice.extruder) {
|
||||
printPoint = purge(closest.slice.extruder, track, layerout, printPoint, closest.slice.z);
|
||||
|
|
@ -411,7 +412,7 @@
|
|||
print.output = output;
|
||||
|
||||
// if belt, adjust z and y to baselines
|
||||
if (isBelt) {
|
||||
function beltSkew() {
|
||||
let bcos = Math.cos(Math.PI/4);
|
||||
let icos = 1/bcos;
|
||||
let miny = Infinity, minz = Infinity;
|
||||
|
|
@ -423,10 +424,13 @@
|
|||
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;
|
||||
if (miny || minz) {
|
||||
console.log({miny, minz})
|
||||
for (let layer of output) {
|
||||
for (let rec of layer) {
|
||||
rec.point.y -= minz;
|
||||
rec.point.z -= miny;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -438,6 +442,10 @@
|
|||
}, { tools: device.extruders, thin: isThin, flat: isFlat, fdm: true });
|
||||
}
|
||||
|
||||
if (isBelt) {
|
||||
beltSkew();
|
||||
}
|
||||
|
||||
return print.render;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@
|
|||
let render = settings.render !== false,
|
||||
spro = settings.process,
|
||||
sdev = settings.device,
|
||||
isBelt = sdev.bedBelt,
|
||||
update_start = Date.now(),
|
||||
minSolid = spro.sliceSolidMinArea,
|
||||
solidLayers = spro.sliceSolidLayers,
|
||||
|
|
@ -67,6 +68,7 @@
|
|||
metadata = settings.widget[widget.id] || {},
|
||||
extruder = metadata.extruder || 0,
|
||||
sliceHeight = spro.sliceHeight,
|
||||
firstSliceHeight = isBelt ? sliceHeight : spro.firstSliceHeight,
|
||||
nozzleSize = sdev.extruders[extruder].extNozzle,
|
||||
firstOffset = nozzleSize / 2,
|
||||
shellOffset = nozzleSize,
|
||||
|
|
@ -74,8 +76,7 @@
|
|||
fillSpacing = nozzleSize,
|
||||
fillOffset = nozzleSize * fillOffsetMult,
|
||||
sliceFillAngle = spro.sliceFillAngle,
|
||||
view = widget.mesh && widget.mesh.newGroup ? widget.mesh.newGroup() : null,
|
||||
isBelt = sdev.bedBelt;
|
||||
view = widget.mesh && widget.mesh.newGroup ? widget.mesh.newGroup() : null;
|
||||
|
||||
isFlat = settings.controller.lineType === "flat";
|
||||
isThin = !isFlat && settings.controller.lineType === "line";
|
||||
|
|
@ -104,17 +105,17 @@
|
|||
return ondone("invalid nozzle size");
|
||||
}
|
||||
|
||||
if (spro.firstSliceHeight === 0) {
|
||||
spro.firstSliceHeight = sliceHeight;
|
||||
if (firstSliceHeight === 0) {
|
||||
firstSliceHeight = sliceHeight;
|
||||
}
|
||||
|
||||
const sliceMinHeight = spro.sliceAdaptive && spro.sliceMinHeight > 0 ?
|
||||
Math.min(spro.sliceMinHeight, sliceHeight) : 0;
|
||||
|
||||
if (spro.firstSliceHeight < sliceHeight) {
|
||||
if (firstSliceHeight < sliceHeight) {
|
||||
DBUG.log("invalid first layer height < slice height");
|
||||
DBUG.log("reverting to min valid slice height");
|
||||
spro.firstSliceHeight = sliceMinHeight || sliceHeight;
|
||||
firstSliceHeight = sliceMinHeight || sliceHeight;
|
||||
}
|
||||
|
||||
// const slicer = new KIRI.slicer2(widget.getPoints(), { });
|
||||
|
|
@ -142,7 +143,7 @@
|
|||
SLICER.sliceWidget(widget, {
|
||||
height: sliceHeight,
|
||||
minHeight: sliceMinHeight,
|
||||
firstHeight: isBelt ? 0 : spro.firstSliceHeight,
|
||||
firstHeight: firstSliceHeight,
|
||||
// debug: true,
|
||||
// xray: 3,
|
||||
// view: view
|
||||
|
|
|
|||
Loading…
Reference in a new issue