Question about 3D Print curve resolution

Duncanator

Sr Member
RPF PREMIUM MEMBER
Question for all the 3D print gurus out there!

I've been working with 3D prints for a while now; and to smooth out the stair stepping, I have always sanded the steps down till it is smooth.
But it got me wondering: "How are 3D printers programmed to resolve curved surfaces?"

I can think of 3 ways, and each has a valid logic depending on the programmer's point of view:

1. The intended surface of the part passes through the valleys of the stair steps.
So one sands down the part to the correct surface.

2. The intended surface of the part passes through the peaks of the stair steps.
So one fills the steps, bringing the part up to the correct surface

3. The intended surface of the part passes through a midpoint between each step.
So one must half fill, then half sand down to get the correct surface.

I've been operating under the assumption that number #1 is correct, but you know what they say about assumptions!

This is not a question about how to best clean up 3D printed parts, but rather how is the programming of the printer set up?
 
I believe that the slicer software takes a slice of the object, depending on the layer height, and calculates the supposed edge of the extruded material to the edge of the slice. Since there are tiny variances on nozzle diameters, especially after being used due to wear and clogging, we get different outside edges. Some of these variances can be adjusted by the slicer software by adjusting the amount of material that is forced into the nozzle.

More material would be over-extrusion and the edge will have an excess of material which would make it wider than what the slice calculated. Temperature of the nozzle as well can cause issues. Material plays a big part as well, as different recipes of filament can cause variances.

TazMan2000
 
I stayed away from FDM printers for a long time because I was under the impression that they were incapable of producing a smooth surface. I have witnessed over and over again modelers and prop makers printing out objects and spending agonizing hours and even days sanding, priming, sanding, priming ad nauseum to achieve a smooth surface. I have been using resin 3D printers for over five years, now, and have enjoyed the near-perfect finish quality they produce - just requiring mild sanding to remove chicken skin and very slight layer lines certain prints. The drawbacks with resin printing are that the build plates are limited in size (even with the larger printers) and the resin isn't the best for maintaining shape and structural integrity on larger models over time.

I took another look at FDM printers a while back, and decided to jump in and purchased a Bambu Lab P1S Core X-Y enclosed printer because I saw some users get near-resin quality prints with it, and the price was right. Along with the printer, I also purchased a good quantity of ABS filament and a 0.2mm hot end as an option.

My first print was the typical "benchy" little boat sent from the Bambu Handy phone app. It printed fast - about 16 minutes with the included green PLA and the 0.4mm nozzle. The print was clean, but there was very noticeable stair stepping along curved edges. After printing a few more utility tools with the supplied PLA, I decided to move on to trying ABS and seeing what results I could get. My first ABS print was another benchy, but this time I used Bambu Lab Studio on the PC and made some changes to the print options before sending it over to the printer. The major change was to lower the layer height from the "fast" 0.24mm to the best-quality preset option of 0.08mm extra fine layer height. This resulted in a much longer print time, but the surface quality on the benchy was nearly perfect - looking more like something out of my resin printers - with no discernable layer lines and a clean surface with excellent fine details and smooth curves. With that, I decided to try one of the STL files that I had purchased online. The part I chose to test print was a very high-quality, dense mesh with lots of detail with both sharp edges and rounded curves, using the same 0.08mm layer height and 0.4mm nozzle with ABS filament. It took many hours to print, but the results were astonishing - it looked like an injection molded part that was incredibly strong, smooth, and contained fine detail with no visible layer lines and would require only minimal sanding with 600-1000 grit sandpaper at best to achieve a perfect surface.

Since then, I have been printing out nearly all of my own and purchased structural STL model parts in ABS filament with either the 0.4mm or 0.2mm nozzles and either .08mm or .06mm layer heights. These result in incredibly strong and durable parts that can be joined with Tamiya and Plastruct liquid cements for ABS and styrene and require minimal cleanup. At the best quality settings, they take many hours or even days to print, but I would rather have the printer do the work of producing smooth and detailed finishes than spend hours and days of agonizing sanding and priming steps to achieve the same results with "fast" prints with large nozzles and coarse layer heights.

I now use the resin printers for smaller, more intricately detailed and clear parts that can be attached to the ABS parts with either super glue, canopy glue, or epoxy that will not be stressed over time. If you have the patience, it is a winning combination!


E
 
Question for all the 3D print gurus out there!

I've been working with 3D prints for a while now; and to smooth out the stair stepping, I have always sanded the steps down till it is smooth.
But it got me wondering: "How are 3D printers programmed to resolve curved surfaces?"

I can think of 3 ways, and each has a valid logic depending on the programmer's point of view:

1. The intended surface of the part passes through the valleys of the stair steps.
So one sands down the part to the correct surface.

2. The intended surface of the part passes through the peaks of the stair steps.
So one fills the steps, bringing the part up to the correct surface

3. The intended surface of the part passes through a midpoint between each step.
So one must half fill, then half sand down to get the correct surface.

I've been operating under the assumption that number #1 is correct, but you know what they say about assumptions!

This is not a question about how to best clean up 3D printed parts, but rather how is the programming of the printer set up?

It is all about resolution.

Think if digital vs analog. Analog is the sweeping curve, digital makes it with layers.

The more digital samples, the smaller the layers, the less visible. Sculpting isnt about stackng layers.

Print thinner layers and make flat surfaces horizontal or right-angle vertical.

Minecraft vs a Painting
 
Thanks for replying, but none of these answer my question.

I am not looking for how anyone cleans up their parts or how various printers can work better. I've got that figured out.

I am looking for software information. Specifically, does anyone know how the software is trying to resolve where the layer lines land.
I'm trying to satisfy my wondering how things work, rather than advice on sanding.
 
Maybe this will help:

Is the software trying to place the line of the intended surface of the part through the steps...

in this manner...
Print1.JPG



In this manner...

Print2.JPG


Or in this manner....

Print3.JPG
 
I'm not a 3d print guy so dont know the answer BUT in graphic design, printing and lasering/cnc, going past the image is known as bleed.
So I'm guessing the question is does the software automatically bleed or not?

Cheers,
Josh
 
I think it still comes down to "pixel" resolution of both the stl as well as the printer's screen

i.e. The higher the resolution, the more pixels (vertices?) are plotted on the curve so it has to do less interpolation of straight lines between each point

It most likely then simply snaps that intersecting line to the nearest pixel based on some algorithm that determines distance

I'd imagine something like this where it takes the centerpoint of the line and the thickness and then fits it to the number of pixels for the screen resolution.
There never really is a perfect curved line, only the illusion of one. The smoothness of it determined by how many pixels it can use to perform that curve
1739920969141.png

1739920437067.png


Generally to get the same "resolution" for something without the noticeable step lines, you have to go to a larger scale for FDM vs Resin, Like say a model at 1/72 might need to be printed out at 1/32 or higher on a FDM printer to have the same quality
 
STLs and FDM printers have nothing to do with pixel resolution. The STLs and 3D Printers use a Cartesian coordinate system.

TazMan2000
 
STLs and FDM printers have nothing to do with pixel resolution. The STLs and 3D Printers use a Cartesian coordinate system.

TazMan2000
Not sure how the FDM printers work, just going off of what I generally see on sites like Gambody etc... where the FDM prints are much larger scale

Maybe I am not using the right terminology, but when you slice it for a resin printer for example, isn't that the benefit of having say a 4K resolution?

At least in terms of resin printers, each print layer essentially gets translated to a single layer of what blocks light and what doesn't. The more "pixels" the finer details. I have gone so far as using a program that lets you edit each layer so you can turn on or off pixels in places where you might have an unsupported layer that starts. That would give the chance to tweak the support and prevent something from printing in mid-air if you will

I guess technically that would be "horizontal" resolution where as vertical would depend on your layer height?

1739935580248.png
 
Not sure how the FDM printers work, just going off of what I generally see on sites like Gambody etc... where the FDM prints are much larger scale

