Skip to content
This repository has been archived by the owner on Jan 17, 2018. It is now read-only.

PauseAtHeight: added extrude amount option #20

Merged
merged 6 commits into from
Oct 24, 2016

Conversation

peteruithoven
Copy link
Contributor

See #19
I have not tested this yet with an actual print

See nallath#19
I have not tested this yet with an actual print
@@ -42,6 +42,14 @@ def getSettingDataString(self):
"unit": "mm",
"type": "float",
"default_value": 0
},
"extrude_ammount":
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Typo in the setting key 😉

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just trying to be consistent with https://github.com/nallath/PostProcessingPlugin/blob/master/scripts/PauseAtHeight.py#L38 ;) No just kidding, I should probably fix both.

Copy link
Collaborator

@Ghostkeeper Ghostkeeper Sep 27, 2016

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, right, didn't see that.
Fixing both would be nice, though it's not your obligation.

@peteruithoven
Copy link
Contributor Author

peteruithoven commented Sep 26, 2016

As usual I'm struggling with G-Code, it doesn't seem to extrude the amount I ask it to extrude, even after lowering the feedrate to a normal rate;
2002dc9

The M83 should cause the extrude value to be relative, this is also clearly required for the retraction step. But still it usually extrudes 5 or 10mm when I input 50 for example. I'm distrusted the motor disable (M84), but removing it didn't help. An important piece of that G-Code:

;TIME_ELAPSED:20.878
;TYPE:CUSTOM
;added code by post processing
;script: PauseAtHeight.py
;current z: 1.000000 
M83
G1 E-10.000000 F6000
G1 Z2.000000 F300
G1 X190.000000 Y190.000000 F9000
G1 Z15 F300
M84 E0
M0 ;Do the actual pause
G1 E50.000000 F200
G1 E10.000000 F6000
G1 E-10.000000 F6000
G1 Z2.000000 F300
G1 X111.100000 Y111.100000 F9000
G1 E10.000000 F6000
G1 F9000
M82
;LAYER:7
G0 X111.100 Y111.100 Z1.000

Settings used for this G-Code

  • Pause height: 1
  • Head park X: 190
  • Head park Y: 190
  • Retraction: 10
  • Extrude amount: 50

@Ghostkeeper
Copy link
Collaborator

Ghostkeeper commented Sep 27, 2016

I think I see what you mean. The problem is that the material is retracted when you try to extrude 50. It'll extrude 40 then, because the filament was 10mm above the nozzle.

What you want is to have the extrude one line lower, between G1 E10.000000 F6000 and G1 E-10.000000 F6000. I don't know why it does that little drop of the material there, but it's not retracted at that point so you can extrude your 50.

@peteruithoven
Copy link
Contributor Author

Ah because it's at -10 (that 10mm above the nozzle)... Good catch.
I'll try this. But I'm afraid it's not the complete solution, because it didn't seem to extrude even 40mm.

@peteruithoven
Copy link
Contributor Author

Same result, I see maybe 3mm being extruded with the settings mentioned above.

@peteruithoven
Copy link
Contributor Author

The G-Code as it is generated now:

;TIME_ELAPSED:20.878
;TYPE:CUSTOM
;added code by post processing
;script: PauseAtHeight.py
;current z: 1.000000 
M83
G1 E-10.000000 F6000
G1 Z2.000000 F300
G1 X190.000000 Y190.000000 F9000
G1 Z15 F300
M84 E0
M0 ;Do the actual pause
G1 E10.000000 F6000
G1 E100.000000 F200
G1 E-10.000000 F6000
G1 Z2.000000 F300
G1 X111.100000 Y111.100000 F9000
G1 E10.000000 F6000
G1 F9000
M82
;LAYER:7
G0 X111.100 Y111.100 Z1.000

@peteruithoven
Copy link
Contributor Author

After doing another test I realize we'll also need to compensate for the extra extraction in the layers after the pause.

@peteruithoven
Copy link
Contributor Author

Changing all the extrusion commands after the pause doesn't seem scalable, if anyone has an idea on how I could add extra extrusion without this that would be very welcome.
Ideally I could be reset the extrude amount the firmware thinks it's at, but I don't think that's possible.

@sjoerdtimmer ([email protected]) and I figured out how we could use G92 to reset the E position after the pause to the position it was before the pause.
@peteruithoven
Copy link
Contributor Author

@sjoerdtimmer ([email protected]) and I figured out how we could use G92 to reset the E position after the pause to the position it was before the pause. So this seems to work.

It allows extra extruding, before a resume. It still works when someone doesn't change the material, it will just extrude more.

What do you guys think?

@nallath
Copy link
Owner

nallath commented Oct 17, 2016

Could you remind me to look at this in a few days? Due to the release the 18th we're super busy right now.

@Ghostkeeper
Copy link
Collaborator

@nallath Here's a reminder.

@nallath
Copy link
Owner

nallath commented Oct 19, 2016

Thanks!

Did you guys test both cases?

The code looks fine, so i'm willing to merge it if it's tested.

@peteruithoven
Copy link
Contributor Author

I totally understand, no problem, great work on the new Ultimaker.

In the mean time I'm still improving this solution. Adhesion is a challenge, especially when using multiple material types, so I'm working on a redo layers setting. This would allow you to redo a number of layers after the pause.

I'm also not sure how to explain that extrusion of 128 is needed, for Ultimaker2's. I'd like to recommend this in the description.

@peteruithoven
Copy link
Contributor Author

I haven't tested this yet on anything else than a Ultimaker2. Simply resuming, without material change, works fine, it just extrudes extra.

@nallath
Copy link
Owner

nallath commented Oct 19, 2016

Extrudes extra? Won't that mess up the print?

@peteruithoven
Copy link
Contributor Author

It's not perfect. It's extruded while the head is this in it's pause location, but it could be pulled towards the print.

@peteruithoven
Copy link
Contributor Author

It's getting there, my English liquorice. The only black I have is abs (besides hips and colorfabb ht) which makes this print even harder.
img_20161019_225951

@peteruithoven
Copy link
Contributor Author

I've added a redo layers option to increase adhesion and I've improved the extrude amount description, including the seemingly random 128.

@nallath
Copy link
Owner

nallath commented Oct 24, 2016

So is it good to merge now?

@peteruithoven
Copy link
Contributor Author

I think so, but I'm happy to improve it where needed.

@nallath nallath merged commit de43f6f into nallath:master Oct 24, 2016
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants