zcalibrate: split init to organize and cleanup

This commit is contained in:
Alfredo Monclus
2024-06-21 14:31:05 -03:00
parent 85cbbdd240
commit 9a1e1bafa1

View File

@@ -15,12 +15,13 @@ class Panel(ScreenPanel):
def __init__(self, screen, title): def __init__(self, screen, title):
title = title or _("Z Calibrate") title = title or _("Z Calibrate")
super().__init__(screen, title) super().__init__(screen, title)
self.mesh_min = [] self.initialize_mesh_params()
self.mesh_max = [] self.initialize_probe_params()
self.mesh_radius = None self.setup_ui()
self.mesh_origin = [0, 0]
self.zero_ref = [] def initialize_mesh_params(self):
if "BED_MESH_CALIBRATE" in self._printer.available_commands: if "BED_MESH_CALIBRATE" not in self._printer.available_commands:
return
mesh = self._printer.get_config_section("bed_mesh") mesh = self._printer.get_config_section("bed_mesh")
if 'mesh_radius' in mesh: if 'mesh_radius' in mesh:
self.mesh_radius = float(mesh['mesh_radius']) self.mesh_radius = float(mesh['mesh_radius'])
@@ -35,12 +36,13 @@ class Panel(ScreenPanel):
if 'zero_reference_position' in self._printer.get_config_section("bed_mesh"): if 'zero_reference_position' in self._printer.get_config_section("bed_mesh"):
self.zero_ref = self._csv_to_array(mesh['zero_reference_position']) self.zero_ref = self._csv_to_array(mesh['zero_reference_position'])
def initialize_probe_params(self):
self.z_hop_speed = 15.0 self.z_hop_speed = 15.0
self.z_hop = 5.0 self.z_hop = 5.0
self.probe = self._printer.get_probe() self.probe = self._printer.get_probe()
if self.probe: if self.probe:
self.x_offset = float(self.probe['x_offset']) if "x_offset" in self.probe else 0.0 self.x_offset = float(self.probe.get('x_offset', 0.0))
self.y_offset = float(self.probe['y_offset']) if "y_offset" in self.probe else 0.0 self.y_offset = float(self.probe.get('y_offset', 0.0))
self.z_offset = float(self.probe['z_offset']) self.z_offset = float(self.probe['z_offset'])
if "sample_retract_dist" in self.probe: if "sample_retract_dist" in self.probe:
self.z_hop = float(self.probe['sample_retract_dist']) self.z_hop = float(self.probe['sample_retract_dist'])
@@ -51,20 +53,25 @@ class Panel(ScreenPanel):
self.y_offset = 0.0 self.y_offset = 0.0
self.z_offset = 0.0 self.z_offset = 0.0
logging.info(f"Offset X:{self.x_offset} Y:{self.y_offset} Z:{self.z_offset}") logging.info(f"Offset X:{self.x_offset} Y:{self.y_offset} Z:{self.z_offset}")
self.widgets['zposition'] = Gtk.Label(label="Z: ?")
def setup_ui(self):
self.widgets['zposition'] = Gtk.Label(label="Z: ?")
self.widgets['zoffset'] = Gtk.Label(label="?") self.widgets['zoffset'] = Gtk.Label(label="?")
pos = Gtk.Grid(row_homogeneous=True, column_homogeneous=True) pos = Gtk.Grid(row_homogeneous=True, column_homogeneous=True)
pos.attach(self.widgets['zposition'], 0, 1, 2, 1) pos.attach(self.widgets['zposition'], 0, 1, 2, 1)
if self.probe: if self.probe:
pos.attach(Gtk.Label(label=_("Probe Offset") + ": "), 0, 2, 2, 1) pos.attach(Gtk.Label(label=_("Probe Offset") + ": "), 0, 2, 2, 1)
pos.attach(Gtk.Label(label=_("Saved")), 0, 3, 1, 1) pos.attach(Gtk.Label(label=_("Saved")), 0, 3, 1, 1)
pos.attach(Gtk.Label(label=_("New")), 1, 3, 1, 1) pos.attach(Gtk.Label(label=_("New")), 1, 3, 1, 1)
pos.attach(Gtk.Label(label=f"{self.z_offset:.3f}"), 0, 4, 1, 1) pos.attach(Gtk.Label(label=f"{self.z_offset:.3f}"), 0, 4, 1, 1)
pos.attach(self.widgets['zoffset'], 1, 4, 1, 1) pos.attach(self.widgets['zoffset'], 1, 4, 1, 1)
for label in pos.get_children(): for label in pos.get_children():
if isinstance(label, Gtk.Label): if isinstance(label, Gtk.Label):
label.set_ellipsize(Pango.EllipsizeMode.END) label.set_ellipsize(Pango.EllipsizeMode.END)
self.buttons = { self.buttons = {
'zpos': self._gtk.Button('z-farther', _("Raise Nozzle"), 'color4'), 'zpos': self._gtk.Button('z-farther', _("Raise Nozzle"), 'color4'),
'zneg': self._gtk.Button('z-closer', _("Lower Nozzle"), 'color1'), 'zneg': self._gtk.Button('z-closer', _("Lower Nozzle"), 'color1'),
@@ -72,13 +79,18 @@ class Panel(ScreenPanel):
'complete': self._gtk.Button('complete', _('Accept'), 'color3'), 'complete': self._gtk.Button('complete', _('Accept'), 'color3'),
'cancel': self._gtk.Button('cancel', _('Abort'), 'color2'), 'cancel': self._gtk.Button('cancel', _('Abort'), 'color2'),
} }
self.buttons['zpos'].connect("clicked", self.move, "+") self.buttons['zpos'].connect("clicked", self.move, "+")
self.buttons['zneg'].connect("clicked", self.move, "-") self.buttons['zneg'].connect("clicked", self.move, "-")
self.buttons['complete'].connect("clicked", self.accept) self.buttons['complete'].connect("clicked", self.accept)
script = {"script": "ABORT"} script = {"script": "ABORT"}
self.buttons['cancel'].connect("clicked", self._screen._confirm_send_action, self.buttons['cancel'].connect(
_("Are you sure you want to stop the calibration?"), "clicked",
"printer.gcode.script", script) self._screen._confirm_send_action,
("Are you sure you want to stop the calibration?"),
"printer.gcode.script",
script
)
self.buttons['start'].connect("clicked", self.start_calibration) self.buttons['start'].connect("clicked", self.start_calibration)
self.dropdown = Gtk.ComboBox.new_with_model(self.set_commands()) self.dropdown = Gtk.ComboBox.new_with_model(self.set_commands())
@@ -110,29 +122,24 @@ class Panel(ScreenPanel):
grid = Gtk.Grid(column_homogeneous=True) grid = Gtk.Grid(column_homogeneous=True)
if self._screen.vertical_mode: if self._screen.vertical_mode:
if self._config.get_config()["main"].getboolean("invert_z", False): zpos_row, zneg_row = (2, 1) if self._config.get_config()["main"].getboolean("invert_z", False) else (1, 2)
grid.attach(self.buttons['zpos'], 0, 2, 1, 1) grid.attach(self.buttons['zpos'], 0, zpos_row, 1, 1)
grid.attach(self.buttons['zneg'], 0, 1, 1, 1) grid.attach(self.buttons['zneg'], 0, zneg_row, 1, 1)
else:
grid.attach(self.buttons['zpos'], 0, 1, 1, 1)
grid.attach(self.buttons['zneg'], 0, 2, 1, 1)
grid.attach(start_box, 0, 0, 1, 1) grid.attach(start_box, 0, 0, 1, 1)
grid.attach(pos, 1, 0, 1, 1) grid.attach(pos, 1, 0, 1, 1)
grid.attach(self.buttons['complete'], 1, 1, 1, 1) grid.attach(self.buttons['complete'], 1, 1, 1, 1)
grid.attach(self.buttons['cancel'], 1, 2, 1, 1) grid.attach(self.buttons['cancel'], 1, 2, 1, 1)
grid.attach(distances, 0, 3, 2, 1) grid.attach(distances, 0, 3, 2, 1)
else: else:
if self._config.get_config()["main"].getboolean("invert_z", False): zpos_row, zneg_row = (1, 0) if self._config.get_config()["main"].getboolean("invert_z", False) else (0, 1)
grid.attach(self.buttons['zpos'], 0, 1, 1, 1) grid.attach(self.buttons['zpos'], 0, zpos_row, 1, 1)
grid.attach(self.buttons['zneg'], 0, 0, 1, 1) grid.attach(self.buttons['zneg'], 0, zneg_row, 1, 1)
else:
grid.attach(self.buttons['zpos'], 0, 0, 1, 1)
grid.attach(self.buttons['zneg'], 0, 1, 1, 1)
grid.attach(start_box, 1, 0, 1, 1) grid.attach(start_box, 1, 0, 1, 1)
grid.attach(pos, 1, 1, 1, 1) grid.attach(pos, 1, 1, 1, 1)
grid.attach(self.buttons['complete'], 2, 0, 1, 1) grid.attach(self.buttons['complete'], 2, 0, 1, 1)
grid.attach(self.buttons['cancel'], 2, 1, 1, 1) grid.attach(self.buttons['cancel'], 2, 1, 1, 1)
grid.attach(distances, 0, 2, 3, 1) grid.attach(distances, 0, 2, 3, 1)
self.content.add(grid) self.content.add(grid)
def set_commands(self): def set_commands(self):