Cura/plugins/PostProcessingPlugin/scripts/UsePrevProbeMeasure.py
Amanda de Castilho e04dc2dcb1
Create UsePrevProbeMeasure.py
I wrote this plugin to override the G29 in the start code. When used, instead of probing the bed, it retrieves the last probing measurement from EEPROM and ensures bed leveling is activated.
2019-01-05 19:40:31 -08:00

47 lines
1.7 KiB
Python

# 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 UsePrevProbeMeasure(Script):
def __init__(self):
super().__init__()
def getSettingDataString(self):
return """{
"name": "Use Previous Probe Measurements",
"key": "UsePrevProbeMeasure",
"metadata": {},
"version": 2,
"settings":
{
"usePrevMeas":
{
"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("usePrevMeas"):
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