Circles not printing perfectly round

Hello. I hope this is the correct forum to ask this. We have been 3D printing with our Snapmaker for a couple months and have noticed that whenever we print anything round (wheels, cylinders, gears, anything circular) they are not perfectly round. Example: a 2.3 inch circle was “squashed” by 40 thou at about a 30 degree angle from the X Axis. It’s like the circles are slightly oval-ish. Any suggestions?

We use FreeCad 0.17 and Snapmakerjs 2.5.4. Our Snapmaker Base is 2.9. We are printing with the spool of PLA filament that came with the printer.

Thank you for any help!

1 Like

It’s interesting that the deformation isn’t in the X or Y direction, but on a 30º angle.

My calipers only read out mm, but 40 thou is about 1mm. I’ll give it a try and see what happens.


2 possible reasons.

  1. My first guess would be you have some backlash in the Y or X axis. Do you have access to a dial indicator? You could use it on the side of the print head and move it in the x-axis and stop and reverse and see if it recovers the step amount and is the same amount. Try it also on the Y-axis to check in both directions. Move negative then positive… then positive then negative.

  2. I have notice that the programming does not use G2 or G3 for circular motions and instead uses G1 feedrate x and y moves to simulate a circle. Which depending on the step rate would make a saw style circle instead of a circle.

Have you tried using different slicers? If the problem is in the gcode, it would be nice to get a “second opinion” from another slicer…

Hi, Carl, and thanks for the response! Wouldn’t a backlash problem along an X or Y axis cause a progressive/cumulative positioning error along that axis as printing continues up the Z axis? So far we haven’t seen that problem.

Hi, Moonglum!

We are pretty new to the 3D printing world and don’t know much about the software out there. Can you suggest an alternate slicer other than the Snapmaker-provided one? It has to take in .stl files from FreeCAD 3D.


1 Like

Probably the best open source one is Cura. They have configuration help for cura on the snapmaker site. A lot of people use that. If you have a little $, I highly recommend Simplify 3D. There is also one called Slic3r (also open source), but I find that one to be a little more esoteric, although it is not without its virtues.

Try Cura, and see if it fares any better. Just print the thing as far as you need to check it, if you are concerned about wasting filament. If that doesn’t help, maybe you can demo Simplify3D.

The reason I suggest this is because your STL is subjected to a great deal of interpretation by your slicer. If the gcode is the cause, then this might help. Both of these products are more mature than snapmakerjs. You also have choices on HOW your STL is sliced (especially in S3D), so some options will be worthy of tweaking if the defaults don’t work (off the top of my head, the top and bottom layers could be set to “concentric”, so that it prints all the beads of plastic in circles to begin with).

All that being said, I’m not sure how precise 3-D printing will be in making a perfect circle like that. I’ve never printed a wheel, but my gut tells me, it will never be perfect… but lets see how close we can get… If it doesn’t meet your specs, maybe you can put in on a lathe for a couple turns or something…

1 Like

I am curious at what speeds you are printing, and if there are differences between “high quality”, “normal”, and “fast”.

Here are good settings for your snapmaker if you go the Cura route… save you some forum scrounging…

Only setting in Extruder are the 0.4 nozzle and the 1.75 filament diameter.

When you get into it just try and emulate the snapmakerjs for now but eventually you will want to branch out and try some of their other options. Keep an eye on print speeds though! Snapmaker have to print and move heads relatively slow. One cool thing in Cura is the ability to block supports from certain areas, for example.

Welcome to the 3D printing world! Snapmakerjs is great for their laser and cnc, but printing software has lots of more powerful options options out there.

Let us know what you find out!

1 Like

Andy-Fox… No… It would produce a flat spot at that location as you reverse the ball screw. If there is backlash when the ball screw reverses, it will not start moving right away and pause very slightly and then take off again. (hence a small flat as the other axis is still moving in a positive direction). Most major CNC metal cutting machines compensate for backlash by putting in a value that when the axis reverses direction it add’s a little more to the reverse movement to take up the slack (backlash).
You can try to print a taller cylinder (larger diameter) and this will give you a little more room to view what’s going on.

Remember that with a sliced object there will be a point of start/stop that can have extra material blob’d that will cause a lump. This can be removed using a little more powerful software (Simplify3d). Simplify3d has a function of Coast and Wipe that will stop the extruder just before the end of a layer to run out the material and not blob it up.

Another thing if your using a solid modeler and then convert it to STL you can change the level/size of the triangles created to smooth out the circles. STL’s are not smooth surfaces, they are a bunch of triangles layered to make surfaces. I use Fusion360 and when I export to STL/Cura it allows me to select how accurate or higher level of smoothness. This makes the file much bigger due to more triangles.

I second using Simplify3d as it’s has a lot of advanced features and the simulation if top notch (It’s $$$ but worth it). I like the ability to make recipes of my setup’s based on all functions.

1 Like

Enlightenonq brings up a very good point on the export to STL.

