Jump to content

custom post processor script not appearing on the list


mudinho

Recommended Posts

Posted (edited) · custom post processor script not appearing on the list

my printer use a lerdge 2 in 1-s1 hotend and i need to create the gcode routine to swtich material, im making a custom post processor to do that, im not done but my code wont appear on the list, here is the code 

import re #To perform the search and replace.

from ..Script import Script

class switchMaterial(Script):
    """switch Material
    """

    def getSettingDataString(self):
        return """{
            "name": "switch material",
            "key": "switch_Material",
            "metadata": {},
            "version": 1,
            "settings":
            {
                "retraction":
                {
                    "label": "retraction",
                    "description": "Amount of retraction to get the previous filament out of the way",
                    "type": "float",
                    "default_value": "40.0"
                }
                "speed":
                {
                    "label": "speed",
                    "description": "Speed of retraction",
                    "type": "integer",
                    "default_value": "200"
                }
            }
        }"""

    def execute(self, data):
        retraction = self.getSettingDataString("retraction")
        speed = self.getSettingDataString("speed")
        pre_fix = "\nT"
        firstTime = True
        current_tool = 0
        last_position = 0
        text = ""
        for layer_number, layer in enumerate(data):
            for ocurrence in re.finditer(pre_fix,layer):
                current_tool = int(layer[ocurrence.end()])
                if firstTime:
                    firstTime = False
                    text = layer[:ocurrence.start()]
                    if current_tool == 1:
                        text += "T0\nM104 S{material_print_temperature, 0}\nM105\nM109 S{material_print_temperature, 0}\nM83\nG0 X0 Y0\nG0 E-%.2f F%i\nT1\n"%(retraction,speed)
                    last_position = ocurrence.end()
                else:
                    if current_tool == 0:
                        text = layer[:ocurrence.start()]
                    else:
                        text = layer[:ocurrence.start()]
            data[layer_number] =  text #Replace all.
        return data

i dont know why it isnt showing, i try put on ...\AppData\Roaming\cura\4.12\scripts and on C:\Program Files\Ultimaker Cura 4.12.1\plugins\PostProcessingPlugin\scripts, but nothing worka and yes i close and open cura to update the list, already try restarting the pc

Edited by mudinho
  • Link to post
    Share on other sites

    Posted · custom post processor script not appearing on the list

    didnt think it had logs, 

    Quote

    2022-03-16 13:47:46,397 - DEBUG - [MainThread] PostProcessingPlugin.PostProcessingPlugin.loadScripts [204]: Begin loading of script: switchMaterial
    2022-03-16 13:47:46,407 - ERROR - [MainThread] UM.Logger.logException [112]: Exception: Exception occurred while loading post processing plugin: Expecting ',' delimiter: line 15 column 17 (char 480)
    2022-03-16 13:47:46,412 - ERROR - [MainThread] UM.Logger.logException [116]: Traceback (most recent call last):
    2022-03-16 13:47:46,415 - ERROR - [MainThread] UM.Logger.logException [116]:   File "C:\Program Files\Ultimaker Cura 4.12.1\plugins\PostProcessingPlugin\PostProcessingPlugin.py", line 206, in loadScripts
    2022-03-16 13:47:46,419 - ERROR - [MainThread] UM.Logger.logException [116]:     setting_data = temp_object.getSettingData()
    2022-03-16 13:47:46,422 - ERROR - [MainThread] UM.Logger.logException [116]:   File "C:\Program Files\Ultimaker Cura 4.12.1\plugins\PostProcessingPlugin\Script.py", line 92, in getSettingData
    2022-03-16 13:47:46,426 - ERROR - [MainThread] UM.Logger.logException [116]:     setting_data = json.loads(setting_data_as_string, object_pairs_hook = collections.OrderedDict)
    2022-03-16 13:47:46,429 - ERROR - [MainThread] UM.Logger.logException [116]:   File "json\__init__.py", line 370, in loads
    2022-03-16 13:47:46,433 - ERROR - [MainThread] UM.Logger.logException [116]:   File "json\decoder.py", line 337, in decode
    2022-03-16 13:47:46,436 - ERROR - [MainThread] UM.Logger.logException [116]:   File "json\decoder.py", line 353, in raw_decode
    2022-03-16 13:47:46,439 - ERROR - [MainThread] UM.Logger.logException [116]: json.decoder.JSONDecodeError: Expecting ',' delimiter: line 15 column 17 (char 480)

    but in the line 15 of my code i dont see why it need a comma, im kinda newbie on python, or that is missing on the decoder.py ? 

  • Link to post
    Share on other sites

    Posted · custom post processor script not appearing on the list
    19 hours ago, mudinho said:

    didnt think it had logs, 

    but in the line 15 of my code i dont see why it need a comma, im kinda newbie on python, or that is missing on the decoder.py ? 


    That's to make it valid JSON.

  • 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 5.8 beta released
        Another Cura release has arrived and in this 5.8 beta release, the focus is on improving Z seams, as well as completing support for the full Method series of printers by introducing a profile for the UltiMaker Method.
          • Like
        • 1 reply
      • Introducing the UltiMaker Factor 4
        We are happy to announce the next evolution in the UltiMaker 3D printer lineup: the UltiMaker Factor 4 industrial-grade 3D printer, designed to take manufacturing to new levels of efficiency and reliability. Factor 4 is an end-to-end 3D printing solution for light industrial applications
          • Thanks
          • Like
        • 3 replies
    ×
    ×
    • Create New...