Tolerances: To you guys that assemble parts

General discussion topics
Post Reply
sTaLa
Posts: 43
Joined: Tue Jun 14, 2016 3:01 am

Tolerances: To you guys that assemble parts

Post by sTaLa » Fri Jul 22, 2016 8:23 pm

In my line of work and based on what they thaught me at school, I always design and dimension my drawings to the nominal dimensions, adding tolerances further down the road.

That would make a bore and a shaft the same nominal diameter, but with different tolerances that would make sure they assemble together.

That makes sense for anything that is machined on a conventional machine, but always got me wondering how they proceed on the programming side for the CNC machines.

Now that I 3D print (which I Love btw), I am faced to that problem. I tend to think I should draw all my components to the middle of the tolerance I am aiming for, instead of the nominal value. This is what I have been doing so far, but things can get pretty complicated for big assemblies or for dimension revisions.

So I guess my questions is for all of you guys that print mechanical assembled components or for those who have experience on the CNC field: how do you design/draw your components to make sure tolerances are on specifications once Gcode programming is done (which does not care about any tolerance you could have added).

Thanks!
Last edited by sTaLa on Fri Jul 22, 2016 8:49 pm, edited 1 time in total.

jsc
Posts: 1864
Joined: Thu Apr 10, 2014 4:00 am

Re: Tolerances: To you guys that do things

Post by jsc » Fri Jul 22, 2016 8:36 pm

I have only ever used CAD for 3D printing, and mostly for fairly easy parts, so I just draw in the tolerances because I know what they are going to be approximately (.1mm for press fit, .2 for push fit, .3 for slip fit). Alternatively, you can draw parts to nominal, then make a pass on the completed model where you push all the faces that need tolerances, but that can get tedious for large parts. In Fusion 360, you can also include named variables in dimensions, so I suppose you can draw your parts including a variable for tolerance and adjust that across the board when finished. That's not something I have tried yet.

jsc
Posts: 1864
Joined: Thu Apr 10, 2014 4:00 am

Re: Tolerances: To you guys that do things

Post by jsc » Fri Jul 22, 2016 8:39 pm

Also, in Simplify3D, you can add a tolerance globally to your model, but it is limited. You can only do it if they lie in the XY plane, and you have to apply them across the board. It just does an offset or inset in the XY plane. Only situationally useful.

sTaLa
Posts: 43
Joined: Tue Jun 14, 2016 3:01 am

Re: Tolerances: To you guys that assemble parts

Post by sTaLa » Fri Jul 22, 2016 9:28 pm

Yeah I pretty much do what you do for now and apply tolerance case by case. But I use normalized tolerances that calculate themselves based on the nominal dimensions. So tolerancing is pretty straight forward.

Nominal dimensions on the CAD are what I use when I send out models to be CNC machined. But I cannot imagine all those CNC guys redrawing the models to make sure everything is within tolerances. Especially if they receive .step where they do not have the construction tree of the model.

There must be an easier way I did not find out yet. Maybe that solution is within the CAM software though and not implemented yet in Simplify3D?

boxcarmib
Posts: 5
Joined: Sun Jul 24, 2016 8:53 pm

Re: Tolerances: To you guys that assemble parts

Post by boxcarmib » Sun Jul 24, 2016 9:12 pm

I use OpenSCAD almost exclusively specifically because of the control it gives me over tolerance. I've redefined all the base geometric object constructions to accommodate and allow for adjustments in tolerance. It may seem like overkill and tedious but it's comforting to know that I can easily change tolerances for any type of 3d printer I care to use... manufacturer to manufacturer... process to process... FFM.. SLP... i hope i have it covered.
So whereas the OpenSCAD function

Code: Select all

 cube([20,20,20]);
will give me a 20x20x20 cube, my rewritten function I write as

Code: Select all

_cube([20,20,20]);
and that will do the same thing, BUT if i write

Code: Select all

_cube([20,20,20], tolerate = kSides);
it gives me a 20(+ tolerance)x20x20 cube. The tolerance value itself is a global value so I can set according to the character of the machine that is actually producing the part.
My redefined routines also provide for identifying a non-default tolerance such as

Code: Select all

_cube([20,20,20], tolerate = kEnds, tolerance = .5);
In this case, openSCAD will draw me a cube 20x20x20.5
Personally, I feel that if I'm going to take the time to create an object, then I would at least like to have some chance of being able to print it at some future date with some printer I don't currently have, perhaps even using a fabrication technique that hasn't been invented yet.

Post Reply