fdm gcode formatting
This commit is contained in:
parent
23d89bcfc4
commit
cd433e100e
2 changed files with 24 additions and 10 deletions
|
|
@ -815,6 +815,7 @@ let gs_kiri_fdm = exports;
|
||||||
append(`; Generated by Kiri:Moto ${exports.VERSION}`);
|
append(`; Generated by Kiri:Moto ${exports.VERSION}`);
|
||||||
append(`; ${new Date().toString()}`);
|
append(`; ${new Date().toString()}`);
|
||||||
appendSub("; Bed left:{left} right:{right} top:{top} bottom:{bottom}");
|
appendSub("; Bed left:{left} right:{right} top:{top} bottom:{bottom}");
|
||||||
|
append(`; Target: ${settings.filter[settings.mode]}`);
|
||||||
append("; --- process ---");
|
append("; --- process ---");
|
||||||
for (let pk in process) {
|
for (let pk in process) {
|
||||||
append("; " + pk + " = " + process[pk]);
|
append("; " + pk + " = " + process[pk]);
|
||||||
|
|
@ -830,6 +831,17 @@ let gs_kiri_fdm = exports;
|
||||||
if (line.indexOf('M83') >= 0) extrudeAbs = false; else
|
if (line.indexOf('M83') >= 0) extrudeAbs = false; else
|
||||||
if (line.indexOf('G90') >= 0) extrudeAbs = true; else
|
if (line.indexOf('G90') >= 0) extrudeAbs = true; else
|
||||||
if (line.indexOf('G91') >= 0) extrudeAbs = false; 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) {
|
if (extrudeAbs && line.indexOf('E') > 0) {
|
||||||
line.split(";")[0].split(' ').forEach(function (tok) {
|
line.split(";")[0].split(' ').forEach(function (tok) {
|
||||||
// use max E position from gcode-preamble
|
// use max E position from gcode-preamble
|
||||||
|
|
@ -848,14 +860,14 @@ let gs_kiri_fdm = exports;
|
||||||
|
|
||||||
function retract(zhop) {
|
function retract(zhop) {
|
||||||
retracted = retDist;
|
retracted = retDist;
|
||||||
moveTo({e:-retracted}, retSpeed, `retract ${retDist}`);
|
moveTo({e:-retracted}, retSpeed, `e-retract ${retDist}`);
|
||||||
if (zhop) moveTo({z:zpos + zhop}, seekMMM, "zhop up");
|
if (zhop) moveTo({z:zpos + zhop}, seekMMM, "z-hop start");
|
||||||
time += (retDist / retSpeed) * 60 * 2; // retraction time
|
time += (retDist / retSpeed) * 60 * 2; // retraction time
|
||||||
}
|
}
|
||||||
|
|
||||||
function moveTo(newpos, rate, comment) {
|
function moveTo(newpos, rate, comment) {
|
||||||
if (comment) {
|
if (comment) {
|
||||||
append(" ; " + comment);
|
append(";; " + comment);
|
||||||
}
|
}
|
||||||
let o = [!rate && !newpos.e ? 'G0' : 'G1'];
|
let o = [!rate && !newpos.e ? 'G0' : 'G1'];
|
||||||
if (typeof newpos.x === 'number') {
|
if (typeof newpos.x === 'number') {
|
||||||
|
|
@ -914,7 +926,7 @@ let gs_kiri_fdm = exports;
|
||||||
path.layer === 0 ?
|
path.layer === 0 ?
|
||||||
(process.firstSliceHeight || process.sliceHeight) : path.height);
|
(process.firstSliceHeight || process.sliceHeight) : path.height);
|
||||||
|
|
||||||
subst.z = zpos.toFixed(2);
|
subst.z = (zpos + path.height).toFixed(3);
|
||||||
subst.Z = subst.z;
|
subst.Z = subst.z;
|
||||||
subst.layer = layer;
|
subst.layer = layer;
|
||||||
subst.height = path.height.toFixed(3);
|
subst.height = path.height.toFixed(3);
|
||||||
|
|
@ -923,10 +935,10 @@ let gs_kiri_fdm = exports;
|
||||||
appendAllSub(pauseCmd)
|
appendAllSub(pauseCmd)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gcodeLayer) {
|
if (gcodeLayer && gcodeLayer.length) {
|
||||||
appendAllSub(gcodeLayer);
|
appendAllSub(gcodeLayer);
|
||||||
} else {
|
} else {
|
||||||
append(`; --- layer ${layer} (${subst.height} @ ${subst.z}) ---`);
|
append(`;; --- layer ${layer} (${subst.height} @ ${subst.z}) ---`);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (layer > 0 && process.layerRetract) {
|
if (layer > 0 && process.layerRetract) {
|
||||||
|
|
@ -1000,9 +1012,9 @@ let gs_kiri_fdm = exports;
|
||||||
// re-engage post-retraction before new extrusion
|
// re-engage post-retraction before new extrusion
|
||||||
if (out.emit && retracted) {
|
if (out.emit && retracted) {
|
||||||
// when enabled, resume previous Z
|
// 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
|
// re-engage retracted filament
|
||||||
moveTo({e:retracted}, retSpeed, `engage ${retracted}`);
|
moveTo({e:retracted}, retSpeed, `e-engage ${retracted}`);
|
||||||
retracted = 0;
|
retracted = 0;
|
||||||
// optional dwell after re-engaging filament to allow pressure to build
|
// optional dwell after re-engaging filament to allow pressure to build
|
||||||
if (retDwell) dwell(retDwell);
|
if (retDwell) dwell(retDwell);
|
||||||
|
|
@ -1050,7 +1062,7 @@ let gs_kiri_fdm = exports;
|
||||||
append("; --- shutdown ---");
|
append("; --- shutdown ---");
|
||||||
appendAllSub(device.gcodePost);
|
appendAllSub(device.gcodePost);
|
||||||
append(`; --- filament used: ${subst.material} mm ---`);
|
append(`; --- filament used: ${subst.material} mm ---`);
|
||||||
append(`; --- print time: ${time}s ---`);
|
append(`; --- print time: ${time.toFixed(0)}s ---`);
|
||||||
|
|
||||||
// force emit of buffer
|
// force emit of buffer
|
||||||
append();
|
append();
|
||||||
|
|
|
||||||
|
|
@ -1315,6 +1315,8 @@ self.kiri.copyright = exports.COPYRIGHT;
|
||||||
} else if (typ === 'textarea') {
|
} else if (typ === 'textarea') {
|
||||||
if (Array.isArray(val)) {
|
if (Array.isArray(val)) {
|
||||||
uie.value = val.join('\n');
|
uie.value = val.join('\n');
|
||||||
|
} else {
|
||||||
|
uie.value = '';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1355,7 +1357,7 @@ self.kiri.copyright = exports.COPYRIGHT;
|
||||||
nval = scope[key];
|
nval = scope[key];
|
||||||
}
|
}
|
||||||
} else if (uie.type === 'textarea') {
|
} else if (uie.type === 'textarea') {
|
||||||
nval = uie.value.trim().split('\n');
|
nval = uie.value.trim().split('\n').filter(v => v !== '');
|
||||||
} else {
|
} else {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue