Jump to content
Ultimaker Community of 3D Printing Experts

Is there a way to save post processing plugin state?

Recommended Posts

So I built a simple object in openscad, it is a topless cube of (parametric) size with (parametric) wall thickness that has a mark on it every (parametric) mm. My theory was to use it for generating test cubes for printing extrusion and temperature towers.

I have reproduced this code below, despite the fact that it is not germane to this in case anyone is interested.

In any case, the obvious question is how do you get it to get it to change temperatures or extrusion percentage every markOff (3) mm.

So I decided to use a bunch of "tweakatz" post processing calls. I added all the calls, sliced, and saved a project - and when I reloaded the project, it didn't reload my tweaks.

I had anticipated editing those calls - to change extrusion percentage, to produce a different range for ABS, Nylon, even PETG. Do I really have to add a bunch of these every time I want to do this with an object with different wall thicknesses, different temperatures, and the like?

I have looked, I don't see how to do this. Ancient versions of Cura used to save these, I think with the printer definition. They should be saved somewhere, maybe in the project.

Is this just another situation where I don't know the software that well? I have looked around the questions here and the doc, I found the explanation of how to use post processing, but nothing explains how to save the settings.


// This code is original code by Nicholas J. Simicich.// The copyright of this code is disclaimed and dedicated// to the public.cubeThickness = 0.48; // set to extruder size plus 20%cubeBase = true;cubeBaseThickness=0.5; // fill in the bottom.cubeHeight = 40; // As tall or short as you want.cubeSize = 15;  // typically 10mm or 20mm, your choice.// This allows you to divide the test cube into bands, marked by small // square protrusions on the outside of the tower.  We leave a minimum// of markOff clear at the top of the tower for measurements.// This test cube can't automatically change extrusion percentage as// we step up, nor can it change temperatures.  That can be handled in// kisslicer or using a cura add-on script very easily.// The marks are little triangular shelves.  They are supposed to// start the same width as the wall and then grow until they are // markSize larger.  A good first choice is cubeThickness.mark = true;markSize=cubeThickness;markOff = 3;// The above says produce a cube that is 15 by 15 by 40, with a 0.5mm // thick base.  The walls should be 0.48.mm thick.  Everything will be as// square as possible.module ring(size=cubeSize,markSize=1) {   difference() {       linear_extrude(height=markSize,            scale=(cubeSize+markSize)/cubeSize, convexity=25) {           square(cubeSize,true);           }       cube([cubeSize,cubeSize,markSize*4], true);   } // difference} // module// create the cube bodylinear_extrude(height=cubeHeight) {   difference() {       square(cubeSize,true);       offset(delta=-1*cubeThickness)           square(cubeSize,true);   } // difference} // linear_extrude// create the optional baseif(cubeBase) {   cube([cubeSize,cubeSize,cubeBaseThickness],true);} // if// create the optional marks on the tube sideif(mark) {   for(i = [markOff:markOff:cubeHeight-markOff]) {       translate([0,0,i-1]) ring(cubeSize,markSize);   }}


Share this post

Link to post
Share on other sites

Interesting. I'm new to 3d printing, but pretty much everywhere says to run temp calibration towers with every new role of filament.

I think the tweakatz post processing scripts are brilliant and have used them a lot recently. But I also have already become tired of inputting the same 10 scripts for every roll, with the same Z height and same temps.

I then have to delete them after every temp calibration tower print since if they are there they get used. Its hard to imagine I'm alone in this frustration, but perhaps.

How about a checkbox beside each one that if unchecked doesn't get processed. Then they just save with the system like they do currently and no worries. When i want, i open the screen and activate the ones I want to run.

New Cura doesn't have a way to save post processing scripts. I'm not quite sure if we will ever have it though. It's not very high on the feature list.

Share this post

Link to post
Share on other sites

Being Devil's Advocate here, but shouldn't TweakatZ and other plugins be responsible for import and export of scripted values so they can be retrieved independently?

No, I want to be able to export a dozen of TweakatZ instances. I don't think the plugin should reach beyond it's own instance.

It's really the responsibility of the 'post processing' facility.

Edited by Guest

Share this post

Link to post
Share on other sites

I have to agree, and I wasn't expecting this at all, as Simplify3D saves them in its FFF file, and that is linked to the profile so to speak.

Oh well, worst case I suppose I can phone a friend and collate my search and replace into some generic post processing script, that will manipulate the Cura file output and move it elsewhere. Shame, as I've got Cura working with my QuickFill equipped Robox, and using both nozzles at will in different combinations, and controlling the needle valves at the nozzles too. :O:)


Share this post

Link to post
Share on other sites

@ahoeben is this the pull request? https://github.com/Ultimaker/Cura/pull/3229 If so, is it possible further down the line, assuming these are saved and applied on a per printer preference, which seems sensible to me, that there might be plans to view these in some sort of dialog box? Possibly like this? or maybe thinking afterwards each instance of say "Search and Replace" could be given a more useful name in this example below...


@ghostkeeper a bit like this, so the user could track the scripts easier. Just an idea. :) 


Cura Post Processing Scripts.png

Edited by 24c
get link right

Share this post

Link to post
Share on other sites

That pull request is indeed the one, 24c. Keep track of that link ;)


Giving Search and Replace scripts a custom name and a sort of summary like in Simplify3D would be nice, I agree, but it doesn't jive well with the other post-processing scripts in there. If you don't use Search and Replace, that summary basically just repeats the list of scripts above it.

Share this post

Link to post
Share on other sites

@ghostkeeper totally agree about the summary box I drew, but I sort of did think along the S3D lines when I initially posted, and then realised it was duplicating what the script types summary above was doing, especially if you added all the other options not just search and replace. The "relatable name" was the afterthought, and would be more useful if you are using the same script several times, so you could keep track of things.


Maybe that white box summary area should be retitled, conditional post processing scripts ;) Thanks for the update, as everything in Cura 3.2 is slicing and post processing nicely, when I look at the gcode, apart from that one conditional I need, but I have a Python script to play with, so maybe I can finish what I started a few days ago, and test this out in the meantime.

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

    • Taking Advantage of DfAM
      This is a statement that’s often made about AM/3DP. I'll focus on the way DfAM can take advantage of some of the unique capabilities that AM and 3DP have to offer. I personally think that the use of AM/3DP for light-weighting is one of it’s most exciting possibilities and one that could play a key part in the sustainability of design and manufacturing in the future.
        • Like
      • 3 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!