add support for firmware retractions G10/G11 #fixes #114

This commit is contained in:
Stewart Allen 2021-02-28 21:18:43 -05:00
commit 36893a32aa
6 changed files with 25 additions and 2 deletions

View file

@ -261,6 +261,7 @@
bedHeight: 2.5, bedHeight: 2.5,
bedRound: false, bedRound: false,
bedBelt: false, bedBelt: false,
fwRetract: false,
originCenter: false, originCenter: false,
maxHeight: 150, maxHeight: 150,
gcodePre: [], gcodePre: [],

View file

@ -740,6 +740,7 @@
UI.deviceBelt.checked = dev.bedBelt; UI.deviceBelt.checked = dev.bedBelt;
UI.deviceRound.checked = dev.bedRound; UI.deviceRound.checked = dev.bedRound;
UI.deviceOrigin.checked = dev.outputOriginCenter || dev.originCenter; UI.deviceOrigin.checked = dev.outputOriginCenter || dev.originCenter;
UI.fwRetract.checked = dev.fwRetract;
// add extruder selection buttons // add extruder selection buttons
if (dev.extruders) { if (dev.extruders) {
@ -781,6 +782,7 @@
UI.deviceOrigin, UI.deviceOrigin,
UI.deviceRound, UI.deviceRound,
UI.deviceBelt, UI.deviceBelt,
UI.fwRetract,
UI.gcodeFan, UI.gcodeFan,
UI.gcodeTrack, UI.gcodeTrack,
UI.gcodeLayer, UI.gcodeLayer,
@ -1586,6 +1588,7 @@
deviceOrigin: UC.newBoolean(LANG.dv_orgc_s, onBooleanClick, {title:LANG.dv_orgc_l, modes:FDM_LASER_SLA}), deviceOrigin: UC.newBoolean(LANG.dv_orgc_s, onBooleanClick, {title:LANG.dv_orgc_l, modes:FDM_LASER_SLA}),
deviceRound: UC.newBoolean(LANG.dv_bedc_s, onBooleanClick, {title:LANG.dv_bedc_l, modes:FDM, trigger:true, show:isNotBelt}), deviceRound: UC.newBoolean(LANG.dv_bedc_s, onBooleanClick, {title:LANG.dv_bedc_l, modes:FDM, trigger:true, show:isNotBelt}),
deviceBelt: UC.newBoolean(LANG.dv_belt_s, onBooleanClick, {title:LANG.dv_belt_l, modes:FDM, trigger:true, show:() => !UI.deviceRound.checked}), deviceBelt: UC.newBoolean(LANG.dv_belt_s, onBooleanClick, {title:LANG.dv_belt_l, modes:FDM, trigger:true, show:() => !UI.deviceRound.checked}),
fwRetract: UC.newBoolean(LANG.dv_retr_s, onBooleanClick, {title:LANG.dv_retr_l, modes:FDM}),
extruder: UC.newGroup(LANG.dv_gr_ext, $('device2'), {group:"dext", inline:true, modes:FDM}), extruder: UC.newGroup(LANG.dv_gr_ext, $('device2'), {group:"dext", inline:true, modes:FDM}),
extFilament: UC.newInput(LANG.dv_fila_s, {title:LANG.dv_fila_l, convert:UC.toFloat, modes:FDM}), extFilament: UC.newInput(LANG.dv_fila_s, {title:LANG.dv_fila_l, convert:UC.toFloat, modes:FDM}),

View file

@ -2224,6 +2224,7 @@
settings.device.bedBelt = UI.deviceBelt.checked; settings.device.bedBelt = UI.deviceBelt.checked;
settings.device.bedRound = UI.deviceRound.checked; settings.device.bedRound = UI.deviceRound.checked;
settings.device.originCenter = UI.deviceOrigin.checked; settings.device.originCenter = UI.deviceOrigin.checked;
settings.device.fwRetract = UI.fwRetract.checked;
SDB.setItem('ws-settings', JSON.stringify(settings)); SDB.setItem('ws-settings', JSON.stringify(settings));
API.event.emit('settings.saved', settings); API.event.emit('settings.saved', settings);
} }

View file

@ -348,6 +348,13 @@
pos[tok.charAt(0)] = parseFloat(tok.substring(1)); pos[tok.charAt(0)] = parseFloat(tok.substring(1));
}); });
break; break;
case 'G10':
console.log('retract');
seq.last().retract = true;
break;
case 'G11':
console.log('unretract');
break;
case 'G0': case 'G0':
G0G1(true, line); G0G1(true, line);
break; break;

View file

@ -22,6 +22,7 @@
gcodeLayer = device.gcodeLayer, gcodeLayer = device.gcodeLayer,
gcodeTrack = device.gcodeTrack, gcodeTrack = device.gcodeTrack,
tool = 0, tool = 0,
fwRetract = device.fwRetract,
isDanger = settings.controller.danger, isDanger = settings.controller.danger,
isBelt = device.bedBelt, isBelt = device.bedBelt,
bedType = isBelt ? "belt" : "fixed", bedType = isBelt ? "belt" : "fixed",
@ -238,7 +239,11 @@
return; return;
} }
retracted = retDist; retracted = retDist;
moveTo({e:-retracted}, retSpeed, `e-retract ${retDist}`); if (fwRetract) {
append('G10');
} else {
moveTo({e:-retracted}, retSpeed, `e-retract ${retDist}`);
}
if (zhop) moveTo({z:zpos + zhop}, seekMMM, "z-hop start"); if (zhop) moveTo({z:zpos + zhop}, seekMMM, "z-hop start");
time += (retDist / retSpeed) * 60 * 2; // retraction time time += (retDist / retSpeed) * 60 * 2; // retraction time
} }
@ -440,7 +445,11 @@
// when enabled, resume previous Z // when enabled, resume previous Z
if (zhop && pos.z != zpos) moveTo({z:zpos}, seekMMM, "z-hop end"); if (zhop && pos.z != zpos) moveTo({z:zpos}, seekMMM, "z-hop end");
// re-engage retracted filament // re-engage retracted filament
moveTo({e:retracted}, retSpeed, `e-engage ${retracted}`); if (fwRetract) {
append('G11');
} else {
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);

View file

@ -102,6 +102,8 @@ kiri.lang['en-us'] = {
dv_bedc_l: "device bed is circular", dv_bedc_l: "device bed is circular",
dv_belt_s: "belt bed", dv_belt_s: "belt bed",
dv_belt_l: "continuous printing bed", dv_belt_l: "continuous printing bed",
dv_retr_s: "firmware retract",
dv_retr_l: ["device fimware supports G10/G11"],
dv_fanp_s: "fan power", dv_fanp_s: "fan power",
dv_fanp_l: "set cooling fan power", dv_fanp_l: "set cooling fan power",
dv_prog_s: "progress", dv_prog_s: "progress",