STEP vs STL is there a difference in print quality?

Sighhhhhh.

It just seems no matter how many times we go over this, folks keep posting the same incorrect theories. So let’s break out the crayons and do a pictorial. :baby:

3 Likes

Sigh, I love spelling bees and grammar Nazis also. ;D

The claim is that they use step files to make better gcode because they can detect arcs, from reading the thread it looks like it’s not doing that. Looking at the model files you can see they don’t store arcs.

I am not sure how many diagrams, photos or models it’s going to take, but it simply doesn’t work like that.

1 Like

Interesting… I can’t believe, that the slicer doesn’t use G2/G3 commands. I’m using Orca Slicer and I remember, that one of the requirements for printer support was the support of G2 & G3 commands by the printer. I was unsure, because I had an Original Ender 3 at this time.

So I did a test with the current beta (1.9.0-dev) of Orca Slicer. I created a cylinder in OnShape and exported it as STEP file and as 3MF file. In Orca Slicer I created the same cylinder with the internal function “add Primitive” and additionaly imported both from OnShape exported files (as geometry). So I had 3 cylinders in the project:

  1. internal created cylinder “Orca Cylinder”
  2. OnShape cylinder from STEP export “Part Studio 1 - Cylinder.step”
  3. OnShape cylinder from 3MF export “Cylinder”

And if I use the g-code viewer in Orca Slicer, I can see that the outer wall for ALL cylinders is generated by a G3 command:

2 Likes

BS also generates G3 commands, they post process the gcode with Arc Welder. It just seems back to front to me, to throw away the geometry on import then find it again afterwards with another process. It’s most probably because the code that does it that already exists.

1 Like

The only advantage I was actually able to measure was in post-print accuracy. When I exported from OnShape to an STL file versus a STEP file, my calipers told a very different story especially when it came to bend radii. Whereas that won’t matter for most prints, it can be the difference between parts fitting perfectly, vs not fitting at all.

The number of errors was annoying enough where it resulted in many reprints that I simply don’t bother with STL files anymore if I have a choice. There is zero benefit to using them in my use-case and only downside.

It should also be noted that once a file is converted into a mesh, all that parametric data is compromised. Sure, there are utilities that will “approximate” the conversion back into STEP and I use them all the time. But they are “approximations” at best and I only use them as a scaffold to redraft the drawings into CAD. Then I delete them.

Oops, deleted thinking I didn’t reply directly. Thank you posting this. I will dig deeper into the g-code files generated by Orca or Bambu Studio for the A1. I truly hope this is the case instead of what I’ve been seeing - a bunch of tiny linear movements to make a circle/arc.

Well look at that, indeed Bambu Slicer exported using G2 and G3 statements. I admit I am new to the Bambu ways, having only worked with the Kobra Max in the past before buying the A1. This is very encouraging (so many lines of gcode saved making rounds).

G1 F6300
G1 X100.004 Y123.564 E.06241
G3 X99.775 Y124.025 I-3.961 J-1.685 E.0205
G1 X101.053 Y125.303 E.07193
G2 X100.319 Y125.259 I-1.108 J12.32 E.02928
G1 X99.523 Y124.464 E.04476
G3 X99.25 Y124.881 I-3.623 J-2.066 E.01986
G1 X99.639 Y125.27 E.02189
G2 X99.006 Y125.327 I.159 J5.315 E.02532
G1 X98.811 Y125.133 E.01096

1 Like

@Olias
I observed the same unzipping the 3mf saved from studio. Then I checked my import and this did not only contain triangles.
But the question is, when is the conversion done? If we just open a step / stl and slice … print then it could make no differnece whre the mesh is generated. But lets say open a file and “zoom” to 200% there could, if the conversion is done after the zoom.

The conversion to a mesh is done upon import into the slicer. Upon saving to a 3MF file the only data available to the slicer is a mesh. Think of it this way, once a STEP file is opened in the slicer, all vector data is lost. So any lines, arcs and other Geometries are destroyed upon conversion to the Mesh.

If I understood you right, than conversion is not done in the prepare step. So operations done there like cutting, intersecting, union, scaling, … will profit from STEP input.

