123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- from ..Script import Script
- class PauseAtHeightRepRapFirmwareDuet(Script):
- def getSettingDataString(self):
- return """{
- "name": "Pause at height for RepRapFirmware DuetWifi / Duet Ethernet / Duet Maestro",
- "key": "PauseAtHeightRepRapFirmwareDuet",
- "metadata": {},
- "version": 2,
- "settings":
- {
- "pause_height":
- {
- "label": "Pause height",
- "description": "At what height should the pause occur",
- "unit": "mm",
- "type": "float",
- "default_value": 5.0
- }
- }
- }"""
- def execute(self, data):
- current_z = 0.
- pause_z = self.getSettingValueByKey("pause_height")
- layers_started = False
- for layer_number, layer in enumerate(data):
- lines = layer.split("\n")
- for line in lines:
- if ";LAYER:0" in line:
- layers_started = True
- continue
- if not layers_started:
- continue
- if self.getValue(line, 'G') == 1 or self.getValue(line, 'G') == 0:
- current_z = self.getValue(line, 'Z')
- if current_z != None:
- if current_z >= pause_z:
- prepend_gcode = ";TYPE:CUSTOM\n"
- prepend_gcode += "; -- Pause at height (%.2f mm) --\n" % pause_z
- prepend_gcode += self.putValue(M = 226) + "\n"
- layer = prepend_gcode + layer
- data[layer_number] = layer # Override the data of this layer with the modified data
- return data
- break
- return data
|