Perfectly round models/prints?

Is it possible to print something that is perfectly round, or is there a limitation of 3D models and printing file types that make that impossible?

Like, right now I’m printing a funnel, and rather than being perfectly round, it is more of an 80-agon (80 sides) that look close to a circle.

I have noticed some models are better, but I’m assuming they just have more sides to the shape rather than actually being perfectly circular. I can see this being a computer rendering issue, to some degree, but I don’t understand why it’s an issue with 3D printing.

Have you examined the original STL file? I use OpenSCAD to make models and I can specify the -gonal aspect in the parameter setup. SketchUp is a good one for creating straight lines where you want curves or circles. I think your source material is the culprit.

The thing is, I want a perfect circle with no straight lines. From what I’ve seen of models I’ve printed, it’s not possible.

It’s not mathematically possible, but you can certainly make a model close enough that you wouldn’t be able to see the angles of the curve. Like Fred mentioned, it needs more polygons in the model phase. Trouble is, the more polygons, the bigger the file since it has to record all those faces and angles. I’m quite sure if you were patient enough, you could 3d print something that no one could argue wasn’t a circle.

So, why can’t you just program the 3D printer to draw a circle in the gcode? Why can I make one in Adobe Illustrator, but not in a 3D model?

And I may be talking a bit theoretical for what’s currently possible, but it seems like this is a software issue, not a hardware issue.

No matter how you program it everything is basically made of straight lines maybe just a few or millions. Think about it, the stepper motors are told to step in some direction that equates to a very small straight line. repeat that in certain sequence a couple hundred times and you get a “circle” just like Pixels on a screen make it look like an image when in reality its just a bunch of colored dots placed in particular spots to give the illusion.

1 Like

HAHA…it’s all in your head.

Trying to make a circle with a bunch of triangles. I have a bad eye and don’t mind the illusion…as long as it rolls.

1 Like

The others are right… An STL file is 100% triangles, just like the polygons in CGI graphics. “Real” CNC machines can ‘interpolate’ curves and run a routine that creates the smoothest circle possible, but you’re still limited to the resolution of the machine’s movement. Since most 3D printers use stepper motors, the finest motion that you can get out of them is 1 step (or 1/8 - 1/16 - 1/32 microstepping depending on the control board) and everything curved will be made up of “stair steps” of that size.

Most programs will let you define the output resolution of your STL file though, and you can easily make the triangles small enough that it doesn’t matter. Another option in many programs is changing how many segments make up a circle. Both will have a positive impact on your models. At a certain point, the resolution of your file is a higher precision than the thermal shift of the plastic that you’re printing with.

The tradeoff is that you make the STL file and resultant GCode file much larger, and some machines will pause or stutter occasionally when they can’t buffer the data fast enough. Machines can process 1 line of GCode per mm a lot easier than 100, you know?


You sure gave a much smarter explanation than I did, but thanks for confirming what I was trying to say with the correct terminology and even pretty examples. You the man Jimustanguitar!


I guess the part that I was missing was how stepper motors work. If they moved smooth and continuously rather than in tiny steps, you can understand why I could assume there could be a smooth circle. So, it sounds like it’s both a hardware and software limitation.

As for how the gcode could work, I would imagine there would be something that just says “draw circle from this point with a radius of X”, but sounds like that doesn’t matter.

There is actually gcode commands to move in an arc, specifically G2 and G3 move commands. The problem is I don’t think that there are any slicers the utilize those move commands.

1 Like

Or RepRap firmwares that can decipher them.

1 Like