fdm gcode formatting

This commit is contained in:
Stewart Allen 2020-04-19 19:09:13 -04:00
commit cd433e100e
2 changed files with 24 additions and 10 deletions

View file

@ -815,6 +815,7 @@ let gs_kiri_fdm = exports;
append(`; Generated by Kiri:Moto ${exports.VERSION}`);
append(`; ${new Date().toString()}`);
appendSub("; Bed left:{left} right:{right} top:{top} bottom:{bottom}");
append(`; Target: ${settings.filter[settings.mode]}`);
append("; --- process ---");
for (let pk in process) {
append("; " + pk + " = " + process[pk]);
@ -830,6 +831,17 @@ let gs_kiri_fdm = exports;
if (line.indexOf('M83') >= 0) extrudeAbs = false; else
if (line.indexOf('G90') >= 0) extrudeAbs = true; else
if (line.indexOf('G91') >= 0) extrudeAbs = false; else
if (line.indexOf('G92') === 0) {
line.split(";")[0].split(' ').forEach(function (tok) {
let val = parseFloat(tok.substring(1) || 0) || 0;
switch (tok[0]) {
case 'X': pos.x = val; break;
case 'Y': pos.y = val; break;
case 'Z': pos.z = val; break;
case 'E': outputLength = val; break;
}
});
}
if (extrudeAbs && line.indexOf('E') > 0) {
line.split(";")[0].split(' ').forEach(function (tok) {
// use max E position from gcode-preamble
@ -848,14 +860,14 @@ let gs_kiri_fdm = exports;
function retract(zhop) {
retracted = retDist;
moveTo({e:-retracted}, retSpeed, `retract ${retDist}`);
if (zhop) moveTo({z:zpos + zhop}, seekMMM, "zhop up");
moveTo({e:-retracted}, retSpeed, `e-retract ${retDist}`);
if (zhop) moveTo({z:zpos + zhop}, seekMMM, "z-hop start");
time += (retDist / retSpeed) * 60 * 2; // retraction time
}
function moveTo(newpos, rate, comment) {
if (comment) {
append(" ; " + comment);
append(";; " + comment);
}
let o = [!rate && !newpos.e ? 'G0' : 'G1'];
if (typeof newpos.x === 'number') {
@ -914,7 +926,7 @@ let gs_kiri_fdm = exports;
path.layer === 0 ?
(process.firstSliceHeight || process.sliceHeight) : path.height);
subst.z = zpos.toFixed(2);
subst.z = (zpos + path.height).toFixed(3);
subst.Z = subst.z;
subst.layer = layer;
subst.height = path.height.toFixed(3);
@ -923,10 +935,10 @@ let gs_kiri_fdm = exports;
appendAllSub(pauseCmd)
}
if (gcodeLayer) {
if (gcodeLayer && gcodeLayer.length) {
appendAllSub(gcodeLayer);
} else {
append(`; --- layer ${layer} (${subst.height} @ ${subst.z}) ---`);
append(`;; --- layer ${layer} (${subst.height} @ ${subst.z}) ---`);
}
if (layer > 0 && process.layerRetract) {
@ -1000,9 +1012,9 @@ let gs_kiri_fdm = exports;
// re-engage post-retraction before new extrusion
if (out.emit && retracted) {
// when enabled, resume previous Z
if (zhop && pos.z != zpos) moveTo({z:zpos}, seekMMM, "zhop down");
if (zhop && pos.z != zpos) moveTo({z:zpos}, seekMMM, "z-hop end");
// re-engage retracted filament
moveTo({e:retracted}, retSpeed, `engage ${retracted}`);
moveTo({e:retracted}, retSpeed, `e-engage ${retracted}`);
retracted = 0;
// optional dwell after re-engaging filament to allow pressure to build
if (retDwell) dwell(retDwell);
@ -1050,7 +1062,7 @@ let gs_kiri_fdm = exports;
append("; --- shutdown ---");
appendAllSub(device.gcodePost);
append(`; --- filament used: ${subst.material} mm ---`);
append(`; --- print time: ${time}s ---`);
append(`; --- print time: ${time.toFixed(0)}s ---`);
// force emit of buffer
append();