Interesting. I had been wondering how it calculated time.
Nonetheless, it is definitely very inaccurate. for short prints (<30 min in Cura) it's usually off by 2-3X, but for longer prints it's still off by 1.3-2x, which is pretty significant.
Interesting. I had been wondering how it calculated time.
Nonetheless, it is definitely very inaccurate. for short prints (<30 min in Cura) it's usually off by 2-3X, but for longer prints it's still off by 1.3-2x, which is pretty significant.
Like said, it highly depends on the printing speed and the model on how "off" the estimates are. But yes, it's a known problem.
Yes, it is quite disappointing when you have been told that something takes 3 hours to print but in fact you will go to bed 3 hours áfter that.......
But i understand David's problem (it is actually hard to calculate the time of the instantaneous differential velocity vector changes with so many -different- movements) and the fact that he wants to focus on other improvements first.
However, looking at Git, one could try to build a simple db as a plugin with estimated and actual times and calculate some correction factor. So the more you print, the better the estimate gets. But then again, it will remain a guess. An educated guess, but still inadequate at some level. It would be more like a workaround, not a solution.
I find Cura is not far off with printing estimates,
I have printed some large objects, and after slicing I get a estimate of, say 40hours, but when I start to print the window gives a much larger estimate like 75Hours,
but after around 30mins this goes back down a lot, and I must say that the original estimate is not far off
after printing a lot of objects I have a pretty good idea what the total duration will be,
and longer print times are more accurate the the short prints.
I think it's "large objects have more accurate times than small objects".
Cura would have to know your 3 acceleration parameters (XY, Z, Extruder) and your XY Jerk and your maximum accel and velocity and default velocities (xy, z, extruder). Knowing all that, and assuming you are using Marlin, and knowing which version of Marlin it is (most seem to calculate speeds the same way), Someone could duplicate the Marlin logic and figure out how fast Marlin will print each of thousands (hundreds of thousands possibly) segments, then add those all up and get a very very accurate result.
But it's not worth it. There are so many other features that haven't been done yet that are more important. Like for example Marlin needs a simulator that can take in the viscosity of your filament and the nozzle size and other factors and predict the delay response between when you speed up the extruder and when the filament actually comes out. Marlin should then reverse the process and ask for more filament before it needs it and stops it before it wants it to stop and so on to have the exact right amount of filament all the time instead of under extruding at the begining of every segment as it is speeding up and over extruding at the end of every line segment.
Also cura should do variable layers - thinner layers on the tops of sphere's for example.
That's just 2 of 100s of features that are more important than working out how long a print will take.
Recommended Posts
gr5 2,234
My times aren't off by *that* much. Cura assumes the machine will print at the speed you choose so it adds up all the line segments and assumes the speed you chose e.g. 100mm/sec.
Marlin takes the gcodes and limits the speed based on things like acceleration chosen and other factors (something Marlin calls "jerk" but is in fact instantaneous differential velocity vector change). So if you have lots of long moves it tends to be accurate but if you print something small, then those short segments never get up to the full, asked-for speed and it takes longer to print than Cura thought it would.
Link to post
Share on other sites