Simplifying the workflow : ColorPrint with ZHop
I use ColorPrint a lot. If I enable ZHop, then it does not work with the ColorPrint app.
Identifying the layers is a simple task without ZHop. With ZHop, it becomes much more difficult. Enabling the "Verbose G-code" option annotates the generated g-code with useful comments. This makes it very easy to identify the layer changes too; these are annotated with text like "move to next layer".
I have written a small filter script in Python. This processes the generated g-code & then prompts the user for layer change info. It then inserts the M600 gcode at the appropriate place.
With this script, my ColorPrint workflow adds two simple steps:
What does your ColorPrint workflow look like ? I am trying to see if this can be simplified further.
PS: If anybody is interested in the script, I can share it. I am looking to post it online (possibly Github) after some cleanup.
Re: Simplifying the workflow : ColorPrint with ZHop
What does your ColorPrint workflow look like ?
Simple. I generate gcode with ZHop enabled, then open it in favorite text editor, find first G1 Zx.xx line with required Z value (I usually set up the Slic3r so actual layer plus ZHop value doesn't give next layer Z value), insert M600 before this line manually, save, print and done.
Re: Simplifying the workflow : ColorPrint with ZHop
I do the same as David, except that I also remove the following line of GCode which is a prime after the previous retract.
Removing the prime prevents a blob being printed on restart.
Peter
Please note: I do not have any affiliation with Prusa Research. Any advices given are offered in good faith. It is your responsibility to ensure that by following my advice you do not suffer or cause injury, damage…
Re: Simplifying the workflow : ColorPrint with ZHop
I usually set up the Slic3r so actual layer plus ZHop value doesn't give next layer Z value
Clever trick ! What's the typical ZHop value you use ?
I do the same as David, except that I also remove the following line of GCode which is a prime after the previous retract.
Removing the prime prevents a blob being printed on restart.
Peter
My script does this too; I missed mentioning this detail.
Re: Simplifying the workflow : ColorPrint with ZHop
What's the typical ZHop value you use ?
It depends. Usualy something between 0.15 and 0.25, exceptionally up to 0.45. Most usually 0.22mm.
Re: Simplifying the workflow : ColorPrint with ZHop
I'd like to understand this, as I'd like to change colors with Z-hop.
Here is a snippet of code. (I added the "verbose g-code" to help--thanks for the tip!) I'd like Z 2.55 to be the first layer with the new color. How would I change it?
G1 X119.249 Y98.666 E-0.28572 ; wipe and retract
G1 E-0.51428 F2100.00000 ; retract
G1 Z2.500 F7200.000 ; lift Z
G1 Z2.550 F7200.000 ; move to next layer (12)
G1 Z2.700 F7200.000 ; lift Z
G1 X127.000 Y97.084 F7200.000 ; move to first perimeter point
G1 Z2.550 F7200.000 ; restore layer Z
G1 E0.80000 F2100.00000 ; unretract
M204 S800 ; adjust acceleration
G1 F900.000
My understanding is I would insert M600 after the "move to next layer (12)". And what do I do to remove the blob? Remove the whole line with the "unretract"? Would the following be correct?
G1 X119.249 Y98.666 E-0.28572 ; wipe and retract
G1 E-0.51428 F2100.00000 ; retract
G1 Z2.500 F7200.000 ; lift Z
G1 Z2.550 F7200.000 ; move to next layer (12)
M600
G1 Z2.700 F7200.000 ; lift Z
G1 X127.000 Y97.084 F7200.000 ; move to first perimeter point
G1 Z2.550 F7200.000 ; restore layer Z
M204 S800 ; adjust acceleration
G1 F900.000
Re: Simplifying the workflow : ColorPrint with ZHop
Yeah, that works, but personally I would insert the M600 here:
G1 X127.000 Y97.084 F7200.000 ; move to first perimeter point
M600
G1 Z2.550 F7200.000 ; restore layer Z
Peter
Please note: I do not have any affiliation with Prusa Research. Any advices given are offered in good faith. It is your responsibility to ensure that by following my advice you do not suffer or cause injury, damage…
Re: Simplifying the workflow : ColorPrint with ZHop
I usually insert M600 before moving to next layer. Printer finishes previous layer, then do the "change filament" stuff, then moves to next layer and goes with new color. I don't experience any blobs, I just catch (by hand) the string washed out during filament change and don't let it be dragged into printing area.
Re: Simplifying the workflow : ColorPrint with ZHop
Thanks, I can't wait to try it! Great topic, Shree! I like the idea of using another workflow to do the color change. The ColorPrint tool is kind of a black box, and it is not obvious to know if I've done it correctly. I didn't realize the code for the color change was so simple.
Re: Simplifying the workflow : ColorPrint with ZHop
Thanks, I can't wait to try it!
I can share this with you in a few days. What OS are you running (Windows/Linux or something else) ? My script has a dependency on python & some packages. Would you be OK installing them additionally to get this to work ?
Thanks
-- Shree
Re: Simplifying the workflow : ColorPrint with ZHop
I'm running Windows 10. I don't mind running Python at all; I've done some Python programming before, though it's been a while. I don't have it installed on this machine but I easily could.
I tried the g-code changes on a file last night with great success! I didn't realize the blob was caused by code so I was printing extra structures to the outside of the print to get it to start off the print first. This is much better.
Re: Simplifying the workflow : ColorPrint with ZHop
I have kept my script at
https://github.com/shreekumar3d/gcode-proc/blob/master/filament-change-at-Z.py
Setup & usage instructions are on top of the script. The script throws up a dialog box with all layer numbers. Select the layers that you need. If you need only one filament change (and find the process of scrolling & selecting the layer tedious), then you can edit the code and use
changeLayers = getSingleFilamentChange(layerZ)
For my day to day usage, I have enabled the required custom g-code settings & saved it in my printer profile. I have also created a"Print Setting" with the post processing script.