Cura: Show Material Usage in Grams

Created on 30 May 2016  路  16Comments  路  Source: Ultimaker/Cura

Cura should show print material usage in grams. Filament is sold by weight, with spools sold as 750g, 1kg, or even by the imperial pound. It's not common knowledge to know how to convert between weight and meters of filament. And this calculation will be dependent on the material and diameter. Listing this by weight is more clear and works for all materials and printers.

Old way
old

Better way
new

Most helpful comment

There is a plug-in that gives this functionality: https://github.com/nallath/PrintCostCalculator

Also, for version 2.2, we're including this functionality by default.

All 16 comments

There is a plug-in that gives this functionality: https://github.com/nallath/PrintCostCalculator

Also, for version 2.2, we're including this functionality by default.

Cura knows exactly how "long"/"far" it tells the 3d printer to extrude. To calculate the weight, we need to know the filament diameter and the density of the material. The former is known to a fair accurate value, the latter is very material-dependent. There would have to be a way to set that property. We're working on adding that

Edit: Aww, too slow.

Note that prints are often not fully dense, depending on the settings (notably extrusion speed) and the printer (there should be improvement with the UM2+). So the actual weight of the model and the length of extruded filament will often be lower than calculated.

There would have to be a way to set that property

Aren't the material profiles intended to store such information ?!?

Aren't the material profiles intended to store such information ?!?

Eventually: yes.
Currently: no.

Anyhow, the figure in length of material is always going to be more accurate than the figure in weight (or cost!).

We're working on improving how all of this is handled.

@DDDirk I guess for these cases a correction factor would be useful in 2.2. Just a simple multiplier in the general settings or printer specific as an hidden option.

Well, that depends not only on the print speed and the printer (and if the nozzle is (slightly) clogged for example), but also on the material (even the colour can make a big difference) and still other factors, so it's not that straightforward. I am researching this in different ways, but until such things are more certain one should keep in mind that the value a slicer gives for the extruded material (be it in length or weight) is a nominal, calculated, value, which may differ greatly from the actual value (especially at high extrusion speeds).

The calculation it makes is a naive one: pi * (line width)^2 * extruded length * density

Also, it doesn't even account for different line widths for different parts of the print if they are not the same as the Line Width setting.

@DDDirk I understand what you mean. By adding colors the mixed PLA filaments changes it's properties, like viscosity, melting point, etc.
I just thought about a simple way to correct it, like a multiplier used when calculating a general overhead surcharge.
That's true! E.g the time is also a estimated value. The G-code does not tell how much time an action take, but tells where the action ends. I guess the estimated time is calculated via constant speed and does not take care about the mass inertia, etc.

@Ghostkeeper That brings me to an idea. What about adding a tooltip, which tells the user about that fact? For us it is trivial, but new endusers might expect something more precise.

For me all this calculations about printtime and used filament is not (and must not be) a exact science rather a kind of indication? (don't know the right word for "Anhaltspunkt").
For example the printtime calculation in the legacy cura didn't ever meet the real performed printtime on my machine (because cura doesn't know my firmware settings) so I tweak the code to multiply the calculated time with a correction factor and this went very well.
Also the filament usage in m and gr are only estimated but I see rough if the filament I have is enough for the planned printjob. Surely I didn't start a job if cura says it needs 99grams of material and I have only 105grams left on my spool ;-))

Yes I agree it certainly doesn't need to be exact, and I'm glad it's coming back in the next version :) If it's just an estimate, it's a more useful estimate if it's in the same units as filament is sold in.

Is there a material selection somewhere in Cura that could be a starting point to implement this?
I found the directory with the material profiles but no UI control for the user to ever select a material.

@MarcusWolschon: what type of printer do you use? For the UM2, it was long ago decided that material was to be handled on the printer, which is why there is no material selection in Cura if you select a UM2

Yes, a UM2 with the modification has_materials=true and I also created an i3 Prusa for testing.
(I'm currently still working on creating a UM2 profile for OctoPrint. Ulti-GCode doesn't work there, so material must be handled in the Slicer.)
I found temperature settings (greyed out) but no kind of material selection dialog.

For use with octoprint, you should set the gcode flavor to reprap and add start- and end-gcode:
https://gist.github.com/fieldOfView/ae85f755fc70d1c65e6968a870dfef0c
(this is for 2.1; for 2.2 the syntax is different)

This issue can be closed

Was this page helpful?
0 / 5 - 0 ratings

Related issues

mubarak111nsu picture mubarak111nsu  路  3Comments

Nemernemer picture Nemernemer  路  3Comments

Liger0 picture Liger0  路  3Comments

muhammadelmogy picture muhammadelmogy  路  3Comments

ferociousdiablo picture ferociousdiablo  路  3Comments