Jump to content

STL export parameter 'surface deviation' question


Rob de Bie

Recommended Posts

I've drawn this RNLAF F-104 start cart in 3D, and I'm busy having it printed in 1/72 scale (hello Brian!).

 

rf104-32.jpg

 

I run into a problem with the STL export. It has four parameters:

 

  Surface deviation

  Normal deviation

  Max edge length

  Aspect ratio

 

I'm quite sure the last two parameters are not important for my purposes: I don't care about the width and length of the STL triangles. 

 

The normal deviation is the angle between the normal vectors of the facets. It will determine the number of facets when you create a circle / cylinder or a radius. If you set the 'normal deviation' to 1 degree, a circle will have 360 facets. But my conclusion is that even this parameter is not important, because it is 'overruled' by the 'surface deviation'

 

To understand the 'surface deviation' parameter properly, I made a simple model in Excel. The blue circle represents the CAD model of a circle (think of a cilinder). In red is the STL faceting, in this case 6 facets to create a very rough approximation of the circle. The green circle represents the smallest diameter that the facetted model creates. The distance between the blue and green circles is the 'surface deviation'. For this example, with R=1, surface deviation is 0.134.

 

rf104-51.jpg

 

Below the number of facets is doubled, to 12. Surface deviation is 0.034, four times smaller.

 

rf104-52.jpg

 

Here the number of facets is again doubled, to 24, and the lines almost coincide. Surface deviation is 0.0086, sixteen times smaller.

rf104-53.jpg

 

My reasoning would if this number is smaller than the printer's resolution (say 0.025 mm), it's no use making a more detailed model. But I cannot find confirmation of my theory. Maybe I'm overlooking a practical aspect of (say) the slicing software?

 

The STL export shown below was done with the 'surface deviation' parameter set to 0.01. The radiused edges of the top half of the cart have a radius of R=1, and I count 6 facets to approximate that radius. This equates to the last example, with 24 facets for a full circle, and surface deviation should be 0.0086. It looks extremely rough to my eye though, but maybe that is because I cannot judge how small the part is.
 

rf104-54.jpg

 

If the model was 1/32 scale instead of 1/72, i.e. R=2.25, 9 facets would be required to stay within a surface deviation of 0.01. It the model was 10x larger, R=10, 18 facets would be required. Note that you don't have to calculate all this, you simple set the surface deviation parameter at the desired accuracy.

 

Can anyone comment on this analysis? Are there errors? What surface deviation numbers do you use? Any insights are welcome!

 

Rob

  • Like 1
Link to comment
Share on other sites

Personally, I use the finest settings I can get away with, without crashing my software.  

 

It's not just the number of facets, but how visible they are.  At a certain point, you eye can no longer discern them.  Additionally, because of the layered nature of 3D printing, the deviation can be magnified with voxel-based printers.

 

The only benefit to coarser settings is a reduced file size.  You may not see much benefit with finer settings (though in this case, you would - the facetting would functionally disappear) but frankly, why not save it at the highest resolution possible?  It's not like it's a gargantuan file size to begin with.

Link to comment
Share on other sites

Initially I followed your approach: I wanted the facets to be nearly invisible, when I viewed the STL model in an STL viewer. But I ended up with a (binary) STL file of 277 MB for a part of 25 x 10 x 10 mm. And the slicer software did not like it at all - it crashed.

 

After the above analysis, I decided to try a surface deviation of 0.01 mm, 2,5x smaller than the printer's resolution, to have a certain margin. And that gave me a Binary STL file of 0.5 MB size, 500x smaller! And if my reasoning is correct, it still gives the same printed model.

 

I understand that it seems that I'm trying to make things complicated, aiming for the smallest possible file. But the 'brute force' approach gives me problems, that I want to solve. An understanding of the problem is the first step, and that's what I presented in my original post.

 

Rob

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...