Update PurgeLinesAndUnload.py

Changed 'Execute' procedure per suggestion.
Add 'G10' firmware retraction support to 'Adjust Starting E'.
This commit is contained in:
GregValiant 2024-12-10 18:43:03 -05:00
parent 82336a0616
commit 035ae14eb7

View File

@ -131,17 +131,20 @@ class PurgeLinesAndUnload(Script):
def execute(self, data): def execute(self, data):
# Run the selected procedures # Run the selected procedures
if self.getSettingValueByKey("add_purge_lines"): # Mapping settings to corresponding methods
self._add_purge_lines(data) procedures = {
if self.getSettingValueByKey("move_to_start"): "add_purge_lines": self._add_purge_lines,
self._move_to_start(data) "move_to_start": self._move_to_start,
if self.getSettingValueByKey("adjust_starting_e"): "adjust_starting_e": self._adjust_starting_e,
self._adjust_starting_e(data) "enable_unload": self._unload_filament
if self.getSettingValueByKey("enable_unload"): }
self._unload_filament(data) # Run selected procedures
for setting, method in procedures.items():
if self.getSettingValueByKey(setting):
method(data)
# Format the startup and ending gcodes # Format the startup and ending gcodes
data[1] = self._format_string(data[1]) data[1] = self._format_string(data[1])
data[len(data) - 1] = self._format_string(data[len(data) - 1]) data[-1] = self._format_string(data[-1])
return data return data
# Add Purge Lines to the user defined position on the build plate # Add Purge Lines to the user defined position on the build plate
@ -606,9 +609,13 @@ class PurgeLinesAndUnload(Script):
adjust_amt = self.getSettingValueByKey("adjust_e_loc_to") adjust_amt = self.getSettingValueByKey("adjust_e_loc_to")
lines = data[1].split("\n") lines = data[1].split("\n")
lines.reverse() lines.reverse()
if curaApp.getProperty("machine_firmware_retract", "value"):
search_pattern = "G10"
else:
search_pattern = "G1 F(\d*) E-(\d.*)"
for index, line in enumerate(lines): for index, line in enumerate(lines):
if re.search("G1 F(\d*) E-(\d.*)", line) is not None: if re.search(search_pattern, line):
lines[index] = re.sub("G1 F(\d*) E-(\d.*)", f"G92 E{adjust_amt}", line) lines[index] = re.sub(search_pattern, f"G92 E{adjust_amt}", line)
lines.reverse() lines.reverse()
data[1] = "\n".join(lines) data[1] = "\n".join(lines)
break break