Well, not exactly… This situation comes into play when we talk about how 3D printers or slicers handle these files. Unlike CAD software, which works with precise vectors (like lines and curves), today’s slicers at least, work with mesh representations. When you open a 3D file in a slicer, it gets converted into this mesh format and all operations after that are made on the mesh.

Now, you ask, where would one profit? If we’re dealing with meshes instead of precise vectors won’t most use-cases work just fine with meshes? That is very true and cutting is one of the least precision dependent functions inside the slicer. Boolean functions such as intersections and unions also won’t benefit because the file was already converted on opening.

The key difference becomes important when you need more precision fit between different 3D-printed parts or when you’re trying to fit something you didn’t create, like a knob or bracket. In such cases, precision becomes crucial, and working with meshes can introduce slight inaccuracies that could affect the fit and functionality of the parts. But then again, if the model is already converted into a mesh, all edits after that will have the same level of imprecision.

An analogy here would be scaling a bit mapped text versus a font in a word processor. We’ve all had this happen where we try to make a image text more readable by scaling the image. The pixels quickly become “blocky” but if we scaled the original font on screen or in print, the text scales perfectly. That’s the same principle with STEP and STL.

I am afraid you are right. I separated Bambu-studio and slicer and hoped, opening a file in studio would not yet tranform, but only if I select eighter slice or the preview tab.
To see, how it really works I would need to look at the sources. Maybe you have done this.

There is also an other reason why BL likely recomments STEP: I read somewhere, that in some STL files the edges of the adjacent triangles not allways coincident. What of course causes truble in the slicer. While I would say this to be a bug of the creating software it seems that such software exists.

Best would be, if there would exists a CAD-format, which every CAD-tool supports and the files would be shared in this format.
I recently printed a model (from makerworld) which had at some points a problem with the first layer. I examined it and it was not a fault of the printer, but of the model. I printed lines at the second layer, where there was no line at the first layer. The model was a remix from a remix from a remix. I followed back to the original. This did not have this problem.

The difference is a smaller file size for a Step file compared to a high resolution mesh stl

LOL. Oh boy is that a can of worms. Way back in the day when men were men and the Soviet Union were the bad guys, the US DoD tried to implement a CAD standard called IGES. It was the standard to rule all standards with respect to CADM. STEP is actually a successor to that standard. IGES was published in 1980 and was in ASCII 80 columns text which in and of itself generated a good deal of Anti-American-you-ain’t-going-to-tell-us sentiment within the European Academia of the time which hated the American Tech hegemony. IGES is still supported on most CAD systems.

Sadly, so long as there are companies who feel that there is an economic benefit to deviating from the standard – presumably so that they can block information interoperability between their product and their competition(Apple???) – there will always be competing standards until a large buying body like the US DoD says they will buy nothing else but that… or if the EU passes a law stating that they won’t let their population get bullied by big bad tech firms.

2 Likes

There is also an other “small” problem:
CAD is not made for 3d-printing.
Why have we do define the thickness of walls, type of infill, supports … in the slicer? And then we need modifiers, …
BL ties to reduce this be exchanging modells with 3mf. But then also type of printers, build plates and filaments are exchanged. So this does not really work.

I’m not sure about that. CAD predates 3D printing by about 20 years but the STL file format was designed specifically for CAD in mind. I remember it well because back in '87 it looked like magic that someone could take a CAD drawing and output the format to a 3D printer. I remember all the hype too. We were all supposed to have these printers in our house within 10 years and rather than going to the hardware store to buy a part… “Poof” your printer would make it for you. Yeah… right… :rofl: we all know how that went. I’m still waiting for my Star Trek replicator too…

It was and is magic!!!

1 Like

I wont say, that CAD is unusuable for 3d printing. We all use it. But as Olias says, it was designed / developed / invented many years earlier when nobody thought about 3d printing.
And then 3d printing was invented and to make it possible slicers where developed.
And CAD programms are still slowly adapted for the new needs. Maybe somewhere in the future CAD and slicers might become a union and everything works seemlessly.

It might seem a little strange, that 3d printing is based on a mesh, which is more intented for visualizing the object instead of the 3d design itself.
But there are also 3d scanners, which produce a mesh, no design.
So the decision to use the mesh as input has also benefits.

Happy new year!