-
Notifications
You must be signed in to change notification settings - Fork 32
PauseAtHeight: E instructions after pause #55
Comments
The part that the PauseAtHeight script inserted only goes up to the It seems like it's working all right for me. Here's a sample of what I get:
|
@Ghostkeeper Well, it seems all right for me as well, but what I see in real life is different. The head moves back in position when I resume (right x, y, z), retracts a piece of filament, then start printing. Also I noted a few things in your Gcode:
You have two Z movements before pausing, I have one, but that's probably because we don't have the same version of the plugin. You also didn't put any retraction/extrusion. I retract 30 mm when I pause, and extrude 100 mm before resuming the print. Also, did you try this Gcode ? Do you see a retraction when the head moves back in position ? |
Ah, I think I'm onto something. First, discard my first post. I had a custom version of the pauseAtHeight plugin. I recently updated to Cura 3, and installed the pauseAtHeight plugin from the master branch of this repo. We should have the same version of the plugin. Here is a piece of G-code with a pause. Also, I forgot to mention in my first post that I redo one layer after the pause. Very sloppy first post, sorry...
So in the G-code, I have layer 36, a pause (inserted by the plugin), and layer 36 again (inserted by the plugin). As you can see, after the pause the plugin set the extruder to absolute mode ( All this results in what I described previously: when I resume my print, the head moves back into position, retracts (actually the extruder's position is set to a value inferior to what it should be), and then prints again. Does it make sense ? Am I clear ? Also, I think there is another bug: the last extruder position before the pause is |
Actually the last extruder position before the pause is But I see what you mean. It looks like the "Redo Layers" functionality simply copies over the g-code from previous layers without paying attention to the position of the extruder. We should include some trickery with G92 there. |
Oh ! I did see that one. Ok cool then, this is fine.
What do you think the best way to go is ? I can make a PR. I see in the code of
So we can probably increment all the E values of the layers after the pause. It might be resource intensive to do that though, but not sure. EDIT: |
The extruder absolute position is reset to the value it had at te begining of the first layer redone.
Made a PR: #59 I'll try it when I can at work, but I don't see why it wouldn't work. What do you think @Ghostkeeper ? |
I can confirm this fix works in real life. My print resumed, the extruder was in the right position, and the "redo layers: 1" effectively reprinted tha layer before the pause. |
Hi,
I don't understand something. I use the PauseAtHeight plugin very often. Here is a sample of what it generates:
As you can see before the pause the extruder is set to position 94.54111. During the pause, extruder is set to relative mode, does some stuff, and then reset to absolute mode. Previous position is then restored (G92 E94.541110).
But then, the extruder is set to odd values:
It seems after the pause the absolute values are reset.
I'm asking this question as an introduction for a bigger problem: after the pause and after the printhead moves back into position, some material is retracted. I observed that for all my prints. The amount of material retracted varies. I've been chasing this bug for some time now.
The text was updated successfully, but these errors were encountered: