Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Estimate of filament used should be calculated before applying extrusion multiplier #4087

Open
DrLex0 opened this issue Aug 16, 2017 · 2 comments

Comments

@DrLex0
Copy link

DrLex0 commented Aug 16, 2017

Version

Any recent one (verified in 1.3.0-dev-13f121e)

Behavior

  • The extrusion multiplier should not be included in the estimates of used filament and cost. These values should be based on the non-multiplied coordinates, or there should be an option to calculate them as such.
  • Steps needed to reproduce the problem
    • Slice any model with any set of settings where filament density and cost are specified, and note the estimated amount of used filament and cost of the print.
    • Slice it again after only changing the filament extrusion multiplier.
  • Expected Results
    • The estimates are the same
  • Actual Results
    • The estimates change

I believe extrusion multiplier is generally poorly understood, and many use it as a general-purpose fudge factor to compensate for poor configuration elsewhere (there are some feature requests here in GitHub in this vein). The true purpose of the extrusion multiplier is to compensate for the discrepancy between what the slicer tells the printer to extrude, versus what it actually extrudes. This varies per filament type due to squishiness and how deep the extruder gear teeth bite into the material.
This means changing the extrusion multiplier should have no effect on the estimate of consumed filament and cost for a particular print, because the multiplier's purpose is exactly to ensure that the extruder outputs what we ask it to. If Slic3r computes from filament diameter, layer thickness, and extrusion width, that a certain print requires 100 mm of filament, then it should assume the actual amount of filament going through the extruder will also be 100mm, no matter what the multiplier is.

For me this is not a big deal because I have a high-precision scale and I iteratively adjust density based on actual versus predicted weight of prints until they match, but this means the density value I need to enter in Slic3r deviates the more from the actual physical value, the more the extrusion multiplier deviates from 1. Anyone relying on values from the manufacturer or measured in a lab, will end up confused.

In an ideal world, Slic3r would completely ignore extrusion multipliers (in the same way as it ignores filament diameter for volumetric E). It would only write them to the G-code file as configuration. Whatever software interprets the G-code (printer firmware, or a program like GPX) should then read those extrusion multipliers and apply them while converting E coordinates to stepper motor steps. Because there seems to be no standard way to do this however, we're stuck with writing skewed E coordinates, but we should at least be aware of this…

If we want to keep a fudge factor that truly instructs a change in extruded material amount, it should be separate from the extrusion multiplier.

@Tinchus2009
Copy link

I think you are worng. Basically, if you use , lets say 0.9 extrusion multiplier, the extruder will extreude less plastic than useing an extrusion multiplier of 1. So yes, the cost calculation seems ok

@DrLex0
Copy link
Author

DrLex0 commented Aug 19, 2017

@Tinchus2009 Suppose I configure Slic3r to print a solid 10x10x10mm cube with a filament of 1.75mm diameter, at 100% infill. From that information alone, we can calculate exactly the length and volume of plastic that should ideally go into the cube. The volume is obviously 1000mm³ and the length is 1000/(π*0.875²) = 415.75mm.
Now why would anyone set the extrusion multiplier to 1.1 in this case, to try to shove 1100mm³ of plastic into a volume of 1000mm³? No, the reason is because we know our extruder under-extrudes by a factor 1/1.1 for this filament, therefore to truly print a perfect solid 1000mm³ cube, we need this extrusion multiplier of 1.1. By doing this, our printed cube will truly contain 1000mm³ of actual printed material, therefore this is also what Slic3r should show as the estimate.

(Curiously, if I actually do the above with a multiplier of 1.0, I rarely get an estimate of exactly 1000mm³. This is probably due to accumulation of rounding errors. Of course the estimate is always pretty close to 1000.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants