thanks for your reply,
I don't know where I can put it, do you have a suggestion ?
thanks for your reply,
I don't know where I can put it, do you have a suggestion ?
Unless its really large, you can post it inside a message here using the 'code' tags from the menu >
the plugin is to determine the area used by the first layer to optimize auto-leveling
I never learn python, so I took exemple from other plugins.
it searches min and max X Y position of G1 command and replace a specific string of the start gcode by the optimized G29 L R F B command
from ..Script import Scriptfrom UM.Logger import Loggerimport reclass G29_PH(Script): def __init__(self): super().__init__() def getSettingData(self): return { "label":"G29 by PH", "key": "G29_PH", "settings": { "AutoLevel": { "label": "G29 by PH", "description": "determine Autolevel optimise", "type": "boolean", "default": False, "visible": True }, "Marge": { "label": "Marge", "description": "Marge ajoutee a la zone d'impression pour l'autolevel", "unit": "mm", "type": "float", "default": 2.0, "visible": True, "enabled": "AutoLevel == True" }, } } } def getValue(self, line, key, default = None): if not key in line or (";" in line and line.find(key) > line.find(";") and not ";TweakAtZ" in key and not ";LAYER:" in key): return default subPart = line[line.find(key) + len(key):] #allows for string lengths larger than 1 if ";TweakAtZ" in key: m = re.search("^[0-4]", subPart) elif ";LAYER:" in key: m = re.search("^[+-]?[0-9]*", subPart) else: #the minus at the beginning allows for negative values, e.g. for delta printers m = re.search("^[-]?[0-9]+\.?[0-9]*", subPart) if m == None: return default try: return float(m.group(0)) except: return default def execute(self, data): lines = data[1].split("\n") data1_temp = "" bbL = None bbR = None bbF = None bbB = None layer = -1 marge = self.getSettingValueByKey("Marge") for line in lines: if ";LAYER:" in line: #new layer no. found layer = self.getValue(line, ";LAYER:", layer) if "G1 " in line and layer == 0 : x = self.getValue(line, "X", None) y = self.getValue(line, "Y", None) if x != None: if bbL == None: bbL = x else : if x < bbL: bbL = x; if bbR == None: bbR = x else : if x > bbR: bbR = x; if y != None: if bbB == None: bbB = y else : if y > bbB: bbB = y; if bbF == None: bbF = y else : if y < bbF: bbF = y; bbL -= marge bbR += marge bbF -= marge bbB += marge for line in lines: if "G29 L R F B ;Auto Bed Leveling" in line: data1_temp += "G29 L" + repr(bbL) +" R" + repr(bbR) + " F" + repr(bbF) + " B" + repr(bbB) +"; PH Auto Bed Leveling\n" else: data1_temp += line + "\n" data[1] = data1_temp # "G29 L R F B ;Auto Bed Leveling" return data
thanks for your help
It works well on my MAC with CURA 2.1.3
but not on my Win10 with CURA 2.4 : the list of post processing plugin show only one plugin when I had the file (normally it shows 4)
an other issue/question :
is it normal than even on CURA 2.1.3 the post processing is not saved when I reopen CURA ?
Edited by GuestHello,
could you tell me how I could add a python script to cura 2.4 on a Mac.
I tried to place it in the plugins folder under the cura folder, but won't work.
It's a python script with works under windows.
Thank you for your feedback.
Regards
Ralf
It works well on my MAC with CURA 2.1.3
but not on my Win10 with CURA 2.4
The API has changed between 2.1 and 2.3 - look at existing plugins to see what's changed (getSettingData vs getSettingDataString)
an other issue/question :
is it normal than even on CURA 2.1.3 the post processing is not saved when I reopen CURA ?
Yes, it is "by design"
could you tell me how I could add a python script to cura 2.4 on a Mac.
If you are talking about the PostProcessing scripts, on OSX they are in Cura.app/Contents/Resources/plugins/plugins/PostProcessingPlugin/scripts/
could you tell me how I could add a python script to cura 2.4 on a Mac.
If you are talking about the PostProcessing scripts, on OSX they are in Cura.app/Contents/Resources/plugins/plugins/PostProcessingPlugin/scripts/
Where could I find this folder?
Regards
Ralf
Where could I find this folder?
At the place you installed Cura...
So for most people it would be: /Applications/Cura.app/Contents/Resources/plugins/plugins/PostProcessingPlugin/scripts/ (unless you installed it somewhere else)
Where could I find this folder?
At the place you installed Cura...
So for most people it would be: /Applications/Cura.app/Contents/Resources/plugins/plugins/PostProcessingPlugin/scripts/ (unless you installed it somewhere else)
... and where will Cura 2.4 be installed when installed(?) or run from Cura-2.4.0.AppImage-Install (the new Linux installer)?
Regards, Martin
I see no reason why it should be different in 2.4...
But I can't answer that formally, my personal experience tells me it is not always a good idea to be early adopter of new Cura releases, so I am still with 2.3 for now
Edited by Guest
Recommended Posts
ahoeben 2,016
Post the plugin somewhere, and somebody may be able to help.
Link to post
Share on other sites