from ..Script import Script class BQ_PauseAtHeight(Script): def __init__(self): super().__init__() def getSettingDataString(self): return """{ "name":"Pause at height (BQ Printers)", "key": "BQ_PauseAtHeight", "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): x = 0. y = 0. current_z = 0. pause_z = self.getSettingValueByKey("pause_height") for layer in data: lines = layer.split("\n") for line in lines: 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 # Insert Pause gcode prepend_gcode += "M25 ; Pauses the print and waits for the user to resume it\n" index = data.index(layer) layer = prepend_gcode + layer data[index] = layer # Override the data of this layer with the modified data return data break return data