Page MenuHomeAleph Objects Inc

Rewrote PauseAtHeightorLayer.py plugin, consider including this
Open, NormalPublic

Description

I was playing around with multi-level printing and as part of automating around my inefficiencies and failures ended up rewriting a decent chunk of the PauseAtHeightorLayer.py plugin. What's the process for reviewing and including this in Cura?

Here is the changelog:

#
## Added 'only_post_pause' option that allows generating GCode with all prior layers 
##        deleted, allowing the user to resume failed or unsuccessfully unpaused prints
##        which are still on the bed. This can be used to get around "Home XY First"
##        issue often encountered when changing filament and moving the steppers
## Added 'home_xy' option to optionally re-home the X & Y axes after pausing as a
##        preventative measure against running into "Home XY First" failure
## Added 'change_filament' option to unwind 60mm on pause for much easier filament removal
## Added 'beep' option to signal the user when intervention is required
## Added 'stop_fan' option to turn off the fan during the pause
## Added tracking bed temperature, fan speed, extruder flow and backlash compensation so
##       that they can properly be resumed with the above option
## Added a first pause at which the plugin turns off nozzle/estepper/fan and sleeps
##       waiting for the user to come back. At continuing, the nozzle is heated back
##       up while the user replaces filament or places electronics inside the print.
## Added better interactive prompts
##
## Bug: fixed multiple concurrent invocations of this plugin often not working
## Bug: script resumed to initial-layer temperature as Cura put the real temperature
##      inside the first layer which was skipped, fixed.
## Bug: 'redo layers' did not properly keep track of absolute e-value or location, did
##      not play nice with multiple invocations or keep track of layers which can be
##      safely re-printed
## Numerous other minor bugfixes, ease of use improvements and expanded clarifying text

Testing done: way too many prints of various permutations of options and multiple invocations on both MINI2 and TAZ6.


Event Timeline

glebbb created this task.Aug 29 2018, 4:19 AM

@glebbb Thank you for the submission, we are happy to take a look at it and see how it operates. We will get it in a developmental build, and have our tech support team take a look for feedback.

@b-morgan This plugin was originally your submission, and wanted to see if you wanted to take a look as well.

karrad claimed this task.Sep 18 2018, 3:11 PM
karrad triaged this task as Normal priority.

I have looked at it but have not tested it yet. I'll let you know if I find any issues.

alexei changed the edit policy from "All Users" to "Cura LulzBot Edition (Project)".Sep 19 2018, 7:30 AM
alexei added a project: Cura LulzBot Edition.
karrad reassigned this task from karrad to alexei.

I dunno if you guys had a chance to look at this, uploading a fixed version.

There was a small bug I introduced while cleaning the code up, the "Extrude some material to prime the extruder" part was tabbed right one more place than needed (damn you python!) causing it to not run in the new experimental only-post-pause mode. This didn't affect regular operation.

@glebbb Sorry about the delay in checking this one out, we have been a little slammed.

I got a chance to give this one a go this morning, and looks like I am having an issue. (Don't get me wrong, probably pebkac) After purging the filament during a pause, it will rapidly retract the filament out of the hotend while moving to the next print location. It looks like it could be some confusion between relative and absolute extrusion?

Current settings:

I could very much be doing something wrong, let me know what you think!

I think there is a bug in the script when used a second (and third, etc.) times. I'm looking into it now and will post a revised version when I find and fix the bug!

Here's the bug fixed version:

karrad reassigned this task from alexei to victor_larchenko.Jan 8 2019, 3:35 PM
karrad added subscribers: victor_larchenko, alexei.

@victor_larchenko Please test locally and push to a branch for testing. Please attempt multiple pauses and resumes in a single print.

If this one checks out, we will want to remove other pause at height/layer plug ins to help avoid customer confusion.

karrad claimed this task.Jan 11 2019, 7:44 AM

Running print on a stock Mini 2, slicing with Cura 3.6.2. Print pauses at height and retracts filament. After inserting new filament old filament is purged and then the LCD shows a home X and Y message. At this point the tool head does not move and completion % rapidly increases to 100% and the print "completes" without actually moving any further. This same result has happened two times with two pauses set up and two times with one pause set up

@DRobertson, could you please post the .gcode? The .stl would also be useful.

Also, did you update to the bug fixed version posted here?

The .gcode and .stl attached. I was using the PauseAtHeightorLayer3.py file. Hope this helps.

I have a TAZ 6 so I can't actually test it but a manual inspection of the .gcode looks good to me.

Do you know how much time elapsed between the beginning of the pause sequence and the failure, i.e. were you sitting at the printer?

The LCD showing a home X and Y message is suspicious. The .gcode only disables the E stepper (so you can manually move the filament) so X, Y, and Z should not be affected.

Since you are running 3.6.2 I assume that it has a new version of Marlin firmware. Can you post the firmware version you have installed in the printer, please? I believe this version of CuraLE is still an alpha version so there may be a bug lurking somewhere.

You could try adding a "G28 X Y" after the "M117 Check nozzle!" in the .gcode file. Homing Z might be dangerous so I'd avoid doing that one.

Another option would be to use the Color Change post processing script (but use my updated version posted in https://code.alephobjects.com/T4975). This uses the firmware M600 command (http://marlinfw.org/docs/gcode/M600.html) which may work better for you. It doesn't have a height option but you are using layer number so that should work.