Support Manual Mesh calibration (#388)

* Bed_mesh: Home if not homed

* Bed_mesh: support manual bed mesh leveling

* Indentation Fix

* Change log string to represent current behaviour
This commit is contained in:
Alfredo Monclus 2022-01-03 03:29:01 -03:00 committed by GitHub
parent ce872a54b1
commit 9d3a6c7538
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 37 additions and 25 deletions

View File

@ -197,10 +197,16 @@ class BedMeshPanel(ScreenPanel):
self.remove_create()
def calibrate_mesh(self, widget):
if self._screen.printer.get_stat("toolhead", "homed_axes") != "xyz":
self._screen._ws.klippy.gcode_script(KlippyGcodes.HOME)
self._screen._ws.klippy.gcode_script(
"BED_MESH_CALIBRATE"
)
if not (self._printer.config_section_exists("probe") or self._printer.config_section_exists("bltouch")):
self.menu_item_clicked(widget, "refresh", {"name": "Mesh calibrate", "panel": "zcalibrate"})
def load_meshes(self):
bm_profiles = self._screen.printer.get_config_section_list("bed_mesh ")
self.profiles = {}

View File

@ -32,20 +32,17 @@ class ZCalibratePanel(ScreenPanel):
pos.add(label)
pos.add(self.widgets['zposition'])
self.widgets['zpos'] = self._gtk.ButtonImage('z-farther', _("Raise Nozzle"))
self.widgets['zpos'] = self._gtk.ButtonImage('z-farther', _("Raise Nozzle"), 'color4')
self.widgets['zpos'].connect("clicked", self.move, "+")
self.widgets['zpos'].set_sensitive(False)
self.widgets['zneg'] = self._gtk.ButtonImage('z-closer', _("Lower Nozzle"))
self.widgets['zneg'] = self._gtk.ButtonImage('z-closer', _("Lower Nozzle"), 'color1')
self.widgets['zneg'].connect("clicked", self.move, "-")
self.widgets['zneg'].set_sensitive(False)
self.widgets['start'] = self._gtk.ButtonImage('resume', _("Start"), 'color3')
self.widgets['start'].connect("clicked", self.start_calibration)
self.widgets['complete'] = self._gtk.ButtonImage('complete', _('Accept'))
self.widgets['complete'] = self._gtk.ButtonImage('complete', _('Accept'), 'color3')
self.widgets['complete'].connect("clicked", self.accept)
self.widgets['complete'].set_sensitive(False)
cancel = self._gtk.ButtonImage('cancel', _('Abort'), 'color2')
cancel.connect("clicked", self.abort)
self.widgets['cancel'] = self._gtk.ButtonImage('cancel', _('Abort'), 'color2')
self.widgets['cancel'].connect("clicked", self.abort)
distgrid = Gtk.Grid()
j = 0
@ -79,7 +76,7 @@ class ZCalibratePanel(ScreenPanel):
grid.attach(self.widgets['zneg'], 0, 1, 1, 1)
grid.attach(self.widgets['complete'], 2, 0, 1, 1)
grid.attach(distances, 0, 2, 3, 1)
grid.attach(cancel, 2, 1, 1, 1)
grid.attach(self.widgets['cancel'], 2, 1, 1, 1)
self.content.add(grid)
@ -98,14 +95,6 @@ class ZCalibratePanel(ScreenPanel):
else:
self._screen._ws.klippy.gcode_script(KlippyGcodes.Z_ENDSTOP_CALIBRATE)
self.widgets['start'].get_style_context().remove_class('color3')
self.widgets['zpos'].set_sensitive(True)
self.widgets['zpos'].get_style_context().add_class('color4')
self.widgets['zneg'].set_sensitive(True)
self.widgets['zneg'].get_style_context().add_class('color1')
self.widgets['complete'].set_sensitive(True)
self.widgets['complete'].get_style_context().add_class('color3')
def process_update(self, action, data):
if action != "notify_status_update":
return
@ -137,20 +126,37 @@ class ZCalibratePanel(ScreenPanel):
self._screen._ws.klippy.gcode_script(KlippyGcodes.testz_move(dist))
def abort(self, widget):
logging.info("Aborting Z calibrate")
logging.info("Aborting calibration")
self._screen._ws.klippy.gcode_script(KlippyGcodes.ABORT)
self.menu_return(widget)
def accept(self, widget):
logging.info("Accepting Z position")
self._screen._ws.klippy.gcode_script(KlippyGcodes.ACCEPT)
# We need to track if the machine is calibrating or not to activate the appropriate buttons
def buttons_calibrating(self):
self.widgets['start'].get_style_context().remove_class('color3')
self.widgets['start'].set_sensitive(False)
self.widgets['zpos'].set_sensitive(True)
self.widgets['zpos'].get_style_context().add_class('color4')
self.widgets['zneg'].set_sensitive(True)
self.widgets['zneg'].get_style_context().add_class('color1')
self.widgets['complete'].set_sensitive(True)
self.widgets['complete'].get_style_context().add_class('color3')
self.widgets['cancel'].set_sensitive(True)
self.widgets['cancel'].get_style_context().add_class('color2')
def buttons_not_calibrating(self):
self.widgets['start'].get_style_context().add_class('color3')
self.widgets['start'].set_sensitive(True)
self.widgets['zpos'].set_sensitive(False)
self.widgets['zpos'].get_style_context().remove_class('color4')
self.widgets['zneg'].set_sensitive(False)
self.widgets['zneg'].get_style_context().remove_class('color1')
self.widgets['complete'].set_sensitive(False)
self.widgets['complete'].get_style_context().remove_class('color3')
self.menu_return(widget)
def accept(self, widget):
logging.info("Accepting Z calibrate")
self._screen._ws.klippy.gcode_script(KlippyGcodes.ACCEPT)
self.menu_return(widget)
self.widgets['cancel'].set_sensitive(False)
self.widgets['cancel'].get_style_context().remove_class('color2')