STEP vs STL is there a difference in print quality?

Honestly, I am at a loss of how to answer your question, by last count, I’ve got 14 posts in this thread and tried to answer the questions in good faith and at least tried six different ways to explain it.

One cannot compare the subject of resolution to the accuracy of a mathematical construct unless someone accepts the notion of infinite resolution where there is no limit to the number of polygons generated. This is obviously not possible. I already explained using the analogy of an mathematically defined arc versus a stair-step representation of the same. If one cannot wrap one’s mind around that description, I’m at a loss as to how to explain it any differently. Maybe someone else can do better but I’m out of ideas as to how to get this point across any better.

1 Like

all so on my i made something round with resin and you see the difference

If we use information compression as an analogy then STL files are lossy while STEP files are lossless.

Even the known universe has a limited resolution, if you want to call it that and it is the Planck length - 1.616255(18)×10−35 m… I am being facetious here I know.
But realistically, in 3D modeling on computer systems there is not an infinite number of points available to calculate and store, so curves, lines and points are defined by a limited not infinite number of vectors. Sure it’s memory space wise more efficient precise to define a curve mathematically and calculate points and the curve and then vetrors pointing there than defining tiny triangles, with three points/vectors each that approximate a point on the line, if necessary, And then a limited number of curves/lines make up the surface of a 3D object. But aren’t these ‘perfect’ geometrical structures defined by a mesh of triangles by the slicer app anyway before slicing? And when sliced in a print layer the outcome would be the same? The slicing would produce a ‘spatial jitter’, you call it staircasing, in any case. I don’t think there is just one mathematical equation that can describe the surface of any 3D object that is not a geometric fundamental or a fractal. So we use finite meshes to approximate the surface. The finer the mesh the better. Your example of a sphere is such a case where a mathematical definition is possible, but most designs are not just that, geometric fundamentals. So if you want to print better, almost perfect spheres perhaps step is the way to go (just occurred to me ‘step’ is related to staircase. lol). Also occurred to me that we are creating these ‘perfect’ shapes with STEP-per motors, lol again.

If you create a mesh of polygons from mathematical descriptions, you can only approximate the mathematical description by the number of polygons. The 3D printer does the same in the end (or the slicer that provides the data for the printer). In the end, however, the resolution of the printer remains; the higher it is, the closer the object created comes to the mathematical description. From this perspective, 3D printing itself is already lossy.

In the second case, you create objects directly as meshes and modify them. You can see directly on the screen what resolution you have and decide during the creation process in favour of a higher (where you need it) or a lower resolution. However, you will end up with the object as you created it when you imported it into the slicer. Completely loss-free. It is only at the printer that you have the loss again if it is not able to convert all the polygons that make up your data one-to-one because the mechanics are not fine enough.

I just remembered I published a demo print that actually showcases some of these ideas and why STEP files are useful, the design is Public Domain so you’re more than welcome to recreate it using STL files and see if it works as well as the STEP version.

Well, be happy if the slicer can read STEP. There is nothing wrong with working with an output in STEP format. For technical models or models consisting of known shapes, it’s perfectly fine.

My programme, for example, does not write in STEP format. It only ever works with meshes of polygons. This means that I may have to smooth objects for the final output. But so far that has always been enough. I create test prints of critical areas and if it doesn’t quite fit with the printer and the nozzle, then it is made to fit in the program that i use.

Have a nice evening! :slight_smile:

3MF is STL technically, if you unzip the 3MF file you find an STL at the center of it.

If you use ABS, you’ll find the parts fit like that without any draft angle on them. I do it all the time because it makes designing so much easier.

Getting off-topic, but…

I’ve read that many times, but I don’t find it to be true. There are many different file extensions in a .3mf file, xml, json, config, model, png, webp, model… Being a zip archive, it can really hold anything you want.

But there are no STL files.

Examine any of them in a text editor and none have the format or appearance of an STL. Rename any of them to have an STL extension and a slicer will not open them. It’s the .model files that seem to describe the mesh.

1 Like

Every file I’ve unzipped on my Mac, had an STL file in it that I literally just pulled out and opened with a 3D Modeling software. Additionally they describe it is a medium that provides more detailed information to the printer and if you were to open the SLT in Bambu Studio, it would create a 3MF of its own from that file, with all your detailed print settings and printer profile included.

I created a simple cylinder in Fusion, exported as cylinder.3mf.
I downloaded a .3mf from Maker World.
I created a primitive cube in Studio, exported as cube.3mf.
I unzipped each into their own folders.

No .stl files.

Folder PATH listing for volume OS

