I'm working on building a tool to generate G-code (a simpler slicer), and I'm trying to calculate how much filament should be extruded per movement.
Is there a standard calculation for this? Something like:
layer height * flow % * extruder diameter * distance
How does Cura calculate this?
1 Answer
Basically, all movements are (small) straight lines, the volume of a straight line is easily calculated as you already guessed.
To calculate the volume to be extruded you multiply the following parameters:
- the layer height (h)
- flow modifier (e.g. as pertectage) (SF)
- extruder nozzle diameter (d)
- distance of the straight line (l)
With this volume you can calculate how much filament you need to extrude. To get the length (thus the length defined by the E
parameter), divide the obtained volume by surface area of your used filament by:
- π * (filament radius)2 or alternatively π /4 * (filament diameter)2
To sum up, the value of E is given by:
enter image description here">