From a476d9fb331e116bdbd87a4e70f7c4d0252c3fa5 Mon Sep 17 00:00:00 2001 From: Nicolas Predella Date: Thu, 21 May 2026 19:28:59 +0300 Subject: [PATCH] bf --- core/nodeslicer/nodes.py | 18 ++++++++++-------- infra/networking/gcode_utils.py | 2 +- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/core/nodeslicer/nodes.py b/core/nodeslicer/nodes.py index ff1f2b6..b467946 100644 --- a/core/nodeslicer/nodes.py +++ b/core/nodeslicer/nodes.py @@ -98,12 +98,12 @@ class SLICENODE_PrusaslicerConf(SliceNode): if os.path.isdir(profiles_path): cache.load([profiles_path]) - if self.printer_id != 'NONE': + if self.printer_id != '': cache.evaluate_compatibility({self.printer_id}, set(cache.vendors)) def update_profiles(self, context): cache = self.get_cache() - if self.printer_id != 'NONE': + if self.printer_id != '': cache.evaluate_compatibility({self.printer_id}, set(cache.vendors)) notify_tree_changed(self, context) @@ -112,6 +112,7 @@ class SLICENODE_PrusaslicerConf(SliceNode): self.ensure_profiles_loaded() cache: LocalCache = self.get_cache() items: list[str] = [p.id for k, p in cache.printer_profiles.items() if edit_text.lower() in p.id.lower()] + items.sort() return items def search_conf(self, edit_text: str, conf_type: str) -> list[str]: @@ -124,6 +125,7 @@ class SLICENODE_PrusaslicerConf(SliceNode): profiles: list[Profile] = printer.compatible_filament_profiles if conf_type == "filaments" else printer.compatible_print_profiles items: list[str] = [p.id for p in profiles if edit_text.lower() in p.id.lower()] + items.sort() return items def search_filaments(self, _context, edit_text) -> list[str]: @@ -132,9 +134,9 @@ class SLICENODE_PrusaslicerConf(SliceNode): def search_prints(self, _context, edit_text) -> list[str]: return self.search_conf(edit_text, conf_type="prints") - printer_id: NfStringProperty(name="Printer", default='NONE', update=update_profiles, search=search_printers) # pyright: ignore[reportInvalidTypeForm] - filament_id: NfStringProperty(name="Filament", default='NONE', search=search_filaments) # pyright: ignore[reportInvalidTypeForm] - print_id: NfStringProperty(name="Print", default='NONE', search=search_prints) # pyright: ignore[reportInvalidTypeForm] + printer_id: NfStringProperty(name="Printer", default='', update=update_profiles, search=search_printers) # pyright: ignore[reportInvalidTypeForm] + filament_id: NfStringProperty(name="Filament", default='', search=search_filaments) # pyright: ignore[reportInvalidTypeForm] + print_id: NfStringProperty(name="Print", default='', search=search_prints) # pyright: ignore[reportInvalidTypeForm] def init(self, context): self.add_output("SLICESOCK_PrusaslicerConf", "Config") @@ -143,13 +145,13 @@ class SLICENODE_PrusaslicerConf(SliceNode): assert layout self.ensure_profiles_loaded() layout.prop(self, "printer_id") - if self.printer_id != 'NONE': + if self.printer_id != '': layout.prop(self, "filament_id") layout.prop(self, "print_id") def evaluate_output(self, socket_name: str, **_kwargs) -> Any: self.ensure_profiles_loaded() - if self.printer_id == 'NONE' or self.filament_id == 'NONE' or self.print_id == 'NONE': + if self.printer_id == '' or self.filament_id == '' or self.print_id == '': return None cache = self.get_cache() @@ -1382,7 +1384,7 @@ class SLICENODE_PrusaslicerSlice(SliceNode): overrides=writer_overrides ) - binary_gcode_value = conf_writer.config_dict['binary_gcode'] + binary_gcode_value = conf_writer.config_dict.get('binary_gcode', '0') conf_writer.config_dict['binary_gcode'] = '0' # Prepare 3mf path diff --git a/infra/networking/gcode_utils.py b/infra/networking/gcode_utils.py index 506104f..4a75730 100644 --- a/infra/networking/gcode_utils.py +++ b/infra/networking/gcode_utils.py @@ -42,7 +42,7 @@ def get_gcode_name_from_metadata(gcode: str, default: str = "output") -> str: if parts_match: try: gcode_info = json.loads(parts_match.group(1)) - names: list[str] = [str(v['name'].split(".")[0]) for v in gcode_info['objects']] + names: list[str] = [str(v['name'].split(" id:")[0]) for v in gcode_info['objects']] counts = Counter(names) return "-".join(f"{c}x{n}" if c > 1 else n for n, c in counts.items()) except: