Have our slicers been wrong this whole time?
-
So, the start-of-path and end-of-path extrusion is a real pain. Retraction? Pressure Advance? Jerk? Difficult.
What if our slicers have been wrong?
Sometimes (but not always), an extrusion path is started and ended with the nozzle positioned as such relative to the theoretically perfect extrusion path:
Given a 0.4 mm diameter nozzle orifice, and a requested 0.4 mm width x 0.1 mm height extrusion path, with the start-of-path nozzle position being "centered" on the edge of the desired extrudate, this is what happens, given a fixed extrusion amount over distance travelled:
I have not thoroughly investigated the end-of-path implications of this apparent behaviour.
Should slicers start the path differently? Should they place the nozzle an extrusion-width distance into the path-length, and extrude an amount equal a cylindrical dot of dimensions extrusion width x layer height at a stand still, before continuing on with the path?
This is just a first-idea proposal, not something I've thought of a lot. I'm not married to this idea but just bringing up the concept for discussion.
Is this a problem?
-
for start the "width" that's considered safe and "best" is 1.2nozzle dia, not 1.0nozzle dia
going further, the laid down track is not [==] but (==). Difference between slicers is that "width" you set at some is from the edges of the line, so from tangent to ( all the way to tangent to ) and they position the track in such way that you have some overlap between the ( and ) parts. The other slicers assume that width is == part only so from center of ( up to center of ) and lay tracks so that they just touch assuming overlap from the volume between the center of the ( and tangent with volume between center of the ) and tangent. Every slicer does this calculation a bit different, some simplify it maximally, some go to a great lenghts to try to model it ideally
advice, ignore the 3d rendering, take a pictures of what actually happens. You can take a video both closup with endoscope camera near the nozzle and from the bottom side of the glass while printing on glass the first layer. Use PLA or TPU as they are capable of being printed on cold glass so you do not need a bed heater to get in the way
-
Yes, I get what you're saying, but I'm trying to break down the theory more precisely.
Extrusion width can easily be 1.0 nozzle width, as well as it can be 1.2 or greater. It could also be less.
Yes, the sides of the extrusion can bulge out a tiny amount. This remains a contentious issue among slicer purists. Most slicers do not model the rounded edges when calculating flow. They use a more theoretically perfect rectangular prism extrudate model. This is the model I wish to breakdown and understand first.
Here is an animation of my proposed method of starting extrusion of a path:
[Edit: Of course, it could be simplified to extrude a "dot" equivalent to a cuboid extrusion extrusion width * extrusion width, and skip the tiny extrusion in between. That would probably be best, even though you sacrifice some "accuracy" since the filament will likely pool in a circular fashion, not a square fashion. Yes, now that I think about it: ignore my fancy animation above. Check out the fancy animation below. We could simply add one segment to the start of the path, approximating a rectangular prism, instead of the cylindrical dot:
-
@bot said in Have our slicers been wrong this whole time?:
Extrusion width can easily be 1.0 nozzle width, as well as it can be 1.2 or greater. It could also be less.
"the safe value" is how much the filament bulges when it exits the hole. that's the +20% over the hole size.
- for over 120% you need flat nozzle but it works
- for under 120% you are "stretching" the filament and it works on straight lines and not on corners, also it very much depends on the filament.. some will stretch up to a point, like ABS, and others will not but will "pull the filament from inside the nozzle" like PETG or PP so you will have much more "extruded" filament than you calculated
@bot said in Have our slicers been wrong this whole time?:
Yes, the sides of the extrusion can bulge out a tiny amount. This remains a contentious issue among slicer purists. Most slicers do not model the rounded edges when calculating flow. They use a more theoretically perfect rectangular prism extrudate model. This is the model I wish to breakdown and understand first.
most? iirc slic3r (and all forks like prusa slicer), simplify3d and idea maker all use the rounded edges calculation. skeinforge too used this type of calculation so it's possible cura is using it too as it used a lot of skeinforge basics at the begining..
discrete extrusion would in theory be much more precise as you would be able to properly control amount of filament extruded but it require different extruder hardware. OTOH I'm testing voltera for past 7 days and interestingly, while they need way more precision than regular 3d printer, they do not calculate amount of extrudate from "how much they moved the motor" but rather with "how long the pressure was on" and "how much pressure they put"
-
Simplify3D doesn't model the extrusion with rounded sides. The visualization they generate is purely for show. The extrusions are all trying to be the nominal extrusion width, but fail spectacularly due to inaccurate extrusion amounts.
I think you'd be surprised that most slicers do not account for that "bulge" effect the way slic3r does. Their math for that is very special indeed.
As for the extrusion width wider than the nozzle orifice, I can understand the desire and some benefit, but it's far from required. I've spent years extruding at exactly the nominal size with pretty amazing results. It could certainly help alleviate the exact effect I'm describing at the beginning of this thread, though! The faster the plastic comes out, the sooner it will contact the build surface, the more properly-formed the start of the line will be.
-
@bot said in Have our slicers been wrong this whole time?:
Simplify3D doesn't model the extrusion with rounded sides.
Hm, you 100% sure? as I had a discussion with them few years ago about how they do calculate it and they said they do calculate in the bulges and overlap is calculated from the outside tangent on bulges. They are the only ones I'm sure do it as that's what they said (unless they lied but why would they ?!). Some years after that discussion I read somewhere a writeup about how different slicers treat this (with/without bulges, what's taken as the edge of trace, how the overlap is calculated) and there the writer confirmed about s3d and slic3r .. I'm not sure about IM but the way same parameters behave I'd say they do it too. The s3d discussion was private so I could not share that even if I had it stored (I don't ) but the writeup about a bunch of slicers and way they do this calculation was some of the popular 3d printing blogs so should be still available.
The visualization they generate is purely for show.
s3d visualisation is crap fwiw .. so not really important what they display in preview.
As for the extrusion width wider than the nozzle orifice, I can understand the desire and some benefit, but it's far from required. I've spent years extruding at exactly the nominal size with pretty amazing results. It could certainly help alleviate the exact effect I'm describing at the beginning of this thread, though! The faster the plastic comes out, the sooner it will contact the build surface, the more properly-formed the start of the line will be.
IMHO it depends a lot on the nozzle geometry and the type of plastic being used. The two extremes, PP and PLA are great for testing. If you can't do PP, PETG is having similar issues, not as prominent but... If you make a nozzle such that length of the final orifice diameter is 5x the diameter of the orifice (so for .4mm nozzle the final channel needs to be at least 2mm long) the turbulence is dropped to "insignificant" levels and you get much higher quality prints; only problem is that lenghtening that channel increases force required for extrusion, and it does not go up linearly
-
@arhi Interesting points on all fronts there.
If Simplify3D is attempting to model the extrudate in a way other than a rectangular prism, they are doing a very laughably bad job at it. The extrusion amounts they provide with the X/Y coordinates are so inconsistent that the nominal width of the path (as calculated off the known layer height and known nozzle position) varies by 0.12 mm on a 0.2 mm requested extrusion width. The numbers all appear to be hitting "close," or trying to, the nominal 0.2 mm width -- no compensation for rounded edges.
Whatever they're doing with their flow math, it's wrong.
It's possible that the S3D developer you spoke to was talking about the rounded edge of the filament due to the fact that the nozzle is round -- i.e., if you look at the extrusion from the top, the starting part of it is round. They certainly do seem to treat the beginning of the path (in terms of nozzle position) in the way I am wanting the nozzle positioned in this pair of images:
And so, possibly the "rounded edge" that the S3D dev was talking about is this rounded edge:
On the other hand, Slic3r gets much closer with their math, so their extrusion model works as they intend it to. I simply prefer to have exact control of my extrusion widths, and will account for the small horizontal "size error" in other ways. The way they account for the error is by moving the edge of the rounded filament trace in a bit, by extruding less material. However, this causes more gap in the print than the other way -- i.e., by moving the rounded edge inwards, you also bring the gap caused by those rounded edges inwards, and your print's horizontal outline is made up of the tiny points of the rounded edges, and the voids left between them. Don't sand your print!!! You'll quickly shave off those rounded edges and be left with an inaccurate print!
As for the extrusion width vs. nozzle diameter thing: you're absolutely right that different plastics might like different scenarios better or worse than others. I only really print with PLA these days, so that is my focus. Thanks for the discussion! Keep it coming if you have more thoughts!
-
@bot said in Have our slicers been wrong this whole time?:
If Simplify3D is attempting to model the extrudate in a way other than a rectangular prism, they are doing a very laughably bad job at it.
Not the only bad job they are doing
It's possible that the S3D developer you spoke to was talking about the rounded edge of the filament due to the fact that the nozzle is round
With them everything is possible, but I was directly asking about the "bulges" as when you have layers stacked so that tangents match you have a lot of empty space there and then you need to compensate that empty space by pushing extrusion multiplier up... that bits you in other places, of course :(. If you go with rectangular cross section and you get those to touch ignoring bulges, depending on your math, you will even have over-extrusion or under-extrusion, again depending on the math.
I can say that S3D math is not "too bad" overall as
- ideally calibrated extruder with 1.0 extrusion multiplier does show "perfect" cross-section on a straight piece of wall. The overlap is ~ half of the bulge nicely filling in the gaps
- small holes are not "too much smaller" (as that's not the only thing affecting them)
- gap fill works rather good
the starting part of it is round.
tbh I never cared too much about start/stop what you are investigating here as the blobs/zits/miniature holes are something I learned to live with... decade ago with PP you would have "serious" zits on your print, what we have today in "bad case of not properly calibrated system" are still an order of magnitude better .. nothing a little bit of sanding will not clean
The way they account for the error is by moving the edge of the rounded filament trace in a bit, by extruding less material. However, this causes more gap in the print than the other way -- i.e., by moving the rounded edge inwards, you also bring the gap caused by those rounded edges inwards, and your print's horizontal outline is made up of the tiny points of the rounded edges, and the voids left between them. Don't sand your print!!! You'll quickly shave off those rounded edges and be left with an inaccurate print!
that's the part I mentioned, it's not only how you calculate the volume but how you place lines one next to another, this overlap is important to get precision
As for the extrusion width vs. nozzle diameter thing: you're absolutely right that different plastics might like different scenarios better or worse than others. I only really print with PLA these days, so that is my focus.
I print so little PLA ... it is very easy material to deal with but so unusable for stuff I do that on a 500kg of other stuff I maybe go trough kilo of PLA
HIPS and ASA are lately what I use most, and back in the day it was PP and HDPE
Thanks for the discussion! Keep it coming if you have more thoughts!
drawing blank attm but ... if kids allow me for few moments of peace I'm sure I'll have some new ideas ... (need to dig out that discussion on how each slicer does it, it was a good text but can't remember if it was reprap forum or ...)
-
@arhi said in Have our slicers been wrong this whole time?:
for start the "width" that's considered safe and "best" is 1.2nozzle dia, not 1.0nozzle dia
I never understood this received wisdom and it doesn't match my own testing. 1.2x nozzle diameter seems pretty arbitrary. Does that apply to all nozzle sizes? So my 0.6 should be 0.72 extrusion width? What if I have a 1.2mm nozzle. I should use 1.44mm width? It doesn't seem to scale well with nozzle size. What about nozzle geometry, flat or pointy?
-
@bot said in Have our slicers been wrong this whole time?:
Should slicers start the path differently? Should they place the nozzle an extrusion-width distance into the path-length, and extrude an amount equal a cylindrical dot of dimensions extrusion width x layer height at a stand still, before continuing on with the path?
Maybe. Your theory is not wrong. But I think this is an area of art as much as science.
I believe that Stratasys begins with the inner wall, then simply steps out to the outer wall without stopping the extrusion (and iirc they have a patent on that). That hides any line start defect.
You would also need to compensate for any material loss or leakage from the nozzle during travel to the start.
I expect that you will find you get blobs that are just as hard to control as the voids you are trying to remove.Extrusion width can easily be 1.0 nozzle width, as well as it can be 1.2 or greater. It could also be less.
@arhi already addressed this.
Yes, the sides of the extrusion can bulge out a tiny amount. This remains a contentious issue among slicer purists. Most slicers do not model the rounded edges when calculating flow. They use a more theoretically perfect rectangular prism extrudate model. This is the model I wish to breakdown and understand first.
Not can, it does. The reality of what is happening is not contentious, the trouble of using the slightly more complicated maths when you end up needing to rewrite lots of your code to do so, is the contentious element.
This is however also not at all relevant to your point.discrete extrusion would in theory be much more precise as you would be able to properly control amount of filament extruded but it require different extruder hardware.
Explain what you mean by 'discrete extrusion'? The current 4 axis model that everyone uses is as far as I understand any possible meaning of the word, a discrete extrusion model. One where the volume of extrusion is controlled directly and independently of factors like feed rate.
The only alternative I can imagine is something like the old DC motor powered extruders on early desktop repraps/makerbots. Which would be a constant velocity extrusion model.... (although not really due to DC motors being sucky). That was just as inaccurate as you might expect.OTOH I'm testing voltera for past 7 days and interestingly, while they need way more precision than regular 3d printer, they do not calculate amount of extrudate from "how much they moved the motor" but rather with "how long the pressure was on" and "how much pressure they put"
The Voltera is dealing with a wildly different rheology problem, given that they are pushing a non-Newtonian fluid at room temperature, using a piston, through a very different nozzle.
@bot said in Have our slicers been wrong this whole time?:
On the other hand, Slic3r gets much closer with their math, so their extrusion model works as they intend it to. I simply prefer to have exact control of my extrusion widths, and will account for the small horizontal "size error" in other ways. The way they account for the error is by moving the edge of the rounded filament trace in a bit, by extruding less material. However, this causes more gap in the print than the other way -- i.e., by moving the rounded edge inwards, you also bring the gap caused by those rounded edges inwards, and your print's horizontal outline is made up of the tiny points of the rounded edges, and the voids left between them. Don't sand your print!!! You'll quickly shave off those rounded edges and be left with an inaccurate print!
Right. So your complaint with Slic3r is that it produces dimensionally accurate parts? And that when you then remove material from your print it becomes smaller and hence no longer of the correct dimensions?
And you would rather have a slicer that doesn't produce accurate dimensions, that you then compensate for in other ways...
I don't know what to say about that.
Use Cura maybe?But back on topic.
Its easy to test your theory.
In Cura (where I can remember the setting), try playing with the 'Retraction Extra Prime Amount'. Which I'm fairly sure will produce an effect similar to what you want to get.
I think that you are going to be in the system noise of it all though. You are talking... [does some calculations]
A full 'spot' with a volume of 0.025mm3.
That's ~10 microns of filament, at 1.75mm.
Or half that, if you are just trying to start a line.Admittedly I didn't compensate for wall curvature, so the spot would be a hair larger than desired. And I was assuming 0.4mm extrusion width, 0.2mm layer height.
I'd be impressed if any 3d printer could reliably and accurately enough position its filament to give you that level of control.
Yeah, system noise.
-
@Phaedrux said in Have our slicers been wrong this whole time?:
@arhi said in Have our slicers been wrong this whole time?:
for start the "width" that's considered safe and "best" is 1.2nozzle dia, not 1.0nozzle dia
I never understood this received wisdom and it doesn't match my own testing. 1.2x nozzle diameter seems pretty arbitrary. Does that apply to all nozzle sizes? So my 0.6 should be 0.72 extrusion width? What if I have a 1.2mm nozzle. I should use 1.44mm width? It doesn't seem to scale well with nozzle size. What about nozzle geometry, flat or pointy?
Flat nozzles. But then all the testing (and the recieved wisdom is probably all from Stratasys) has been with flat faced nozzles.
The theory being that to maximise inter-layer bonding strength, you need to press the bead of the extrusion into the prior layer (they call the face the 'anvil' for that reason). Going to nozzle diameter and smaller means you get uncontrolled material flow. Scientists don't like uncontrolled. Wider extrusions certainly produce stronger parts. And if you extrude wider than the face of the nozzle, you can get material sticking up that your nozzle then crashes into.
There is also the 1.6 aspect ratio rule of thumb, which is also fairly arbitrary.Given the way the material forms an extrusion, it should actually be controlled by layer height as well assuming you are calculating true extrusion width.
Depending on what slicer you are using, your '0.5mm' extrusion could easily be 0.52mm. A 0.6 nozzle/extrusion width at 0.3mm layer height, would actually closer to 0.63mm.
If you are using the 'simple' flow math.
At least according to my back of the spreadsheet calculations.This is really PhD level stuff. I stopped trying to get it better a long time ago. I have a slicer profile that produces a sufficiently consistent result. That means I can concentrate on designing the parts I happen to be printing, not redesigning the tools I'm using.
-
If extrusion paths bulge at the sides, it's because they are very thick. Very thick layers does not make accurate prints. Why do you care about 50 microns of accuracy one way when each layer you sliced your model into is 4 times that? You've thrown accuracy out the window long ago.
On top of that, stock slic3r simplifies toolpaths excessively. Accuracy thrown out the window again.
Then, to top it all off, they round the X/Y output of G-Code after they have calculated the extrusion amounts. Where is that accuracy going? Out the window.
A better approach, IMO, is to start with precision and resolution and get accuracy from there.
I use a 0.15 mm nozzle, 0.2 mm extrusion widths, 0.04 mm layer heights and my extruder is dual-gear driven with ~4600 steps/mm at 16x microstepping.
If you want to try to get accuracy out of a 0.4 mm nozzle with 0.2 mm layers by extruding a TINY amount less for every path that you extrude, be my guest. IMO, it's LESS accurate. The weight and volume of the plastic extruded is wrong.
Nonetheless, the topic at hand ignores that stuff, as it should. All of this "plastic flow" needs to be dealt with after we discover a "perfect" way to model the printing of extrusion. I.e., when we start an extrusion path, we should do it in a way that should theoretically make the path formed perfectly from the beginning. If your hardware doesn't have the resolution, then it won't cause any detriment. A single microstep of my extruder advances the filament by ~0.00025 mm. In reality, it's not that accurate and likely not that precise due to resistance and step error. Also, in reality, the extrudate being drawn out of the nozzle likely plays as much of a role in extrusion as the pushing of the filament. The pushing, at the low rates that I do, is more about maintaining a pool of melt for the nozzle to extrude from.
It's like extruding filament: the speed that you purposefully draw the filament from the nozzle is the main determining factor in filament formation, not the rate that you squish it out. Rather, it's the fact that these speeds match up precisely that gives you the right size filament.
-
And all this time I have been printing fully functional parts that meet specifications using S3D and a handful of guidelines.
Just dumb luck I guess.
Frederick
-
Coincidentally, S3D positions the nozzle in the way I propose in this thread. However, I think they just add a bit of extrusion onto the path, without the length being properly accounted for, which causes poorly-timed extrusions. S3D is by far the worst slicer I've analysed in terms of extrusion rate consistency.
They also simplify their toolpaths now, too.
But hey if it works for you, it works!
-
@bot said in Have our slicers been wrong this whole time?:
If extrusion paths bulge at the sides, it's because they are very thick.
No.
They bulge because you are extruding a viscous fluid.@bot said
All of this "plastic flow" needs to be dealt with after we discover a "perfect" way to model the printing of extrusion.
Attempting to model what the polymer does as you deposit it, without dealing with what the polymer does as you deposit it...
I mean, Cura does that.
Works just fine for my purposes. Dimensional accuracy could be better. But I'm running belt-drive so I can't complain too much.@bot said
Very thick layers does not make accurate prints. Why do you care about 50 microns of accuracy one way when each layer you sliced your model into is 4 times that? You've thrown accuracy out the window long ago.
I really don't think you understand accuracy. It is not coupled to layer height.
Well, unless you are not using the correct flow math... then yeah, you are going to have issues.
-
The feature you are talking about is directly coupled to layer height, so...
-
@bot said in Have our slicers been wrong this whole time?:
The feature you are talking about is directly coupled to layer height, so...
In what way is accuracy coupled to layer height?
I think you are conflating accuracy and resolution.
-
Well, you lose the ability to maintain accuracy depending on what way you measure accuracy.
I presume you're speaking about X/Y size. What about the profile of the part in other dimensions? Z? Well, it can only be accurate, rounded exactly to a layer height. So, that's one basic way that we (potentially) lose accuracy. You could add on as many different sized layers on top to correct that. Fine. Z is now "accurate."
What if you have to print a slope? How shallow is that slope? If you measure the part in any way other than pure X/Y measurements, is it no longer talking about accuracy?
Are we sitting here printing calibration cubes all day? Not me. I print elaborate, detailed, complex parts that take days to complete.
Accuracy is not fudging the numbers by 8 microns to try and move the edge of a tiny rounded piece of plastic that is 40 microns tall inwards. Accuracy is making a part that matches as closely to cad as is possible.
-
@bot said in Have our slicers been wrong this whole time?:
I presume you're speaking about X/Y size.
No. I'm taking about the width of the extrusion. Its accuracy is fundamental.
But anyway.
You describe Slic3r as doing this:
fudging the numbers by 8 microns to try and move the edge of a tiny rounded piece of plastic that is 40 microns tall inwards.
You also describe Slic3r as producing dimensionally accurate parts, that if sanded down, are then undersized.
Accuracy absolutely is moving a tool path to produce the correct results.
It sounds like Slic3r does a better job than most at it.Accuracy is making a part that matches as closely to cad as is possible.
Perhaps.
In the real world we deal with DFM and all the wonderful limits of the tools we use to actually make the real object.And possible is doing a lot of heavy lifting in that sentence.
-