FDM Tolerance Guide
When designing or manufacturing practical and functional parts, their performance is often critically dependent on accurate dimensions. For example, a ruler wouldn’t do its job very well if it wasn’t straight and marked at accurate intervals. Two Lego bricks would not fit each other if their dimensions weren’t just right, and a 3D printing nozzle would not extrude accurately if its orifice diameter were inaccurate.
Tolerances help to avoid these kinds of issues by establishing the allowable level of dimensional inaccuracy. Tolerances are instructions from the designer to the manufacturer about how much a dimension can deviate from its nominal designation, in recognition of the fact that dimensionally perfect manufacturing is often an impossible ask
For our purposes, accuracy can be defined as a measure of how close a measurement is to its “nominal” design. For example, if a part’s design says it should be 5 cm long, a version that is 5.01 cm long is more accurate than a 5.1 cm long part. Obviously, a part that is exactly 5.00000… cm long would be the most accurate, but that’s generally not possible with most manufacturing processes. The fact is that nothing around us is exactly accurate; realistically, everything is slightly bigger or smaller than its nominal design. The amount by which it varies depends on the intended use and the manufacturing method.
The way to overcome this problem is, as with every problem, first to acknowledge it, as only then can a solution be devised. And the way to solve this measurement problem is to design with tolerances. To go back to our 5 cm part, if the tolerance is 0.1 cm, then any outcome from 4.9-5.1 cm is deemed to be acceptably accurate. Naturally then, in addition to accommodating manufacturing inaccuracies, setting tolerances also means ensuring that parts will function properly anywhere within this dimensional range.
It should be noted that tolerances generally apply to the dimensions of parts, not to machine operation. The quantities that define the allowed range of machine operation are defined in metrology as “accuracy,” “precision,” “repeatability,” and so on.
Now that we understand what tolerances are, let’s now look at what determines tolerances for a part: fits.
Types of Fits
In most applications, a joint between two parts needs to fulfill a particular function. Let’s illustrate this with an example.
Consider a circular shaft designed with a nominal diameter of 50 mm, which should fit into a round hole with a nominal diameter of 50 mm. Practically, there are three options for how these two parts could fit together:
- The shaft diameter is significantly narrower than the hole diameter, say 49.8 and 50.2 mm, respectively. In this case, the shaft will easily slide in and out of the hole and rotate inside of it. This results in what’s known as a clearance fit.
- The shaft’s diameter is the same as or slightly wider than the hole’s, say 50.2 and 49.8 mm, respectively. The shaft will not enter the hole without a lot of force, and once entered, it will probably not get out without breaking the parts. This type of fit is used extensively when high concentricity and mutual motion are required (like attaching a shaft to a bearing). This is what’s known as an interference fit.
- The shaft diameter is just slightly smaller than that of the hole, say 49.9 and 50.0 mm, respectively. The shaft will fit into the hole with minimal pressure and will maintain relative concentricity. This is called a transition fit.
In reality, each of the fit types is a spectrum of allowable combinations; the dimensions given above are just examples. To properly select a fit and design accordingly, there are several international standards (such as ISO tolerance), but we won’t go into that in this article.
Nevertheless, the type of fit needs to be determined before setting the tolerances. If properly set, two interacting parts will still function as intended regardless of how close they are to the positive or negative range limits.
3D Printing Issues
The type of fit (and consequently the dimensions of the fitting parts) should be deliberately decided while a part is still in the design phase. What most affects the exact values of the specified fits and the tolerances is the manufacturing method. For example, you can’t expect to get similar results with a chainsaw as with a fine woodworking chisel.
In 3D printing, there are often some missing links from the conventional design and manufacturing process. Usually, a designer designs the parts and passes them on to the manufacturer with the required tolerances for the part. The manufacturer then has the responsibility of meeting those tolerances. However, with 3D printing, because the digital model is directly exported to an STL and then printed, any information regarding required tolerances is not implemented in the manufacturing process. Neither the slicer nor the printer will know the acceptable tolerances from the designer. This means the user will have to control both the design and the printing process in order to achieve the required tolerances.
Causes of FDM Inaccuracies
Besides design errors (which are endemic to any manufacturing process), there are a few key causes of inaccuracies that are inherent to 3D printing, and in particular to FDM machines.
When a digital model is converted to STL, some details are inevitably lost. For example, round objects are faceted and converted to straight surfaces and vertices. However, the higher the conversion resolution, the less the dimensional error caused in the part.
Slicers might introduce their own errors, depending on their specific algorithms and settings. How slicers interpolate the vertices of an STL file will greatly affect how the G-code will look and therefore how the printer will behave.
There are several ways that a 3D printer itself can cause inaccuracies in a printed part. Stepper motors have a finite resolution of mobility, so the accuracy of a movement path is only as accurate as the maximal resolution of the motors. In addition, typical motors for FDM 3D printing do not have a position control loop, so small errors in position can accumulate over long print jobs. Most motor drivers also have a thermal protection feature that stops them from working if they overheat, which may cause the motor to skip steps. Stepper motor E-steps are also a crucial measure that may cause dimensional inaccuracies if not calibrated properly.
If the axes of the printer are not adequately orthogonal to one another, structural inaccuracies will appear. Imagine trying to draw a rectangle with an axis that’s not perpendicular – you will end up with a parallelogram. Then, every time a motion axis changes direction, there’s a small amount of backlash. The less tension in the belt system, the more prominent the backlash. Belts also introduce other issues over time, such as creep and elongation, which not only reduce tension but may also cause slips and missing steps.
As the printer prints a line of filament, it’s expected to create a uniform width. However, the beginning of a print line can be thinner and widen by the end of the line as the nozzle pressure increases. This is exaggerated when cornering. General over-extrusion of filament will also cause a wider print line, which may cause the overall dimension to become too big, with the opposite effect for under-extrusion, and the quality and condition of the filament can lead to further extrusion issues.
Finally, improper initial Z height can cause “elephant’s foot“, when the first layer is spread wider than the subsequent layers due to the weight of the print.
Once you’ve understood the possible reasons for inaccuracies in your prints, you can take active precautions to eliminate them as much as possible. Practically, you can’t expect a common FDM printer to nail a dimension to within 100 microns, or 0.1 mm (conservatively). This means that all of your dimensions should be designed under the assumption that they may come out larger or smaller by this value.
With mating parts, you’ll have to design them so that even with the uncontrolled error in the dimensions, they will still work together as designed. In almost all cases this will mean that if you have two parts that should fit together, you’ll need to design one part smaller than the other. For a standard 0.4 mm nozzle, here are general rules of thumb for fits based on a hole and shaft join, although you’ll have to experiment and learn the actual values for your printer.
- Clearance fit: A difference of 0.5 mm and above between the diameter of the hole and the diameter of the shaft. This results in a theoretical gap of at least 0.25 mm between the shaft and the hole.
- Transition fit: A difference of 0.15-0.4 mm between the diameter of the hole and the diameter of the shaft. This results in a theoretical gap of 0.08-0.2 mm between the shaft and the hole.
- Interference fit: A difference of around 0.1 mm or less between the diameter of the hole and the diameter of the shaft. This results in a theoretical gap of 0.05 mm or smaller between the shaft and the hole.
Because these rules relate to the difference between the parts, they can also be used for non-cylindrical parts. When considering non-cylindrical mating parts, like a square hole and a corresponding square protrusion, the above-mentioned rules may apply to the difference between the closest planes of the mate. For example, to get a clearance fit for a 3 cm square rod, design the hole so that a gap of 0.25 is maintained, i.e. a 3.5 cm square.
Another key guideline is to consider the orientation of the part so that maximum quality can be achieved. Holes are best printed horizontally (parallel to the XY plane of the printer). If you must print a vertical hole, use the teardrop technique, in which the upper portion of the hole is designed in a pointed shape rather than completely round. This eliminates any inaccuracies caused by the overhanging of the filament when closing the upper part of the hole.
In addition, because of the layered nature of FDM 3D printing, vertical features are usually less accurate as they can only be as fine as the layer height. Horizontal (XY) feature tends to be more accurate because they are only limited by the stepper motors resolution and the belt, as explained in previous sections.
There are several software solutions that may help increase the accuracy of your prints. When slicing a part to print with maximum accuracy, you should generally use slower kinematics (speed, acceleration, and jerk), smaller layer heights, and active part cooling. We recommend a print speed of less than 60 mm per second, acceleration of less than 3000 mm per sec2, and jerk of less than 15 mm per second for most desktop printers.
In the slicer settings, there are also some unique features that can help improve dimensional accuracy. The following examples are for Cura, but most slicers have similar features.
- Outer before inner walls: By printing the outer walls first you can theoretically improve the dimensional accuracy by not being bumped by the internal walls or infill.
- Coasting: This feature causes the printer to stop extruding towards the end of a move and instead to rely on the residual pressure in the nozzle to print the rest of the filament for the move.
- Horizontal expansion: This feature increases or decreases all of the dimensions of a part by a specific percentage. Ideally, this can help fine tune the dimensions of the print, but it’s really only useful if the entire print is too small or too big. If the overall dimensions of the print are acceptable and only holes need to be tweaked, for example, a different method should be used, such as the “Hole horizontal expansion” feature.
Then after slicing, the linear advance feature in Marlin and some other firmware adjusts the flow of the filament according to predicted print moves. The linear advance feature anticipates the variation in nozzle pressure that can lead to inconsistent extrusion and adjusts it accordingly. This converts an inconsistent line width into a more uniform line, which improves the dimensional accuracy of the print.
Linear advance has a similar effect to coasting settings in your slicer but is generally easier to tune. To use this feature you’ll need to enable it at the beginning of the printing process, and provide a K value to set how much the printer should adjust the flow (this value can be found experimentally).
Perhaps the most important way to achieve maximum print accuracy and stay within tolerance is by calibrating the actual printer. A poorly calibrated printer will result in parts that aren’t straight, do not have the right dimensions, and do not fit each other. On top of that, always remember that no hobby-grade desktop 3D printers are perfectly and completely calibrated from the start, even if they come pre-assembled; they will require additional calibration over time as a usual maintenance operation. Professional-level machines might somewhat compensate for this but still benefit from regular maintenance and calibration.
Because poor calibration can render all of your efforts in designing and slicing to meet tolerance obsolete, the importance of machine calibration cannot be underestimated. The most important elements to calibrate are the extruder and E-steps, and it’s always vital to start with a good first layer. You might like to use a test cube to check that everything is in order before starting a
It’s also important to select good-quality nozzles and filament, as the dimensional accuracy of your part heavily relies on the assumption that the extruded filament is actually the width it should be. Significant deviations in filament diameter or poorly machined nozzles will have an immediate impact on the possible tolerances of your prints.
Even after all the calibration, proper design, and special slicing configurations, sometimes parts will still be out of tolerance. In that case, they’ll need to be brought into line by post-processing.
There’s no shame in accepting the need to post-process a part. Even with extremely accurate CNC machining centers that cost hundreds of thousands of dollars, it’s sometimes necessary to perform some post-processing on parts to make them fit and meet specifications.
It’s important to note that post-processing usually refers to subtractive methods, so it’s usually more relevant for parts that are oversized rather than undersized. Here are a few key tips to bring your parts down to the designed dimensions.
- Sand and file parts to remove elephant’s foot, supports leftovers, and other printing artifacts.
- Keep measuring the parts as you post-process them until you reach the desired dimensions.
- Drill or ream any 3D printed hole.
- Try to avoid supports if possible. It’s much easier to re-drill a hole than to try to pry out small supports with a pair of pliers.
Finally, at some point we have to acknowledge that certain geometric dimensioning and tolerance (GD&T) requirements cannot be easily done at a DIY level. For example, testing and correcting the runout of a 3D printed shaft is beyond what most setups can achieve. But hopefully, following the guidelines presented in this article will save you unnecessary post-processing and repeat prints!