defer spindle speed update until after tool change
This commit is contained in:
parent
af4faf0c41
commit
03062aca12
2 changed files with 31 additions and 20 deletions
|
|
@ -9,6 +9,7 @@ Full docs @ https://docs.grid.space/projects/kiri-moto
|
||||||
## Kiri:moto
|
## Kiri:moto
|
||||||
|
|
||||||
* `C` added batch processing to object adds/removes to speedup complex workspace restore
|
* `C` added batch processing to object adds/removes to speedup complex workspace restore
|
||||||
|
* `C` fix CAM output order for tool changes an spindle speed updates
|
||||||
* `I` add CAM pocket operation using surface selection
|
* `I` add CAM pocket operation using surface selection
|
||||||
* `-` refactor cnc to use new core slicer engine
|
* `-` refactor cnc to use new core slicer engine
|
||||||
* `-` improve vertex replacement and widget update matrix tracking
|
* `-` improve vertex replacement and widget update matrix tracking
|
||||||
|
|
|
||||||
|
|
@ -33,6 +33,7 @@ CAM.export = function(print, online) {
|
||||||
factor = 1,
|
factor = 1,
|
||||||
output = [],
|
output = [],
|
||||||
spindle = 0,
|
spindle = 0,
|
||||||
|
newSpindle = 0,
|
||||||
origin = settings.origin || { x: 0, y: 0, z: 0 },
|
origin = settings.origin || { x: 0, y: 0, z: 0 },
|
||||||
space = device.gcodeSpace ? ' ' : '',
|
space = device.gcodeSpace ? ' ' : '',
|
||||||
isRML = device.gcodeFExt.toLowerCase() === 'rml',
|
isRML = device.gcodeFExt.toLowerCase() === 'rml',
|
||||||
|
|
@ -161,7 +162,18 @@ CAM.export = function(print, online) {
|
||||||
pos.t = out.tool;
|
pos.t = out.tool;
|
||||||
consts.tool = pos.t;
|
consts.tool = pos.t;
|
||||||
consts.tool_name = toolNameByNumber(out.tool);
|
consts.tool_name = toolNameByNumber(out.tool);
|
||||||
filterEmit(cmdToolChange, consts);
|
filterEmit(cmdToolChange, { ...consts, spindle: newSpindle } );
|
||||||
|
}
|
||||||
|
|
||||||
|
// on spindle change (deferred from layer transition so it's post-toolchange)
|
||||||
|
if (newSpindle && newSpindle !== spindle) {
|
||||||
|
spindle = newSpindle;
|
||||||
|
if (spindle > 0) {
|
||||||
|
let speed = Math.abs(spindle);
|
||||||
|
filterEmit(cmdSpindle, { speed, spindle: speed, rpm: speed });
|
||||||
|
} else {
|
||||||
|
append("M4");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// first point out sets the current position (but not Z)
|
// first point out sets the current position (but not Z)
|
||||||
|
|
@ -296,30 +308,28 @@ CAM.export = function(print, online) {
|
||||||
filterEmit(device.gcodePre, consts);
|
filterEmit(device.gcodePre, consts);
|
||||||
|
|
||||||
// emit all points in layer/point order
|
// emit all points in layer/point order
|
||||||
print.output.forEach(function (layerout) {
|
for (let layerout of print.output) {
|
||||||
if (mode !== layerout.mode) {
|
if (mode !== layerout.mode) {
|
||||||
if (mode && !stripComments) append("; ending " + mode + " op after " + Math.round(time/60) + " seconds");
|
if (mode && !stripComments) {
|
||||||
mode = layerout.mode;
|
append("; ending " + mode + " op after " + Math.round(time/60) + " seconds");
|
||||||
if (mode) section(`op-${opnum++}-${mode}`);
|
}
|
||||||
if (!stripComments) append("; starting " + mode + " op");
|
mode = layerout.mode;
|
||||||
}
|
if (mode) {
|
||||||
if (layerout.spindle && layerout.spindle !== spindle) {
|
section(`op-${opnum++}-${mode}`);
|
||||||
spindle = layerout.spindle;
|
}
|
||||||
if (spindle > 0) {
|
if (!stripComments) {
|
||||||
let speed = Math.abs(spindle);
|
append("; starting " + mode + " op");
|
||||||
filterEmit(cmdSpindle, {
|
|
||||||
speed, spindle: speed, rpm: speed
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
append("M4");
|
|
||||||
}
|
}
|
||||||
// append((spindle > 0 ? "M3" : "M4") + " S" + Math.abs(spindle));
|
|
||||||
}
|
}
|
||||||
layerout.forEach(function(out) {
|
newSpindle = layerout.spindle;
|
||||||
|
for (let out of layerout) {
|
||||||
moveTo(out);
|
moveTo(out);
|
||||||
});
|
}
|
||||||
});
|
}
|
||||||
if (mode && !stripComments) append("; ending " + mode + " op after " + Math.round(time/60) + " seconds");
|
|
||||||
|
if (mode && !stripComments) {
|
||||||
|
append("; ending " + mode + " op after " + Math.round(time/60) + " seconds");
|
||||||
|
}
|
||||||
|
|
||||||
// emit gcode post
|
// emit gcode post
|
||||||
section('footer');
|
section('footer');
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue