fix: exception for short moves in contouring for safe Z

fix: jellybox device name
This commit is contained in:
Stewart Allen 2024-05-14 00:30:52 -04:00
commit 232ac76b98
7 changed files with 13 additions and 13 deletions

View file

@ -1,5 +1,5 @@
{
"deviceName": "IMADE3D JellyBOX 1 NO.4",
"deviceName": "IMADE3D JellyBOX 1 N0.4",
"bedWidth": 177,
"bedDepth": 155,
"maxHeight": 140,
@ -32,8 +32,6 @@
"G21 ;metric values",
"G90 ;absolute positioning",
"M107 ;start with the fan off",
"M190 S45 ;wait for the bed to reach 45C (for bed leveling)",
"M109 S180 ;wait for the extruder to reach 180C (for bed leveling)",
";",
"; === Homing and bed leveling (if necessary)",
";",

View file

@ -32,8 +32,6 @@
"G21 ;metric values",
"G90 ;absolute positioning",
"M107 ;start with the fan off",
"M190 S45 ;wait for the bed to reach 45C (for bed leveling)",
"M109 S180 ;wait for the extruder to reach 180C (for bed leveling)",
";",
"; === Homing and bed leveling (if necessary)",
";",

View file

@ -32,8 +32,6 @@
"G21 ;metric values",
"G90 ;absolute positioning",
"M107 ;start with the fan off",
"M190 S45 ;wait for the bed to reach 45C (for bed leveling)",
"M109 S180 ;wait for the extruder to reach 180C (for bed leveling)",
";",
"; === Homing and bed leveling (if necessary)",
";",

View file

@ -32,8 +32,6 @@
"G21 ;metric values",
"G90 ;absolute positioning",
"M107 ;start with the fan off",
"M190 S45 ;wait for the bed to reach 45C (for bed leveling)",
"M109 S180 ;wait for the extruder to reach 180C (for bed leveling)",
";",
"; === Homing and bed leveling (if necessary)",
";",

View file

@ -32,8 +32,6 @@
"G21 ;metric values",
"G90 ;absolute positioning",
"M107 ;start with the fan off",
"M190 S45 ;wait for the bed to reach 45C (for bed leveling)",
"M109 S180 ;wait for the extruder to reach 180C (for bed leveling)",
";",
"; === Homing and bed leveling (if necessary)",
";",

View file

@ -1421,11 +1421,15 @@ class OpPocket extends CamOp {
prepare(ops, progress) {
let { op, state, sliceOut } = this;
let { setTool, setSpindle } = ops;
let { setTool, setSpindle, setTolerance } = ops;
setTool(op.tool, op.rate);
setSpindle(op.spindle);
if (this.topo) {
setTolerance(this.topo.tolerance);
}
let i=0, l=sliceOut.length;
for (let slice of sliceOut.filter(s => s.camLines)) {
ops.emitTrace(slice);

View file

@ -100,6 +100,7 @@ function prepEach(widget, settings, print, firstPoint, update) {
layerOut = [],
printPoint,
isNewMode,
isContour,
isRough,
isLathe,
tool,
@ -151,6 +152,10 @@ function prepEach(widget, settings, print, firstPoint, update) {
// non-zero means contouring
function setTolerance(dist) {
tolerance = dist;
if (isContour) {
// avoid moves to safe Z when contouring short steps
toolDiamMove = currentOp.step * toolDiam * 1.5;
}
}
function setPrintPoint(point) {
@ -362,7 +367,7 @@ function prepEach(widget, settings, print, firstPoint, update) {
// for longer moves, check the terrain to see if we need to go up and over
const bigXY = (deltaXY > moveLen && !lasering);
const bigZ = (deltaZ > toolDiam/2 && deltaXY > tolerance);
const midZ = (tolerance && absDeltaZ >= tolerance) && currentOp.type !== 'contour';
const midZ = (tolerance && absDeltaZ >= tolerance) && !isContour;
if (bigXY || bigZ || midZ) {
let maxz = getZClearPath(
@ -476,6 +481,7 @@ function prepEach(widget, settings, print, firstPoint, update) {
currentOp = op.op;
isLathe = currentOp.type === 'lathe';
isRough = currentOp.type === 'rough';
isContour = currentOp.type === 'contour' || (currentOp.type === 'pocket' && currentOp.contour);
let weight = op.weight();
newLayer(op.op);
op.prepare(ops, (progress, message) => {