Maybe I am not using the right terminology, but when you slice it for a resin printer for example, isn't that the benefit of having say a 4K resolution?

At least in terms of resin printers, each print layer essentially gets translated to a single layer of what blocks light and what doesn't. The more "pixels" the finer details. I have gone so far as using a program that lets you edit each layer so you can turn on or off pixels in places where you might have an unsupported layer that starts. That would give the chance to tweak the support and prevent something from printing in mid-air if you will

I guess technically that would be "horizontal" resolution where as vertical would depend on your layer height?

View attachment 1907207

Yes, you're absolutely right about the resin printers. Most home resin printers have MSLA technology which basically has a pixel resolution (except the ones that are laser based), but the filament technology ones rely on Cartesian co-ordinates. I guess I assumed that the OP wanted to know about FDM technology.

MSLA slicers simply mask out the slices and only allow light to reach where the software thinks the pixels are covered. Pretty simple. The FDM slicers probably have a greater amount of difficulty in programming to accommodate different nozzle widths, and layer heights.

TazMan2000
 
Maybe this will help:

Is the software trying to place the line of the intended surface of the part through the steps...

in this manner...
View attachment 1907108


In this manner...

View attachment 1907109

Or in this manner....

View attachment 1907110

The key word is discretization error; When printing with out of the box settings on most slicers you will get a combination of the first two you sent above; with convex features like you show above it will overshoot the curve while with concave features it will undershoot.

If your concern is that you'll have a staircasing effect on your final part I'd strongly suggest looking into variable layer heights where you can adjust the height increment along the Z -axis based upon the slope of the geometry exetera to better estimate the curve with smaller 'steps'. This would obviously increase the time of your print as it would print more layers where these smaller gradients are but will make that terrible stepping artifact it leaves behind less noticeable.
 
There's a thread on Reddit that discusses this exact question.

Short answer: different slicers behave differently. There are some experimental settings in Cura that let you specify which approximation is used, with your third hypothesis being the default.

As I've read more into this, I've come to understand that even then, the approximation is not perfectly consistent. Slicers take flat snapshots of the model at intervals of the layer height, then project them vertically without consideration of whether the subsequent layer is wider or narrower. If a layer is heading for an overhang, in an ideal world it should approximate the extrusion slightly wider, if it's heading for a convex surface it should approximate slightly narrower, but this is not the case. The real world effect is that overhangs are closer to your second hypothesis, and convex surfaces closer to your first.
 
There's a thread on Reddit that discusses this exact question.

Short answer: different slicers behave differently. There are some experimental settings in Cura that let you specify which approximation is used, with your third hypothesis being the default.

As I've read more into this, I've come to understand that even then, the approximation is not perfectly consistent. Slicers take flat snapshots of the model at intervals of the layer height, then project them vertically without consideration of whether the subsequent layer is wider or narrower. If a layer is heading for an overhang, in an ideal world it should approximate the extrusion slightly wider, if it's heading for a convex surface it should approximate slightly narrower, but this is not the case. The real world effect is that overhangs are closer to your second hypothesis, and convex surfaces closer to your first.
Thank you Krats!

You are the only one who actually attempted to answered my question. I guess that's what I get for asking a more academic question.
Half credit to TheDragon for starting to answer it.

I wasn't interested in trying to eliminate stair-stepping, or fussing with layer height. I was searching for where within those steps the dimensionally correct "part" existed - specifically in the 'Z' axis. It was more of a theoretical question than a practical one.
 
Last edited:
Holograms for smoother curves?


Some other recent advances—first—finer detail.

Next—Metals

For stronger prints

Glue

Resin

At some point in time—acoustics will be useful:


On cutting
 
Last edited:
Holograms for smoother curves?


Some other recent advances—first—finer detail.

Next—Metals

For stronger prints

Glue

Resin

At some point in time—acoustics will be useful:


On cutting

Interesting info, but does any of that explain where the surface passes through the steps on the Z axis?
 
Back
Top