File: UsePreviousProbeMeasurements.py

package info (click to toggle)
cura 5.0.0-6
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 122,888 kB
  • sloc: python: 44,572; sh: 81; xml: 32; makefile: 16
file content (46 lines) | stat: -rw-r--r-- 1,771 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# Cura PostProcessingPlugin
# Author:   Amanda de Castilho
# Date:     January 5,2019

# Description:  This plugin overrides probing command and inserts code to ensure
#               previous probe measurements are loaded and bed leveling enabled
#               (searches for G29 and replaces it with M501 & M420 S1)
#               *** Assumes G29 is in the start code, will do nothing if it isn't ***

from ..Script import Script

class UsePreviousProbeMeasurements(Script):
    def __init__(self):
        super().__init__()

    def getSettingDataString(self):
        return """{
            "name": "Use Previous Probe Measurements",
            "key": "UsePreviousProbeMeasurements",
            "metadata": {},
            "version": 2,
            "settings":
            {
                "use_previous_measurements":
                {
                    "label": "Use last measurement?",
                    "description": "Selecting this will remove the G29 probing command and instead ensure previous measurements are loaded and enabled",
                    "type": "bool",
                    "default_value": false
                }
            }
        }"""

    def execute(self, data):
        text = "M501 ;load bed level data\nM420 S1 ;enable bed leveling"
        if self.getSettingValueByKey("use_previous_measurements"):
            for layer in data:
                layer_index = data.index(layer)
                lines = layer.split("\n")
                for line in lines:
                    if line.startswith("G29"):
                        line_index = lines.index(line)
                        lines[line_index] = text
                final_lines = "\n".join(lines)
                data[layer_index] = final_lines
        return data