Designing/Printing objects with sized holes



When trying to print parts that should contain certain sized holes, e.g. for screws, how to achieve that they are sized correctly?

Is it possible to calibrate the printer perfectly, so it prints holes correctly sizes in all common sizes (e.g. starting at 2mm diameter)? Or is it better to design the holes larger or print prototypes and increase the sizes according to the real prints?

Thomas S.

Posted 2016-12-17T10:39:48.277

Reputation: 833



The reason holes come out undersized is generally the slicer, so calibrating the printer itself cannot solve the issue (without making other things worse). The output of the printer is exactly what it should be, given the G-code provided to it. It's just that the G-code does not represent the hole diameter correctly.

It would be best to simply account for the deviation in your design, or simply drill out undersized holes to the correct diameter.

Tom van der Zanden

Posted 2016-12-17T10:39:48.277

Reputation: 14 003

So STL files for exact printed objects, e.g. 3D-Printer-parts, might not be the best solution to share, because they are printer-specific? – Thomas S. – 2016-12-18T11:42:06.263


Even in traditional manufacturing (milling, lathe, router, etc.) dimensions are often times offset to accommodate unforeseen variables such as cutting tool wear, material hardness, and especially operator/engineering error.

As Tom van der Zanden stated, it is common for holes to come out undersized. This is not a conscious action, but a result of uncompensated variables in the material. When you phase the material by heating it to near or at melting point, the material technically begins changing. With that can come varying changes in melting and cooling rates. Your slicing engine will not understand what should be compensated and what shouldn't.

So, I would suggest:

  • Aiming for the lower tolerance for your hole size. If you don't have a tolerance, just make one up and aim for about 0.5mm-1mm below your target hole size.
  • Ream the hole using a reamer or drill, utilizing the 3D printed hole as a pilot.
  • Be wary of 3D hole positions. If a hole is oriented in compound angles, meaning that it is not directly in-line with an axis plane such as XY, XZ, or YZ, then you may also have misshapen holes. These may result in positional errors if you decide to ream them out.


Posted 2016-12-17T10:39:48.277

Reputation: 6 144


Make sure you know what purpose the holes are to serve. If they are clearance holes , i.e. designed so that the screw or bolt slides thru easily, then there's nothing wrong with a slight oversize.
If you want a tappable hole, i.e. either drive threads for a machine screw or self-tap with wood/drywall screws, then you want to go undersized.

If you want the hole to be a close-fit with a non-threaded rod, as is done for maintaining alignment for moving parts, then almost certainly start undersized and clear the hole just enough to fit the desired rod.

Carl Witthoft

Posted 2016-12-17T10:39:48.277

Reputation: 2 918


I've had this issue too and I've pretty much solved it by making all holes polygons instead of round.

The general rule of thumb I follow is to use a polygon with 4 times as many sides as the hole diameter in millimeters, e.g. for a hole with a 3 mm diameter I'd use a 12 sided polygon.

Then it's a matter of choosing between a circumscribed (circle fits inside polygon) or an inscribed (polygon fits inside circle) polygon depending on what you're using the hole for.


Posted 2016-12-17T10:39:48.277

Reputation: 111

Well, all holes are actually polygons because STL only describes a polygon-mesh. The question is how large you design the polygon. – Thomas S. – 2016-12-21T18:59:15.157