This is a Script for Ultimaker's CURA PostProcessing Plugin, providing simple way to configure calibration towers (for retraction, nozzle temperature and so on...).
I didn't test every parameter, though it looks like everything works fine, I strongly recommend you to at least have a look on post processed code, to verify that changes in generated GCODE will work as you expect. USE THIS PLUGIN AT YOUR OWN RISK.
When you want to find out what retraction length you need, or what temperature works best for your filament you want to run some kind of tower from thingiverse, but in CURA you don't have simple option for that. You can use ChangeAtZ post processing script, but you'll have to add it 8-10 times and each time configure what option you want to change and at what layer/height. It's not handy enough.
With this script you can specify initial offset, step height (mm or layers count), number of steps, options you want to modify, it's step and that's it.
- Feedrate multiplier (
M220
) - Print speed multiplier (Modifying
G1
commands) - Flow rate (
M221
) - Extruder 1 nozzle temperature (
M104
, only 1 extruder supported at the moment) - Fan speed percentage (
M106
) - Retraction length and feedrate (Modifying
G1
commands) - Linear Advance K-Factor (
M900
)
Tested with retraction length and feedrate, Linear Advance K-Factor and Hotend temperature, to find optimal values in my own prints (Ender 3 Pro, PLA and PETG).
- Go to CURA's Menu Bar -> Help -> Show Configuration Folder.
- Place
CalibrationTower.py
toscripts
directory in just opened folder. - Restart CURA
- Menu Bar -> Extensions -> Post Processing -> Modify G-Code
- Add a script -> CalibrationTower
Please, don't hesitate to submit a Pull-Request, or raise an Issue. I don't guarantee to resolve everything quickly, but at least I will know about issues or users wishes.
PostProcessingPlugin doesn't support packages, only single file scripts, that's why bundler.py
was added. It reads source code starting from entry point and collects all importable code into single python script. But if I'll be able to contribute package support to PostProcessingPlugin the bundler won't be required anymore.
Under tests
directory there are two files for now:
debug.py
-- Reads data from sample GCODE, post processes it and saves to the file, so it can be debugged and compared using diff software.test_unit.py
-- Supposed to have unittests, at the moment it has only tests for GCODE manipulation classes.
ISC © Egor Blagov