add belt anchor line on first layer when needed

This commit is contained in:
Stewart Allen 2020-12-20 14:57:35 -05:00
commit ebbeb0178d
3 changed files with 18 additions and 3 deletions

View file

@ -916,6 +916,7 @@
API.function.clear();
API.conf.save();
showDevices();
API.modal.hide();
};
UI.deviceAdd.onclick = function() {
API.function.clear();

View file

@ -124,6 +124,7 @@
let dz = 0,
abs = true,
absE = true,
belt = false,
defh = 0,
height = 0,
factor = 1,
@ -216,6 +217,9 @@
defh = parseFloat(hd[4]);
if (fdm) dz = -defh / 2;
}
if (line.indexOf("BED TYPE: BELT") > 0) {
belt = true;
}
line = line.split(";")[0].split(" ").filter(v => v);
let cmd = line.shift();
if (!cmd) return;
@ -270,6 +274,7 @@
scope.lines = lines.length;
scope.bytes = gcode.length;
scope.maxSpeed = Math.floor(maxf / 60);
scope.belt = belt;
done({ output: scope.output });
};

View file

@ -201,7 +201,9 @@
) && !vaseMode;
doShells(slice, spro.sliceShells, firstOffset, shellOffset, fillOffset, {
vase: vaseMode,
thin: spro.detectThinWalls
thin: spro.detectThinWalls,
belt0: sdev.bedBelt && slice.index === 0,
widget: widget
});
if (solid) {
doSolidLayerFill(slice, fillSpacing, sliceFillAngle);
@ -358,8 +360,7 @@
* @param {number} fillOffset
* @param {Obejct} options
*/
function doShells(slice, count, offset1, offsetN, fillOffset, options) {
const opt = options || {};
function doShells(slice, count, offset1, offsetN, fillOffset, opt = {}) {
slice.tops.forEach(function(top) {
let top_poly = [ top.poly ];
@ -464,6 +465,14 @@
// for diffing
top.last = last;
if (opt.belt0 && top.shells.length === 0) {
let bounds = opt.widget.bounds;
top.shells.push(BASE.newPolygon()
.setOpen()
.add(bounds.min.x - 5,0,slice.z)
.add(bounds.max.x + 5,0,slice.z));
}
});
};