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, "bedWidth": 177,
"bedDepth": 155, "bedDepth": 155,
"maxHeight": 140, "maxHeight": 140,
@ -32,8 +32,6 @@
"G21 ;metric values", "G21 ;metric values",
"G90 ;absolute positioning", "G90 ;absolute positioning",
"M107 ;start with the fan off", "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)", "; === Homing and bed leveling (if necessary)",
";", ";",

View file

@ -32,8 +32,6 @@
"G21 ;metric values", "G21 ;metric values",
"G90 ;absolute positioning", "G90 ;absolute positioning",
"M107 ;start with the fan off", "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)", "; === Homing and bed leveling (if necessary)",
";", ";",

View file

@ -32,8 +32,6 @@
"G21 ;metric values", "G21 ;metric values",
"G90 ;absolute positioning", "G90 ;absolute positioning",
"M107 ;start with the fan off", "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)", "; === Homing and bed leveling (if necessary)",
";", ";",

View file

@ -32,8 +32,6 @@
"G21 ;metric values", "G21 ;metric values",
"G90 ;absolute positioning", "G90 ;absolute positioning",
"M107 ;start with the fan off", "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)", "; === Homing and bed leveling (if necessary)",
";", ";",

View file

@ -32,8 +32,6 @@
"G21 ;metric values", "G21 ;metric values",
"G90 ;absolute positioning", "G90 ;absolute positioning",
"M107 ;start with the fan off", "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)", "; === Homing and bed leveling (if necessary)",
";", ";",

View file

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

View file

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