Is the a misconception about printing speeds?
-
@bot
The formula to calculate extrusion volume is not (Layer Height * Extrusion width).If you want to get dimensionally accurate parts, that formula is going to be off by a factor of roughly 9% (obviously varying with layer height and extrusion width).
Ok, that's only for the dimensions of the extrusion, its not like it ruins the positioning accuracy of the printer.
And it was the case back when I was part of a team looking at this, that fixing the issue was not at all simple due to the way Cura's code is structured.
That was a few years ago, it might have been fixed by now...But then we live in a world where people think that extrusion width should be the same as nozzle diameter.
Oh, and 4 digits? Whats the resolution of your extruder motor? You would need fairly substantial gearing to get 10,000 steps/mm
Compounding error might be an issue (if they are bad at coding), but with a print taking multiple meters of filament I don't think a sub-micron level of resolution is going to be noticeable. The tooth-to-tooth error on the drive gear will probably be a bigger source of error. -
Interesting, I see.
The problem with S3D's 4 digits is that sometimes, a value of 0 will be produced, when there is in fact not zero extrusion taking place. With my setup, I can theoretically extrude ~0.00025 mm in one microstep. I have 50:1 gearing on my extruder. Even though I can't step smaller than that, there is certainly benefit to having the resolution.
Inconsistent extrusion rates become problematic when you are trying to smoothly operate stepper motors or calculate pressure advance. Also, when the layer has a large aspect ratio, the approximation of a rectangle becomes totally accurate enough.
But, like you say, with smaller aspect-ratio layers, the inaccuracy does become problematic. I haven't quite considered to what extent, because printing at low resolution doesn't really go hand-in-hand with caring about fine tuning the extrusion rate.
-
@theruttmeister said in Is the a misconception about printing speeds?:
But then we live in a world where people think that extrusion width should be the same as nozzle diameter.
What's wrong with extrusion width matching the nozzle diameter? My experience is that I get better quality prints than when the extrusion width is greater than the nozzle diameter.
-
@mrehorstdmd said in Is the a misconception about printing speeds?:
@theruttmeister said in Is the a misconception about printing speeds?:
But then we live in a world where people think that extrusion width should be the same as nozzle diameter.
What's wrong with extrusion width matching the nozzle diameter? My experience is that I get better quality prints than when the extrusion width is greater than the nozzle diameter.
Same here.
-
@RyanP said in Is the a misconception about printing speeds?:
So many people are simply selecting a profile like "fine", selecting a speed of 60mms, and letting it go.
That's sounds as a good user experience. One can argue that requiring the users too tweak too many variables is typically a sign of an immature technology.
-
@zapta said in Is the a misconception about printing speeds?:
@RyanP said in Is the a misconception about printing speeds?:
So many people are simply selecting a profile like "fine", selecting a speed of 60mms, and letting it go.
That's sounds as a good user experience. One can argue that requiring the users too tweak too many variables is typically a sign of an immature technology.
While i 100% agree with you, again, nobody has told people not to tweak these variables. So where the real problem lies is in ones interpretation of the base settings.
If you and i have the same printer, printing the same things, you using stock settings and profiles, me highly tweaked.
Lets say i was to ask you what speed you print at, and you answered 60 to 70mms. Youve uncovered no hidden settings and just picked a preset cura profile, you are not truly printing at those speeds. The important aspects of the print (solid tops/bottoms, walls, etc are printed vastly slower. Generally these slower speeds are 50%. So how can you tell people that you print at 60+ mms when the majority of the print is done at 30mms.
This leads to a lot of problems because there is no equality between printers, hardware, software, firmware, and users.
The simplicity of the users interaction is great. When was the last time you calibrated you inkjet or laserjet printer? If ever?
You have people out there giving advice to other people and they really dont know anything about their printer. These people are producing amazing prints at breakneck speeds...or what looks like breakneck speeds, but are printing incredibly slower and they dont know it.
And easy solution to this is changing the name "print speed" to something like "base speed". Then when processing the slices to produce the GCode, it provides you with "average speed". That calculated average speed in many case is going to be 30 to 40mms.
-
@RyanP It kind of gets worse than that because very few moves are completed at a fixed velocity. Most print moves have an acceleration phase, a steady state phase and a deceleration phase. So even when people state that they are printing at a speed of nn mm/sec, that's probably only the steady state phase.
As speeds are increased, the effect of the acceleration and deceleration phases becomes more important. To illustrate, let's say we were printing at 200mm/sec with an acceleration of 1000 mm/sec^2. For the sake of argument, we'll assume that this is a move from standstill and that the initial velocity is zero, and that "jerk" is not applied. The time for the acceleration phase is V(final) - V(initial) /acceleration so 200-0/1000 = 0.2 seconds. The distance travelled during the acceleration phase is (S=1/2at^2) = 20mm. So any move less than 40mm in length will be either accelerating or decelerating and will never actually attain the speed of 200mm/sec. Even a move that is 50mm in length will only be carried out at a speed of 200mm/sec for 10mm - the rest of the move will be accelerating up to that speed or decelerating down from that speed.
-
@bot said in Is the a misconception about printing speeds?:
I have 50:1 gearing on my extruder. Even though I can't step smaller than that, there is certainly benefit to having the resolution.
Unless you are running some special gears I would expect you to have far more backlash than you have resolution... I've only seen extruder resolution become a noticeable factor in print quality at very low speeds, when you can actually see the full-step cogging that steppers are prone to. The gears are great for increasing torque, but are also good for getting the motor into its optimum speed range (which is a thing for steppers).
Trailing 0 errors (I think that's the right term) would probably need to be fairly high for you to see a significant error over a print that involves 30 meters of filament.
And you are assuming that the slicing engine isn't using more (or even unlimited) resolution internally, which it could easily do.But, like you say, with smaller aspect-ratio layers, the inaccuracy does become problematic. I haven't quite considered to what extent, because printing at low >resolution doesn't really go hand-in-hand with caring about fine tuning the extrusion rate.
Even at high aspect ratios (say 5:1) you can still easily have error of 5%. Not critical, but if you are trying to get screw-threads to fit without having to use horizontal offset, it makes a significant difference.
@mrehorstdmd said in Is the a misconception about printing speeds?:
What's wrong with extrusion width matching the nozzle diameter? My experience is that I get better quality prints than when the extrusion width is greater than the nozzle diameter.
The way that material flows as it exits the nozzle.
Basically the face around the opening (Stratasys call it the anvil apparently) smashes the material flat, getting you both good inter-layer bonding, but also a well controlled bead. If you try and reduce the extrusion width too much, the center of the extrusion can 'walk'.But there are some many factors that go into good profiles that
-
@RyanP said in Is the a misconception about printing speeds?:
Generally these slower speeds are 50%. So how can you tell people that you print at 60+ mms when the majority of the print is done at 30mms.
One way to view the variable speed is using an histogram that shows the percentage of time at each speed range. I used once an Arduino stepper motor analyzer to collect and generates such histograms for the extrusion speed (see below).
Duet could easily collect this data and display it on DWC in realtime during the print.
-
@theruttmeister said in Is the a misconception about printing speeds?:
Unless you are running some special gears I would expect you to have far more backlash than you have resolution... I've only seen extruder resolution become a noticeable factor in print quality at very low speeds, when you can actually see the full-step cogging that steppers are prone to. The gears are great for increasing torque, but are also good for getting the motor into its optimum speed range (which is a thing for steppers).
Trailing 0 errors (I think that's the right term) would probably need to be fairly high for you to see a significant error over a print that involves 30 meters of filament.
And you are assuming that the slicing engine isn't using more (or even unlimited) resolution internally, which it could easily do.But, like you say, with smaller aspect-ratio layers, the inaccuracy does become problematic. I haven't quite considered to what extent, because printing at low >resolution doesn't really go hand-in-hand with caring about fine tuning the extrusion rate.
Even at high aspect ratios (say 5:1) you can still easily have error of 5%. Not critical, but if you are trying to get screw-threads to fit without having to use horizontal offset, it makes a significant difference.
It's not about accuracy, it's about resolution. Absolutely of course the backlash is more than the microstep resolution (backlash doesn't affect extruder accuracy as much as it affects retraction accuracy). But if you don't even have the resolution, tiny amounts of inaccuracy mean nothing. If you want to complain or deal with tiny amounts of inaccuracy, you better have about ten times the amount of resolution as the motion you want to be accurate.
50:1 may very well be excessive in most cases, but when dealing with 0.15 mm nozzles and 20 micron layers, it's absolutely a requirement to have that resolution, especially if your models are tiny with small segments -- which they probably are if using such nozzles and layer heights. Using 64x microstepping might help, but IMO the gearbox is a better alternative because you're always basically guaranteed the full step resolution. When using 64 x microstepping, your actual consistently achievable resolution is worse.
As for the slicer engine internally using higher resolution than output -- it better be! But even still, if that added resolution is thrown out before GCode output, what's the point? Consider this GCode:
; [...] G1 xxx E0.0002 G1 xxx E0.0005 G1 xxx E0.0002 G1 xxx E0.0005 G1 xxx E0.0002 G1 xxx E0.0005 ; [...]
Let's assume that each of those segments is alternately x length and 0.5x length. The extrusion rate is varying wildly.
Of course, it should actually be:
; [...] G1 xxx E0.00025 G1 xxx E0.00050 G1 xxx E0.00025 G1 xxx E0.00050 G1 xxx E0.00025 G1 xxx E0.00050 ; [...]
In the first case, given a microstep resolution of 0.00025 mm, what would the step pulse generation look like? Something like this?:
; [...] G1 xxx E0.0002 ; no steps generated, nearly a full step amount "saved" in memory by firmware. G1 xxx E0.0005 ; two steps generated. Is the partial step acted upon yet? Probably not. G1 xxx E0.0002 ; okay another nearly full step. Do we now step twice or wait until we have 3 nearly-full microsteps? G1 xxx E0.0005 ; Well, I know we can do 2. But wait, we're way out of whack here. Should we just step 4 whole microsteps? TBH I'm confused. G1 xxx E0.0002 ; god damnit... G1 xxx E0.0005 ; just send them all send all the damn microsteps ; [...]
But if your GCode resolution comfortably exceeds your microstep resolution, you can not really encounter this problem to that degree. Granted, it really is an edge case, but if you're arguing about the width of a trace being 50 microns too wide, this is the kind of stuff we're dealing with to be able to reliably extrude smoothly and realize good accuracy. If your walls are bumpy messes due to weird extrusion movement, you're never gonna be accurate at all.
-
@bot
Unless you have a very special extruder with the worlds smallest melt chamber I suspect the extruder being in steady-state is more important than the resolution in either g-code or filament control.I've occasionally though about trying to design an extruder for high detail/high resolution. But I think you would need to go down to 1mm or smaller filament to get the kind of control you need. And I don't have anything I need to print that badly.
If you are printing at those sort of layer heights and extrusion widths, yes that resolution is important... but if you are doing that, are you also using a decent screw-drive for X/Y positioning? Have you switched to ball-screws? Are you using a linear encoder on your Z axis to make sure you 20 micron layers are actually 20 microns, consistently? Aiming for sub-micron resolution while also using belt-drive is a strange place to be.
FDM machines are inherently low resolution devices, its one of their biggest advantages.Besides, with just a 50 micron error on trace width... that's at least 100 microns of tolerance. That means for a screw I have to leave 200 microns of clearance.
I know I just said low resolution... but 8 thou of clearance? That's just rubbish.
Besides, its not like its hard to calculate it correctly. -
@theruttmeister I don't think a special extruder is needed. I'm using an E3D v6, with their 0.15 mm nozzle.
I usually print 40 micron layers with 0.16 mm extrusion widths. Theoretically, I could do 20 micron layers, but some smaller details might get slightly over or under extruded.
My Z axis has a c5 precision ball screw, and my full step resolution on Z is 5 microns.
X/Y are belt driven, with 40 micron full step resolution.
But, even with all that resolution, I'm happy if my accuracy is within 0.2 mm. It's usually much better when I can measure it. Cubes come out within 0.05 or less consistently.
50 micron error on the trace width was just a number I threw out. I seem to see much less variation than that on an individual trace. But, measuring an individual trace can be an exercise in frustration. All I do is strive for the best accuracy possible, and that always entails "throwing resolution at the problem." Accuracy is essentially impossible without resolution. Resolution in no way guarantees accuracy, though. Granted.
But, to me, the "error" in approximating a trace width to a rectangular prism is not really an error in the calculation, but an error in how the wet noodle of filament decides to fall out of the nozzle. If your layers are so damn small that the difference in nominal width and actual width is 0.01 mm or less, is that really a concern that the slicer should deal with? Maybe. I don't know. Is there a good way of dealing with it that isn't just akin to dialing up or down the extrusion rate, which introduces other problems?
Interesting discussion. Thanks for bringing it up. I have long ago accepted the "limitation" of the rectangular prism approximation. I'll give it a second thought if it seems like print accuracy can be improved noticeably.
-
@bot
The challenge is that for Cura at least, extrusion volume is a global value. So you can't use flow rate to correct it, because doing that messes up the flow rate on solid surfaces.Poking at a calculator I made a while ago, an error of about 11%, for 0.25x0.5 extrusion... is about 5 microns of extra width. Maybe. I've not had enough caffeine to really try and work out the correct formula for running that backwards.
What I remember is that in empirical testing back when we were working on this, gave us threaded parts that went together first time when we made the flow rate correction. But would jam if we didn't. Then we realised it would be a real pain to work a fix into Cura, so we worked on other things.
-
@theruttmeister said in Is the a misconception about printing speeds?:
The challenge is that for Cura at least, extrusion volume is a global value. So you can't use flow rate to correct it, because doing that messes up the flow rate on solid surfaces.
Not so. Cura allows you to control flow rate on a per print move basis.
-
@Phaedrux
As I mentioned umpteen posts ago, the last time I looked was several years ago.I see that Cura now lets you control flow rate for the outer walls. Which will be enough to let me correct there.
Now get off my lawn!
shakes fist at young people