In FreeCAD, I’ve gotten very good results with exporting the mesh using the Netgen algorithm set to “very fine” (make sure you are using at least FC .18). It does better with things that have unusual geometries by keeping the triangles very small, and very uniform in size… though, you could try Standard, and crank the “Surface Deviation” way up as well (which does very well for things that conform to more traditional geometric shapes). After export, switch to the Wireframe DrawStyle and inspect the results of each export to see which looks most round. As Enlightenonq stated, your STLs will get bigger in size… but I never really concern myself with that… all that matters is the end-result.

Good luck! :slight_smile:

1 Like

Hi, Carl.

It’s not a flat spot we are experiencing. The circles we are printing print as nearly perfect ovals with a gradual diameter change depending on the angle we measure at. Even if the curve of the circle is being translated into triangles the triangles should all be a uniform size in the STL file right? But when they are printed we get an oval. OD and ID of hollow objects (like a hollow cylinder) have this same deformity. The walls of the cylinder are always the same thickness but the entire object is an oval-shape.

If this becomes a big issue for us we might switch to Simplify3D but my dad is a very slow learner and it took him a while to learn FreeCAD so we’re trying to stick with it for a building environment but who knows.

Thanks for all your advice so far. I’m glad we’re getting some input/feedback on our problem.

Hi, Moonglum,

Thank you for the advice! I will check out Cura (initially I’m having trouble with it–I install it, run it, and nothing happens). Definitely would like a second slicer opinion. As for FreeCAD 0.18’s STL export I don’t see any options for STL files under Preferences --> Import/Export. All I have options for are: IFC, DAE, DXF, DWG, SVG, OCA, Mesh Formats, IGES and STEP and none have anything for “NetGen”, though I don’t think the resolution of the triangles is the problem. The triangles for a circle should all be uniform in size in the STL file but when they print I get an oval so wondering if the scaling is off? Or it’s the GCodes, or it’s the GCode interpreter on the Snapmaker printer, or it’s the printer. Right now it’s a big mystery for me.

If this becomes a big issue for us we might switch to Simplify3D but my dad is a very slow learner and it took him a while to learn FreeCAD so we’re trying to stick with it for a building environment but who knows.

Thanks for your help!

As for FreeCAD 0.18’s STL export I don’t see any options for STL files under Preferences → Import/Export. All I have options for are: IFC, DAE, DXF, DWG, SVG, OCA, Mesh Formats, IGES and STEP…

You are missing a vital step, then in your export. When exporting to an STL, it is best to first switch to the Mesh Workbench. This will give a lot more control over your exported STL. Going straight from your CAD drawing to an STL leaves too much open to FreeCAD to interpret, and the geometries derived might not be optimal for printing.

Switch to the Mesh work bench. Once there, select the body you want to export (you might only have one, but you still need to select it), then under the “Meshes” drop-down menu, choose Create Mesh From Shape.

Try using standard with a Surfface Deviation at .01, and Netgen set to “Very Fine”. The nice thing about “Standard” is that you can set it to almost any tiny value you want (though I suspect there is a stark diminishing return at anything smaller that .01 – but you are free to test that!). The Nice thing about Netgen is that is can faithfully reproduce some pretty wacky geometry when Standard fails.

Then Hide your cad, and switch to the wireframe draw stile to inspect the meshed product. Once you are satisfied, right click each body and save them to their respective STL files. Using the Mesh workbench can make a world of difference in your STLs… and it is entirely possible that this is influencing your results when going to print.

AndyFox… Try something. The STL in question when you place it on the table in SnapmakerJS click on it and rotate the object 90 deg’s on the “Z-Axis” and regenerate the G-Code and run. Does the oval issue rotate 90 deg. with the object rotation?

If it does then it looks like a programming/slicing issue as the machine is doing what it was told to do in the program.

To answer your question on the uniformity of the triangles is a trick question/answer. It all depends on the interpretation of the solid model during conversion. If your model has chamfers or fillets/rad’s on the corners, any draft/taper in the surfaces, or any abnormalities, it will affect the path/size/direction the triangles are created. If your running windows-10 you can open the STL in 3d Viewer and select View-> Shading -> Wireframe (or CTRL-1) and this will allow you to view the triangles (and the number of them, verticies, and more). You can zoom in on the diameter in question and see if it looks funny.


Thanks for your suggestion! We are going to try this (rotating it in SnapmakerJS). That will definitely tell whether the issue is with the printer or with the slicer/STL file. Never thought of trying that.

@AndyFox Figure it out? What did you find?

Sorry for the delay in responding. We never did pursue the matter. My dad’s interests have moved on to other projects that do not rely on perfect circles. I myself will be getting my own SnapMaker 2 printer this spring and I will pursue the matter at that time.

1 Like

I just wanted to let you know that since posting this I have received my SnapMaker A250. Still using FreCAD 0.18 but I no longer have the issue with circles not printing round. Seems the issue was eithe with the older SnapMajerJS or the SnapMaker 1.0 itself. Don’t know but since all is well with SnapMaker 2.0 it’s a non-issue anymore. Thanks for all the help.