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!
What is the preferred way to correct dimensional tolerances
-
- Posts: 12
- Joined: Mon Apr 10, 2017 9:11 pm
Re: What is the preferred way to correct dimensional toleran
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.
-
- Posts: 12
- Joined: Mon Apr 10, 2017 9:11 pm
Re: What is the preferred way to correct dimensional toleran
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!
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!
Re: What is the preferred way to correct dimensional toleran
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.econopotamus wrote:the hole sizes are off by significant amounts
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);
}
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.