C:.
|   tree.txt
|   
+---Fusion 3MF
|   |   [Content_Types].xml
|   |   
|   +---3D
|   |       3dmodel.model
|   |       
|   +---Metadata
|   |       thumbnail.png
|   |       
|   \---_rels
|           .rels
|           
+---MW 3MF
|   |   [Content_Types].xml
|   |   
|   +---3D
|   |   |   3dmodel.model
|   |   |   
|   |   +---Objects
|   |   |       Body.stl_1.model
|   |   |       Convertible Top Cover.stl_2.model
|   |   |       Dashboard.stl_3.model
|   |   |       Front Turn SIgnal x2.stl_4.model
|   |   |       Front Turn SIgnal x2.stl_40.model
|   |   |       Grille.stl_6.model
|   |   |       Headlight Frame x2.stl_35.model
|   |   |       Headlight Frame x2.stl_7.model
|   |   |       Headlight x2.stl_13.model
|   |   |       Headlight x2.stl_43.model
|   |   |       Left Exhaust.stl_8.model
|   |   |       Left Mirror.stl_30.model
|   |   |       Right Exhaust.stl_10.model
|   |   |       Right Mirror.stl_31.model
|   |   |       Seat x2.stl_16.model
|   |   |       Seat x2.stl_36.model
|   |   |       Shaped Block.stl_19.model
|   |   |       Steering Wheel.stl_17.model
|   |   |       Taillight Lens x4.stl_23.model
|   |   |       Taillight Lens x4.stl_37.model
|   |   |       Taillight Lens x4.stl_38.model
|   |   |       Taillight Lens x4.stl_39.model
|   |   |       Taillight Lens x4.stl_41.model
|   |   |       Taillight Lens x4.stl_42.model
|   |   |       Windshield.stl_14.model
|   |   |       
|   |   \---_rels
|   |           3dmodel.model.rels
|   |           
|   +---Auxiliaries
|   |   +---.thumbnails
|   |   |       thumbnail_3mf.png
|   |   |       thumbnail_middle.png
|   |   |       thumbnail_small.png
|   |   |       
|   |   +---Model Pictures
|   |   |       PXL_20240115_231355748_5fb15812-c017-4e8d-aad0-21b9ab161f5a.webp
|   |   |       PXL_20240201_222212418_cf2a6c3a-1321-452b-8dc9-7d9f1f807988.webp
|   |   |       PXL_20240201_222226725_d4cae9d5-0c8f-45be-a3c8-d657865ad2e5.webp
|   |   |       PXL_20240201_222229838_fcfaf782-0bf4-43e5-a04b-494c10fca6ae.webp
|   |   |       PXL_20240201_222323892_5471ead7-7275-4286-8c6b-20201f026afe.webp
|   |   |       PXL_20240201_222405965_75e002f3-5809-49cd-af36-d4cb10f574bb.webp
|   |   |       
|   |   \---Profile Pictures
|   |           PXL_20240201_222207228_534391f2-f646-4431-99bb-5fa940a30aa3.webp
|   |           PXL_20240201_222212418_6738f5f8-8271-4b39-81f0-64dc9c0a733e.webp
|   |           PXL_20240201_222223595_051d30a0-7e45-4979-8d16-33c1d1eca3cc.webp
|   |           PXL_20240201_222244626_b390c160-3665-4a30-8b2f-db9177f612b4.webp
|   |           PXL_20240201_222321585_e9ea6475-e09a-4bed-99c7-cf165c7d9a09.webp
|   |           PXL_20240201_222405965_686fda2a-5b4d-4881-835c-dc8fd23effe8.webp
|   |           
|   +---Metadata
|   |   |   cut_information.xml
|   |   |   layer_config_ranges.xml
|   |   |   layer_heights_profile.txt
|   |   |   model_settings.config
|   |   |   pick_1.png
|   |   |   pick_2.png
|   |   |   pick_3.png
|   |   |   pick_4.png
|   |   |   pick_5.png
|   |   |   pick_6.png
|   |   |   pick_7.png
|   |   |   plate_1.png
|   |   |   plate_2.png
|   |   |   plate_3.png
|   |   |   plate_4.png
|   |   |   plate_5.png
|   |   |   plate_6.png
|   |   |   plate_7.png
|   |   |   project_settings.config
|   |   |   slice_info.config
|   |   |   top_1.png
|   |   |   top_2.png
|   |   |   top_3.png
|   |   |   top_4.png
|   |   |   top_5.png
|   |   |   top_6.png
|   |   |   top_7.png
|   |   |   
|   |   \---_rels
|   |           model_settings.config.rels
|   |           
|   \---_rels
|           .rels
|           
\---Studio 3MF
    |   [Content_Types].xml
    |   
    +---3D
    |       3dmodel.model
    |       
    +---Metadata
    |       cut_information.xml
    |       model_settings.config
    |       pick_1.png
    |       plate_1.png
    |       plate_1_small.png
    |       project_settings.config
    |       slice_info.config
    |       top_1.png
    |       
    \---_rels
            .rels
            

This is what I see too, with the .model files. They certainly aren’t STLs. Depending on the setup, the .model file may not entirely even be a model itself, but just a list of references to other models. They’re all plain text, so can be read in a text editor.

1 Like

Interesting, I wonder if the files I’m opening are being converted from the STL in the slicer and it is just keeping the STL file in it as a source.

What slicer are you using? Or what are you doing to make the 3mf files? I was looking around a little on the subject. I did find one subject where a few users from the Prusa world were talking about it, and it sounded like Prusa’s slicer was using a .stl, but others aren’t? When I look at the exports from Fusion360 to 3mf, it’s doing a .model export. The other applications I use don’t have native support for 3mf export, so don’t know.

1 Like

I’m using Bambu Studio for my prints, but most of these were downloaded 3MF files that I found on thangs, thingverse, and makerworld.

I wonder if some web sites are putting the .stl files inside the.3mf just to keep everything together. Perhaps a slicer only uses the .model files, but the website could extract the .stl as needed when a user requests the raw files?

If you want to re-mix or make changes to a model, it’s much easier in Fusion 360 with a step file as it will be automatically imported Prismatic.

On the other hand, if you import a .STL file into fusion it will need to be imported as a Mesh and then converted to a body. If you have the free version of Fusion you will not be able to convert it to Prismatic but rather a messier Faceted version.

1 Like