[OpenSCAD] Engineering Fits and Tolerance

shadowwynd shadowwynd at gmail.com
Tue Oct 29 23:40:21 EDT 2019

If you are printing a bulbasaur, slop in the printer doesn't make much

If you are building parts that have to work with other parts - there is a
dizzying array of variables.  Filament type / brand / color, humidity, flow
rate, print/bed temperature, layer height, Z-Offset, edge curl/elephant
foot, slicing algorithm, and even the infill percentage and support
structure can subtly alter the print.  There are days when I marvel that any
of this FDM stuff works *at all*.

I can easily get 1mm+ difference between prints if I start changing
variables.  To make it even more fun - the outside dimensions might match
the "ideal" specified in CAD, but the inner diameter of a screw hole might
be 0.4mm too narrow.  These sorts of "tolerances" mean all the difference
between parts fitting together and moving as they should.... and not.    Or
I print two batches with the exact same machine and slicer settings but in
different filament and the parts don't line up again.  If dimensions matter,
I have a whole "tuning" ritual I have to go through every time I change
filament (level bed, print test, measure test, adjust Z-Offset and flow
rate, rinse and repeat until within 0.05 mm).  Assuming I can just print the
STLs on another 3D printer and have everything work OK is naive at best (if
there are multiple interlocking parts) unless I make the tolerances pretty
loose.  This is specifically one of the reasons I like OpenSCAD - I can
easily tweak a hole diameter by 0.2mm and it can apply to every hole in my
model at the same time.

What I often do is put all the fudge factors in one area.  This can be
commented out / copied+changed  if I am going between different models /

diam = 10; // Ideal Diameter
thickness = 1;  //Height

// Fudge Factors - Printing on MakerGear M2, 0.2mm layer height, brown
UltiMachine PLA 
diam_e = 0.1;
thickness_e = 0.04;

/*  // Fudge Factors - Printing on Makerbot, 0.3mm layer height, Hatchbox
white PLA
diam_e = 0.0;
thickness_e = 0.2;

//Create Model
cylinder (d=diam+diam_e, h=thickness+thickness_e);

Sent from: http://forum.openscad.org/

More information about the Discuss mailing list