mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-04-22 05:39:37 +08:00

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.
47 lines
1.7 KiB
Python
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
|