What is the preferred way to correct dimensional tolerances

Ask the MakerGear community for assistance...
Post Reply
econopotamus
Posts: 12
Joined: Mon Apr 10, 2017 9:11 pm

What is the preferred way to correct dimensional tolerances

Post by econopotamus » Fri Apr 28, 2017 5:37 pm

I suppose this is a calibration question. I'm building some ~4-10cm across parts that have fitting holes for bearings and posts, but the hole sizes are off by significant amounts. This isn't an extrusion-level error but multiple millimeter errors in hole sizes depending on orientation of the hole. I already did the trick printing a cube outline shell to set the extrusion multiplier.

For example a 12mm bearing hole oriented with the 12mm along X and Z is only 11.5mm in Z and 11.8mm in X. The Z-error is equal to 2 entire layers (currently printing at 0.25mm)!

Anybody have a preferred way to get out the dimensions you want? I see the horizontal size compensation, but that only works for horizontal clearances (might fix the X error above). For the Z-error equal to multiple layers I'm a little stumped. Do I need to adjust the steps/mm of my printer? Would one typically do that with the M92 command?

Thanks in advance!

User avatar
jimc
Posts: 2888
Joined: Wed Apr 09, 2014 11:30 pm
Location: mullica, nj
Contact:

Re: What is the preferred way to correct dimensional toleran

Post by jimc » Mon May 01, 2017 1:37 am

the tolerances are off due to the material shrinking as it cools. every material and manufacturer are a little different. z height will always be correct. atleast within 1 layer. i never use the horizontal size compensation. i scale the part in x and y in a different amount depending on the material. esun for example. their petg is scaled up 0.4%, abs is 0.8%, epc 0.65%. you will need to print something of an average size. say few inches, then measure the print and compare it to the size of the actual test object file. once you do that, figure out the % and enter in in the slicer software.

econopotamus
Posts: 12
Joined: Mon Apr 10, 2017 9:11 pm

Re: What is the preferred way to correct dimensional toleran

Post by econopotamus » Mon May 01, 2017 11:47 pm

That was a very reassuring post, thanks.

I printed some calibration cubes to figure out my shrinkage scaling and find it scales a bit with size (the percentage scales, obviously the raw distance should be proportional to size). After a bit of metrology work I can crank out 20mm cubes that my micrometers measure as 20.3 x 20.2 x 20.01. That should be close enough for the fittings of the stuff I'm trying to build :) No firmware updates needed, just putting in scale changes in S3D. Notably, S3D lets you scale in X,Y,and Z separately if you want to. Worst case I'll need to print something a couple times if I need 100 um accuracy in the cooled part, that's livable.

Thanks!

User avatar
ednisley
Posts: 1155
Joined: Fri Apr 11, 2014 5:34 pm
Location: Halfway up the Hudson
Contact:

Re: What is the preferred way to correct dimensional toleran

Post by ednisley » Mon May 01, 2017 11:59 pm

econopotamus wrote:the hole sizes are off by significant amounts
Consumer-grade 3D printing basically doesn't hold tolerances below maybe ±0.2 mm, so you won't get much better than that, even after calibrating the extrusion multiplier and Z-axis offset. You can make the results exact for any given model by pre-distorting the holes, but that won't hold for a different model.

For vertical holes (axis parallel to Z), you should be using low-vertex-count polygons, rather than nice-looking cylinders. An old but still good writeup:

http://hydraraptor.blogspot.com/2011/02/polyholes.html

A useful calibration part:

https://softsolder.com/2013/04/21/maker ... t-objects/

Given those numbers, you can auto-tweak the hole diameter to make the answer come out right:

Code: Select all

HoleWindage = 0.2;
 
module PolyCyl(Dia,Height,ForceSides=0) {   // based on nophead's polyholes
  Sides = (ForceSides != 0) ? ForceSides : (ceil(Dia) + 2);
  FixDia = Dia / cos(180/Sides);
  cylinder(d=(FixDia + HoleWindage),h=Height,$fn=Sides);
}
For horizontal holes (axis in the XY plane), the overhanging threads closing the top of the hole shrinks and distorts the result. A hexagonal hole works better than a cylinder, with the top flat parallel to the XY plane to promote bridging rather than drooping.

Basically, if the exact size & fit really matter, ream / drill the holes after printing. The printed hole serves as a very good pilot hole, although you could CNC them if you really care and can fixture the part appropriately.

Post Reply