Jump to content
Ultimaker Community of 3D Printing Experts
Spilz

CURA 2.4 and Post processing plugins issue

Recommended Posts

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

Share this post


Link to post
Share on other sites

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 Guest

Share this post


Link to post
Share on other sites

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"

Share this post


Link to post
Share on other sites

 

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Our picks

    • Ultimaker Cura | a new interface
      We're not only trying to always make Ultimaker Cura better with the usual new features and improvements we build, but we're also trying to make it more pleasant to operate. The interface was the focus for the upcoming release, from which we would already like to present you the first glance. 
        • Like
      • 20 replies
    • "Back To The Future" using Generative Design & Investment Casting
      Designing for light-weight parts is becoming more important, and I’m a firm believer in the need to produce lighter weight, less over-engineered parts for the future. This is for sustainability reasons because we need to be using less raw materials and, in things like transportation, it impacts the energy usage of the product during it’s service life.
        • Like
      • 12 replies
×

Important Information

Welcome to the Ultimaker Community of 3D printing experts. Visit the following links to read more about our Terms of Use or our Privacy Policy. Thank you!