feat: automatic selection of the gcode offset save gcode (#1531)
This commit is contained in:
@@ -27,11 +27,7 @@
|
|||||||
<span v-if="!el.is.xsmall" class="ml-1">{{ $t('Panels.ZoffsetPanel.Clear') }}</span>
|
<span v-if="!el.is.xsmall" class="ml-1">{{ $t('Panels.ZoffsetPanel.Clear') }}</span>
|
||||||
</v-btn>
|
</v-btn>
|
||||||
<v-btn
|
<v-btn
|
||||||
v-if="
|
v-if="showSaveButton"
|
||||||
z_gcode_offset !== 0 &&
|
|
||||||
((existZOffsetApplyProbe && !existZOffsetApplyEndstop) ||
|
|
||||||
(!existZOffsetApplyProbe && existZOffsetApplyEndstop))
|
|
||||||
"
|
|
||||||
color="primary"
|
color="primary"
|
||||||
text
|
text
|
||||||
small
|
small
|
||||||
@@ -41,31 +37,6 @@
|
|||||||
<v-icon small>{{ mdiContentSave }}</v-icon>
|
<v-icon small>{{ mdiContentSave }}</v-icon>
|
||||||
<span v-if="!el.is.xsmall" class="ml-1">{{ $t('Panels.ZoffsetPanel.Save') }}</span>
|
<span v-if="!el.is.xsmall" class="ml-1">{{ $t('Panels.ZoffsetPanel.Save') }}</span>
|
||||||
</v-btn>
|
</v-btn>
|
||||||
<v-menu v-else-if="z_gcode_offset !== 0" offset-y left :close-on-content-click="false">
|
|
||||||
<template #activator="{ on, attrs }">
|
|
||||||
<v-btn plain text small color="primary" v-bind="attrs" class="pl-2 pr-0" v-on="on">
|
|
||||||
<v-icon small>{{ mdiContentSave }}</v-icon>
|
|
||||||
<span v-if="!el.is.xsmall" class="ml-1">
|
|
||||||
{{ $t('Panels.ZoffsetPanel.Save') }}
|
|
||||||
</span>
|
|
||||||
<v-icon small>{{ mdiMenuDown }}</v-icon>
|
|
||||||
</v-btn>
|
|
||||||
</template>
|
|
||||||
<v-list dense>
|
|
||||||
<v-list-item>
|
|
||||||
<v-btn small style="width: 100%" @click="saveZOffsetToEndstop">
|
|
||||||
<v-icon left small>{{ mdiElectricSwitch }}</v-icon>
|
|
||||||
{{ $t('Panels.ZoffsetPanel.ToEndstop') }}
|
|
||||||
</v-btn>
|
|
||||||
</v-list-item>
|
|
||||||
<v-list-item>
|
|
||||||
<v-btn small style="width: 100%" @click="saveZOffsetToProbe">
|
|
||||||
<v-icon left small>{{ mdiElevator }}</v-icon>
|
|
||||||
{{ $t('Panels.ZoffsetPanel.ToProbe') }}
|
|
||||||
</v-btn>
|
|
||||||
</v-list-item>
|
|
||||||
</v-list>
|
|
||||||
</v-menu>
|
|
||||||
</div>
|
</div>
|
||||||
</v-col>
|
</v-col>
|
||||||
</v-row>
|
</v-row>
|
||||||
@@ -123,7 +94,7 @@
|
|||||||
|
|
||||||
<v-dialog v-model="saveOffsetDialog" max-width="290">
|
<v-dialog v-model="saveOffsetDialog" max-width="290">
|
||||||
<panel
|
<panel
|
||||||
:title="$t('Panels.ZoffsetPanel.SaveInfoHeadline').toString()"
|
:title="$t('Panels.ZoffsetPanel.SaveInfoHeadline')"
|
||||||
:icon="mdiInformation"
|
:icon="mdiInformation"
|
||||||
card-class="zoffset-saveinfo-dialog"
|
card-class="zoffset-saveinfo-dialog"
|
||||||
:margin-bottom="false">
|
:margin-bottom="false">
|
||||||
@@ -160,12 +131,9 @@ import Responsive from '@/components/ui/Responsive.vue'
|
|||||||
|
|
||||||
import {
|
import {
|
||||||
mdiBroom,
|
mdiBroom,
|
||||||
mdiElectricSwitch,
|
|
||||||
mdiElevator,
|
|
||||||
mdiContentSave,
|
mdiContentSave,
|
||||||
mdiArrowCollapseDown,
|
mdiArrowCollapseDown,
|
||||||
mdiInformation,
|
mdiInformation,
|
||||||
mdiMenuDown,
|
|
||||||
mdiArrowExpandUp,
|
mdiArrowExpandUp,
|
||||||
mdiLayersOutline,
|
mdiLayersOutline,
|
||||||
} from '@mdi/js'
|
} from '@mdi/js'
|
||||||
@@ -174,16 +142,13 @@ import {
|
|||||||
})
|
})
|
||||||
export default class ZoffsetControl extends Mixins(BaseMixin) {
|
export default class ZoffsetControl extends Mixins(BaseMixin) {
|
||||||
mdiBroom = mdiBroom
|
mdiBroom = mdiBroom
|
||||||
mdiElectricSwitch = mdiElectricSwitch
|
|
||||||
mdiElevator = mdiElevator
|
|
||||||
mdiContentSave = mdiContentSave
|
mdiContentSave = mdiContentSave
|
||||||
mdiArrowCollapseDown = mdiArrowCollapseDown
|
mdiArrowCollapseDown = mdiArrowCollapseDown
|
||||||
mdiInformation = mdiInformation
|
mdiInformation = mdiInformation
|
||||||
mdiMenuDown = mdiMenuDown
|
|
||||||
mdiArrowExpandUp = mdiArrowExpandUp
|
mdiArrowExpandUp = mdiArrowExpandUp
|
||||||
mdiLayersOutline = mdiLayersOutline
|
mdiLayersOutline = mdiLayersOutline
|
||||||
|
|
||||||
private saveOffsetDialog = false
|
saveOffsetDialog = false
|
||||||
|
|
||||||
get homing_origin() {
|
get homing_origin() {
|
||||||
return this.$store.state.printer?.gcode_move?.homing_origin ?? []
|
return this.$store.state.printer?.gcode_move?.homing_origin ?? []
|
||||||
@@ -198,13 +163,37 @@ export default class ZoffsetControl extends Mixins(BaseMixin) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
get homed_axis() {
|
get homed_axis() {
|
||||||
return this.$store.state.printer.toolhead.homed_axes ?? ''
|
return this.$store.state.printer.toolhead?.homed_axes ?? ''
|
||||||
}
|
}
|
||||||
|
|
||||||
get helplist() {
|
get helplist() {
|
||||||
return this.$store.state.printer.helplist ?? []
|
return this.$store.state.printer.helplist ?? []
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get settings() {
|
||||||
|
return this.$store.state.printer.configfile?.settings ?? {}
|
||||||
|
}
|
||||||
|
|
||||||
|
get kinematics() {
|
||||||
|
return this.settings.printer?.kinematics ?? 'cartesian'
|
||||||
|
}
|
||||||
|
|
||||||
|
get stepper_name() {
|
||||||
|
if (this.kinematics === 'delta') return 'stepper_a'
|
||||||
|
|
||||||
|
return 'stepper_z'
|
||||||
|
}
|
||||||
|
|
||||||
|
get endstop_pin() {
|
||||||
|
const stepperConfig = this.settings[this.stepper_name] ?? {}
|
||||||
|
|
||||||
|
return stepperConfig?.endstop_pin
|
||||||
|
}
|
||||||
|
|
||||||
|
get isEndstopProbe() {
|
||||||
|
return this.endstop_pin.search('probe:z_virtual_endstop') !== -1
|
||||||
|
}
|
||||||
|
|
||||||
get existZOffsetApplyProbe() {
|
get existZOffsetApplyProbe() {
|
||||||
return this.helplist.findIndex((gcode: CommandHelp) => gcode.commandLow === 'z_offset_apply_probe') !== -1
|
return this.helplist.findIndex((gcode: CommandHelp) => gcode.commandLow === 'z_offset_apply_probe') !== -1
|
||||||
}
|
}
|
||||||
@@ -217,6 +206,17 @@ export default class ZoffsetControl extends Mixins(BaseMixin) {
|
|||||||
return this.$store.state.printer?.gcode_move?.homing_origin[2].toFixed(3)
|
return this.$store.state.printer?.gcode_move?.homing_origin[2].toFixed(3)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get showSaveButton() {
|
||||||
|
// hide button when offset is 0
|
||||||
|
if (this.z_gcode_offset === 0) return false
|
||||||
|
|
||||||
|
// show button when z endstop is probe and probe gcode exists
|
||||||
|
if (this.isEndstopProbe && this.existZOffsetApplyProbe) return true
|
||||||
|
|
||||||
|
// show button when z endstop is endstop and endstop gcode exists
|
||||||
|
return !this.isEndstopProbe && this.existZOffsetApplyEndstop
|
||||||
|
}
|
||||||
|
|
||||||
sendBabyStepDown(offset: number): void {
|
sendBabyStepDown(offset: number): void {
|
||||||
const gcode = `SET_GCODE_OFFSET Z_ADJUST=-${offset} ${this.homed_axis === 'xyz' ? 'MOVE=1' : ''}`
|
const gcode = `SET_GCODE_OFFSET Z_ADJUST=-${offset} ${this.homed_axis === 'xyz' ? 'MOVE=1' : ''}`
|
||||||
this.$store.dispatch('server/addEvent', { message: gcode, type: 'command' })
|
this.$store.dispatch('server/addEvent', { message: gcode, type: 'command' })
|
||||||
@@ -236,12 +236,12 @@ export default class ZoffsetControl extends Mixins(BaseMixin) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
saveZOffset(): void {
|
saveZOffset(): void {
|
||||||
if (this.existZOffsetApplyProbe && !this.existZOffsetApplyEndstop) {
|
if (this.isEndstopProbe && this.existZOffsetApplyProbe) {
|
||||||
this.saveZOffsetToProbe()
|
this.saveZOffsetToProbe()
|
||||||
|
return
|
||||||
}
|
}
|
||||||
if (!this.existZOffsetApplyProbe && this.existZOffsetApplyEndstop) {
|
|
||||||
this.saveZOffsetToEndstop()
|
this.saveZOffsetToEndstop()
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
saveZOffsetToEndstop(): void {
|
saveZOffsetToEndstop(): void {
|
||||||
|
Reference in New Issue
Block a user