Skip to content

Commit

Permalink
module: Added additional metadata to aid tool selection on single ext…
Browse files Browse the repository at this point in the history
…ruder multi-material prints

The added metadata is ssential for single extruder multi-material printing.  It is used in new Mainsail functionality to map tools to MMU spools when using Happy Hare (Klipper MMU driver)

Signed-off-by: Paul Morgan ([email protected])
  • Loading branch information
moggieuk committed Feb 17, 2025
1 parent ccbb03f commit 8abc252
Showing 1 changed file with 35 additions and 0 deletions.
35 changes: 35 additions & 0 deletions moonraker/components/file_manager/metadata.py
Original file line number Diff line number Diff line change
Expand Up @@ -193,6 +193,21 @@ def parse_filament_name(self) -> Optional[str]:
def parse_filament_type(self) -> Optional[str]:
return None

def parse_filament_color(self) -> Optional[str]:
return None

def parse_extruder_color(self) -> Optional[str]:
return None

def parse_filament_temp(self) -> Optional[str]:
return None

def parse_referenced_tools(self) -> Optional[str]:
return None

def parse_single_extruder_multi_material(self) -> Optional[int]:
return None

def parse_estimated_time(self) -> Optional[float]:
return None

Expand Down Expand Up @@ -381,6 +396,21 @@ def parse_filament_name(self) -> Optional[str]:
r";\sfilament_settings_id\s=\s(%S)", self.footer_data
)

def parse_filament_color(self) -> Optional[str]:
return regex_find_string(r";\sfilament_colour\s=\s(%S)", self.footer_data)

def parse_extruder_color(self) -> Optional[str]:
return regex_find_string(r";\sextruder_colour\s=\s(%S)", self.footer_data)

def parse_filament_temp(self) -> Optional[str]:
return regex_find_string(r";\s(?:nozzle_)?temperature\s=\s(%S)", self.footer_data)

Check warning on line 406 in moonraker/components/file_manager/metadata.py

View workflow job for this annotation

GitHub Actions / lint-python-code

line too long (90 > 88 characters)

def parse_referenced_tools(self) -> Optional[str]:
return regex_find_string(r";\sreferenced_tools\s=\s(%S)", self.footer_data)

def parse_single_extruder_multi_material(self) -> Optional[int]:
return regex_find_int(r";\ssingle_extruder_multi_material\s=\s(%D)", self.footer_data)

Check warning on line 412 in moonraker/components/file_manager/metadata.py

View workflow job for this annotation

GitHub Actions / lint-python-code

line too long (94 > 88 characters)

def parse_estimated_time(self) -> Optional[float]:
time_match = re.search(
r';\sestimated\sprinting\stime.*', self.footer_data)
Expand Down Expand Up @@ -940,6 +970,11 @@ def parse_first_layer_bed_temp(self) -> Optional[float]:
'chamber_temp',
'filament_name',
'filament_type',
'filament_color',
'extruder_color',
'filament_temp',
'referenced_tools',
'single_extruder_multi_material',
'filament_total',
'filament_weight_total',
'thumbnails']
Expand Down

0 comments on commit 8abc252

Please sign in to comment.