add belt anchor line on first layer when needed
This commit is contained in:
parent
6977a4e720
commit
ebbeb0178d
3 changed files with 18 additions and 3 deletions
|
|
@ -916,6 +916,7 @@
|
||||||
API.function.clear();
|
API.function.clear();
|
||||||
API.conf.save();
|
API.conf.save();
|
||||||
showDevices();
|
showDevices();
|
||||||
|
API.modal.hide();
|
||||||
};
|
};
|
||||||
UI.deviceAdd.onclick = function() {
|
UI.deviceAdd.onclick = function() {
|
||||||
API.function.clear();
|
API.function.clear();
|
||||||
|
|
|
||||||
|
|
@ -124,6 +124,7 @@
|
||||||
let dz = 0,
|
let dz = 0,
|
||||||
abs = true,
|
abs = true,
|
||||||
absE = true,
|
absE = true,
|
||||||
|
belt = false,
|
||||||
defh = 0,
|
defh = 0,
|
||||||
height = 0,
|
height = 0,
|
||||||
factor = 1,
|
factor = 1,
|
||||||
|
|
@ -216,6 +217,9 @@
|
||||||
defh = parseFloat(hd[4]);
|
defh = parseFloat(hd[4]);
|
||||||
if (fdm) dz = -defh / 2;
|
if (fdm) dz = -defh / 2;
|
||||||
}
|
}
|
||||||
|
if (line.indexOf("BED TYPE: BELT") > 0) {
|
||||||
|
belt = true;
|
||||||
|
}
|
||||||
line = line.split(";")[0].split(" ").filter(v => v);
|
line = line.split(";")[0].split(" ").filter(v => v);
|
||||||
let cmd = line.shift();
|
let cmd = line.shift();
|
||||||
if (!cmd) return;
|
if (!cmd) return;
|
||||||
|
|
@ -270,6 +274,7 @@
|
||||||
scope.lines = lines.length;
|
scope.lines = lines.length;
|
||||||
scope.bytes = gcode.length;
|
scope.bytes = gcode.length;
|
||||||
scope.maxSpeed = Math.floor(maxf / 60);
|
scope.maxSpeed = Math.floor(maxf / 60);
|
||||||
|
scope.belt = belt;
|
||||||
|
|
||||||
done({ output: scope.output });
|
done({ output: scope.output });
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -201,7 +201,9 @@
|
||||||
) && !vaseMode;
|
) && !vaseMode;
|
||||||
doShells(slice, spro.sliceShells, firstOffset, shellOffset, fillOffset, {
|
doShells(slice, spro.sliceShells, firstOffset, shellOffset, fillOffset, {
|
||||||
vase: vaseMode,
|
vase: vaseMode,
|
||||||
thin: spro.detectThinWalls
|
thin: spro.detectThinWalls,
|
||||||
|
belt0: sdev.bedBelt && slice.index === 0,
|
||||||
|
widget: widget
|
||||||
});
|
});
|
||||||
if (solid) {
|
if (solid) {
|
||||||
doSolidLayerFill(slice, fillSpacing, sliceFillAngle);
|
doSolidLayerFill(slice, fillSpacing, sliceFillAngle);
|
||||||
|
|
@ -358,8 +360,7 @@
|
||||||
* @param {number} fillOffset
|
* @param {number} fillOffset
|
||||||
* @param {Obejct} options
|
* @param {Obejct} options
|
||||||
*/
|
*/
|
||||||
function doShells(slice, count, offset1, offsetN, fillOffset, options) {
|
function doShells(slice, count, offset1, offsetN, fillOffset, opt = {}) {
|
||||||
const opt = options || {};
|
|
||||||
slice.tops.forEach(function(top) {
|
slice.tops.forEach(function(top) {
|
||||||
let top_poly = [ top.poly ];
|
let top_poly = [ top.poly ];
|
||||||
|
|
||||||
|
|
@ -464,6 +465,14 @@
|
||||||
|
|
||||||
// for diffing
|
// for diffing
|
||||||
top.last = last;
|
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));
|
||||||
|
}
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue