Skip to content

Commit

Permalink
feat: add buttons for PURGE_FILAMENT and CLEAN_NOZZLE (#1641)
Browse files Browse the repository at this point in the history
  • Loading branch information
meteyou authored Nov 6, 2023
1 parent 3666e29 commit 6ed57fc
Show file tree
Hide file tree
Showing 3 changed files with 48 additions and 0 deletions.
44 changes: 44 additions & 0 deletions src/components/panels/ExtruderControlPanel.vue
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,32 @@
</span>
</v-tooltip>
</v-list-item>
<!-- FILAMENT PURGE -->
<v-list-item v-if="purgeFilamentMacro">
<v-tooltip top :disabled="canExecutePurgeMacro" color="secondary">
<template #activator="{ on }">
<div v-on="on">
<macro-button
:macro="purgeFilamentMacro"
:alias="$t('Panels.ExtruderControlPanel.PurgeFilament')"
:disabled="!canExecutePurgeMacro || printerIsPrintingOnly"
color="#272727" />
</div>
</template>
<span>
{{ $t('Panels.ExtruderControlPanel.ExtruderTempTooLow') }}
{{ minExtrudeTemp }} °C
</span>
</v-tooltip>
</v-list-item>
<!-- NOZZLE CLEAN -->
<v-list-item v-if="cleanNozzleMacro">
<macro-button
:macro="cleanNozzleMacro"
:alias="$t('Panels.ExtruderControlPanel.CleanNozzle')"
:disabled="printerIsPrintingOnly"
color="#272727" />
</v-list-item>
</v-list>
</v-menu>
</template>
Expand Down Expand Up @@ -110,6 +136,18 @@ export default class ExtruderControlPanel extends Mixins(BaseMixin, ControlMixin
return this.macros.find((macro: PrinterStateMacro) => macros.includes(macro.name.toUpperCase()))
}
get purgeFilamentMacro(): PrinterStateMacro | undefined {
const macros = ['PURGE_FILAMENT', 'FILAMENT_PURGE']
return this.macros.find((macro: PrinterStateMacro) => macros.includes(macro.name.toUpperCase()))
}
get cleanNozzleMacro(): PrinterStateMacro | undefined {
const macros = ['CLEAN_NOZZLE', 'NOZZLE_CLEAN', 'WIPE_NOZZLE', 'NOZZLE_WIPE']
return this.macros.find((macro: PrinterStateMacro) => macros.includes(macro.name.toUpperCase()))
}
/**
* test if the load and unload macro include specific keywords. if true, we allow
* execution of that macro even if at the current time extrudePossible === false
Expand All @@ -126,6 +164,12 @@ export default class ExtruderControlPanel extends Mixins(BaseMixin, ControlMixin
return this.heatWaitGcodes.some((gcode) => this.unloadFilamentMacro?.prop.gcode.includes(gcode))
}
get canExecutePurgeMacro(): boolean {
if (this.extrudePossible) return true
return this.heatWaitGcodes.some((gcode) => this.purgeFilamentMacro?.prop.gcode.includes(gcode))
}
get showFilamentMacros(): boolean {
return this.loadFilamentMacro !== undefined || this.unloadFilamentMacro !== undefined
}
Expand Down
2 changes: 2 additions & 0 deletions src/locales/de.json
Original file line number Diff line number Diff line change
Expand Up @@ -536,6 +536,7 @@
"Panels": {
"ExtruderControlPanel": {
"Allowed": "Erlaubt",
"CleanNozzle": "Düse reinigen",
"EstimatedExtrusion": "Extrusion:",
"Extrude": "Extrudieren",
"ExtruderTempTooLow": "Extruder Temp. <",
Expand All @@ -555,6 +556,7 @@
"Extruder": "Extruder",
"SmoothTime": "Smooth Time"
},
"PurgeFilament": "Filament reinigen",
"Requested": "Angefordert",
"Retract": "Rückzug",
"TooLargeExtrusion": "Extrusion zu groß!",
Expand Down
2 changes: 2 additions & 0 deletions src/locales/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -536,6 +536,7 @@
"Panels": {
"ExtruderControlPanel": {
"Allowed": "Allowed",
"CleanNozzle": "Clean Nozzle",
"EstimatedExtrusion": "Extrusion:",
"Extrude": "Extrude",
"ExtruderTempTooLow": "Extruder temp. <",
Expand All @@ -555,6 +556,7 @@
"Extruder": "Extruder",
"SmoothTime": "Smooth Time"
},
"PurgeFilament": "Purge Filament",
"Requested": "Requested",
"Retract": "Retract",
"TooLargeExtrusion": "Extrusion too large!",
Expand Down

0 comments on commit 6ed57fc

Please sign in to comment.