diff --git a/src/asmcnc/apps/drywall_cutter_app/config/config_loader.py b/src/asmcnc/apps/drywall_cutter_app/config/config_loader.py index c6cbcaeee..8f92411b7 100644 --- a/src/asmcnc/apps/drywall_cutter_app/config/config_loader.py +++ b/src/asmcnc/apps/drywall_cutter_app/config/config_loader.py @@ -31,54 +31,6 @@ INDENT_VALUE = " " -def get_display_preview(json_obj): - l = Localization() - profile_db = App.get_running_app().profile_db - tool_description = profile_db.get_tool_name(json_obj["cutter_type"]) - material_description = profile_db.get_material_name(json_obj["material"]) - preview = get_shape_type(json_obj, l) - preview += l.get_str("Units") + ": " + json_obj["units"] + "\n" - preview += l.get_str("Canvas shape dims") + ": \n" - preview += get_shape_dimensions(json_obj, l) - preview += l.get_str("Material") + ": " + l.get_str(material_description) + "\n" - preview += l.get_str("Cutter type") + ": " + get_translated_description(tool_description) + "\n" - preview += l.get_str("Toolpath offset") + ": " + l.get_str(json_obj["toolpath_offset"]) + "\n" - preview += l.get_str("Cutting depths") + ": \n" - preview += ( - INDENT_VALUE - + l.get_str("Material thickness") + ": " - + str(json_obj["cutting_depths"]["material_thickness"]) - + "\n" - ) - preview += ( - INDENT_VALUE - + l.get_str("Bottom offset") + ": " - + str(json_obj["cutting_depths"]["bottom_offset"]) - + "\n" - ) - preview += ( - INDENT_VALUE - + l.get_str("Auto pass depth") + ": " - + str(l.get_str('Yes') if json_obj["cutting_depths"]["auto_pass"] else l.get_str('No')) - + "\n" - ) - preview += ( - INDENT_VALUE - + l.get_str("Depth per pass") + ": " - + str(json_obj["cutting_depths"]["depth_per_pass"]) - + "\n" - ) - preview += ( - INDENT_VALUE - + l.get_str("Tabs") + ": " - + str(l.get_str('Yes') if json_obj["cutting_depths"]["tabs"] else l.get_str('No')) - + "\n" - ) - preview += (l.get_str("Datum position") + ": X: " + str(round(json_obj["datum_position"]["x"], 1)) + " / Y: " + - str(round(json_obj["datum_position"]["y"], 1)) + "\n") - return preview - - def get_translated_description(description): l = Localization() desc = '' @@ -142,11 +94,14 @@ class DWTConfig(EventDispatcher): active_cutter = ObjectProperty(config_classes.Cutter.default()) # type: config_classes.Cutter active_profile = ObjectProperty(config_classes.Profile.default()) # type: config_classes.Profile + l = Localization() + show_z_height_reminder = True - def __init__(self, screen_drywall_cutter=None, *args, **kwargs): + def __init__(self, machine, screen_drywall_cutter=None, *args, **kwargs): super(DWTConfig, self).__init__(*args, **kwargs) self.screen_drywall_cutter = screen_drywall_cutter + self.machine = machine self.profile_db = App.get_running_app().profile_db if ModelManagerSingleton().is_machine_drywall(): @@ -498,3 +453,52 @@ def on_parameter_change(self, parameter_name, parameter_value): # update screen, check bumpers and so on: if not (self.active_config.shape_type == 'geberit' and self.active_cutter.dimensions.tool_diameter is None): self.screen_drywall_cutter.drywall_shape_display_widget.check_datum_and_extents() + + def get_display_preview(self, json_obj): + offset_x = self.screen_drywall_cutter.m.laser_offset_x + offset_y = self.screen_drywall_cutter.m.laser_offset_y + + tool_description = self.profile_db.get_tool_name(json_obj["cutter_type"]) + material_description = self.profile_db.get_material_name(json_obj["material"]) + preview = get_shape_type(json_obj, self.l) + preview += self.l.get_str("Units") + ": " + json_obj["units"] + "\n" + preview += self.l.get_str("Canvas shape dims") + ": \n" + preview += get_shape_dimensions(json_obj, self.l) + preview += self.l.get_str("Material") + ": " + self.l.get_str(material_description) + "\n" + preview += self.l.get_str("Cutter type") + ": " + get_translated_description(tool_description) + "\n" + preview += self.l.get_str("Toolpath offset") + ": " + self.l.get_str(json_obj["toolpath_offset"]) + "\n" + preview += self.l.get_str("Cutting depths") + ": \n" + preview += ( + INDENT_VALUE + + self.l.get_str("Material thickness") + ": " + + str(json_obj["cutting_depths"]["material_thickness"]) + + "\n" + ) + preview += ( + INDENT_VALUE + + self.l.get_str("Bottom offset") + ": " + + str(json_obj["cutting_depths"]["bottom_offset"]) + + "\n" + ) + preview += ( + INDENT_VALUE + + self.l.get_str("Auto pass depth") + ": " + + str(self.l.get_str('Yes') if json_obj["cutting_depths"]["auto_pass"] else self.l.get_str('No')) + + "\n" + ) + preview += ( + INDENT_VALUE + + self.l.get_str("Depth per pass") + ": " + + str(json_obj["cutting_depths"]["depth_per_pass"]) + + "\n" + ) + preview += ( + INDENT_VALUE + + self.l.get_str("Tabs") + ": " + + str(self.l.get_str('Yes') if json_obj["cutting_depths"]["tabs"] else self.l.get_str('No')) + + "\n" + ) + preview += (self.l.get_str("Datum position") + ": X: " + str( + round(json_obj["datum_position"]["x"] + offset_x, 1)) + " / Y: " + + str(round(json_obj["datum_position"]["y"] + offset_y, 1)) + "\n") + return preview \ No newline at end of file diff --git a/src/asmcnc/apps/drywall_cutter_app/screen_config_filechooser.py b/src/asmcnc/apps/drywall_cutter_app/screen_config_filechooser.py index bb0381902..6353c069a 100644 --- a/src/asmcnc/apps/drywall_cutter_app/screen_config_filechooser.py +++ b/src/asmcnc/apps/drywall_cutter_app/screen_config_filechooser.py @@ -297,8 +297,9 @@ class ConfigFileChooser(Screen): u'datum_position': 6 } - def __init__(self, **kwargs): + def __init__(self, dwt_config, **kwargs): super(ConfigFileChooser, self).__init__(**kwargs) + self.dwt_config = dwt_config self.sm = kwargs['screen_manager'] self.l = kwargs['localization'] self.callback = kwargs['callback'] @@ -441,7 +442,7 @@ def display_selected_file(self): with open(self.filechooser.selection[0], 'r') as f: json_obj = json.load(f) - self.metadata_preview.text = config_loader.get_display_preview(json_obj) + self.metadata_preview.text = self.dwt_config.get_display_preview(json_obj) self.load_button.disabled = False self.image_select.source = './asmcnc/skavaUI/img/file_select_select.png' diff --git a/src/asmcnc/apps/drywall_cutter_app/screen_config_filesaver.py b/src/asmcnc/apps/drywall_cutter_app/screen_config_filesaver.py index 5e24047de..b5d00e07d 100644 --- a/src/asmcnc/apps/drywall_cutter_app/screen_config_filesaver.py +++ b/src/asmcnc/apps/drywall_cutter_app/screen_config_filesaver.py @@ -396,7 +396,7 @@ def display_selected_file(self): with open(self.filechooser.selection[0], 'r') as f: json_obj = json.load(f) - self.metadata_preview.text = config_loader.get_display_preview(json_obj) + self.metadata_preview.text = self.dwt_config.get_display_preview(json_obj) self.image_select.source = './asmcnc/skavaUI/img/file_select_select.png' diff --git a/src/asmcnc/apps/drywall_cutter_app/screen_drywall_cutter.py b/src/asmcnc/apps/drywall_cutter_app/screen_drywall_cutter.py index 3e9ebcacf..e121ac5c7 100644 --- a/src/asmcnc/apps/drywall_cutter_app/screen_drywall_cutter.py +++ b/src/asmcnc/apps/drywall_cutter_app/screen_drywall_cutter.py @@ -228,7 +228,7 @@ class DrywallCutterScreen(Screen): pulse_poll = None def __init__(self, screen_manager, machine, keyboard, job, **kwargs): - self.dwt_config = config_loader.DWTConfig(self) + self.dwt_config = config_loader.DWTConfig(machine=machine, screen_drywall_cutter=self) super(DrywallCutterScreen, self).__init__(**kwargs) @@ -599,6 +599,7 @@ def format_command(self, cmd): def open_filechooser(self): if not self.sm.has_screen('config_filechooser'): self.sm.add_widget(screen_config_filechooser.ConfigFileChooser(name='config_filechooser', + dwt_config=self.dwt_config, screen_manager=self.sm, localization=self.l, callback=self.dwt_config.load_config))