cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

Community Tip - New to the community? Learn how to post a question and get help from PTC and industry experts! X

Tolerance Calculation in Mathcad

ssharma-2
4-Participant

Tolerance Calculation in Mathcad

Hi all,

After doing so many complex design and engineering calculations, i am stuck with this simple plus minus calculation.

I have to do this addition and subtraction of dimenssions with tolerances, as shown in the attached image.

Request you to please help.

As i want similar representation of Tolerances in mathcad sheets.

tol.png

Thanks,

Shashank

ACCEPTED SOLUTION

Accepted Solutions
Werner_E
25-Diamond I
(To:ssharma-2)

Here is a sheet with an added unary minus which is a bit more explicit-friendly.

The drawback is the way you have to write your subtraction (either A + - D, or A + (-D)).

ToleranceAdd3.png

View solution in original post

17 REPLIES 17
Raiko
17-Peridot
(To:ssharma-2)

Hello Shashank,

hope this small routine will do. Add cells to the nested array Y as much as you need

Cheers

Raiko

P.S.

This is a MC 15 sheet

nas0k
12-Amethyst
(To:Raiko)

Another example to add along with Raiko's for your Mathcad toolbox. Also, a MC15 file but will convert to Prime.

I hope this helps.

Werner_E
25-Diamond I
(To:nas0k)

Nice idea. Do you know why your inverse +/+ does not work as modificator placed in the unit field at the end of an evaluation? It should in my opinion but it keeps moaning about the argument is not a vector?

Working with tolerances is easy if you stay with addition and subtraction only, but going further your approach may fail because you assume you get the minimum/maximum value of any calculation by applying the minimum/maximum value of every variable involved. Unfortunately thats not true as the following simple example shows.

04.12.png

Furthermore it is not for sure that every calculation will end up in a symmetrical tolerance interval.

Werner_E
25-Diamond I
(To:nas0k)

I looked at the example in your sheet and think its wrong, too.

You get
04.12.png

but the correct result should be

04.12.png

considering that

04.12.png

While in this example you can get the correct result by making the calculation for ever combination of the extreme values of the variables, this must not be the case for every formula. So I think the most general solution would require a brute force calculation of a whole range for every variable and searching the min/max results as i did here(Prime2): http://communities.ptc.com/message/199660#199660

Attached is the file with the calculation of your formula (Prime3)

nas0k
12-Amethyst
(To:Werner_E)

Thank you, for your clarifications Werner. This worksheet was from the old collab (I believe from Stewart Bruff if I remember correctly) and I've used it on simple mechanical assemblies, but now I think i'll recheck them for accuracy.

Maybe for mechanical assemblies worse case or root sum of squares approach is best (reference attached). But alas only for symetrical tolerances.

Werner_E
25-Diamond I
(To:nas0k)

As Shashank Sharma pointed out in a later post, not even subtraction is correct with the simple approach.

So after all calculations with tolerances aren't trivial at all.

Hi,

I tried various ideas for this approach.

Most of the applications, however, became too complex to make it useable for what I needed.

attached is a simple sheet with a few functions - hopefully they will give you some information about mathcads capabilities

If you make any useful modifications to these functions, I would be grateful if you could publish them here.

Regards

Andy

Hmm, all these approaches only work OK if you just use addition and subtraction in your calculation. It may fail if using multiplication and/or divison or functions, absolute value, etc.

A more general (but also more cumbersome) appraoch can be found here: http://communities.ptc.com/message/199660#199660

Its in Prime2 format.

ssharma-2
4-Participant
(To:ssharma-2)

Thank you all for your kind responses,

But what i need is actual tolerance representation and the logic behind upper and lower tolerance calculation while adding or subtracting parent dimenssion values.

Thanks

Werner_E
25-Diamond I
(To:ssharma-2)

The best I could come up with:

ToleranceAdd.png

ssharma-2
4-Participant
(To:Werner_E)

But the actual result of A-D should be 0.8 +0.4 -0.1

(where +0.4 is the upper tol & -0.1 is the lower tol)

as when we subtract parent dimenssions, their tolerances gets added in cross way

for example, tolerances of A-D will be calculated by following logic:

0.2 - (-0.2) upper tol of A(0.2) - Lower tol of D (-0.2)

-0.1- (0) Lower tol of A (-0.1) - Upper tol of D (0)

Werner_E
25-Diamond I
(To:ssharma-2)

You are perfectly right. It is the same error I was moaning about concerning the routines by Norm and Andy which I now made myself. So I was also wrong when I stated above that their suggestions will work for Additions and Subtractions only. They will not work for Subtractions either.

So it would be necessary to write your own subtraction function.

Unfortunately "explicit" will not work as you'd like it to do anymore in this case.

ToleranceAdd2.png

ssharma-2
4-Participant
(To:Werner_E)

if you could please help me with this subtraction logic, i'll be really thankful.

As rest everything is perfect, only this subtraction part is left

Werner_E
25-Diamond I
(To:ssharma-2)

Here is a sheet with an added unary minus which is a bit more explicit-friendly.

The drawback is the way you have to write your subtraction (either A + - D, or A + (-D)).

ToleranceAdd3.png

ssharma-2
4-Participant
(To:Werner_E)

Hi Werner,

Thank you very much for the help...this will solve problems for many.

ssharma-2
4-Participant
(To:Werner_E)

hi Werner,

Just a small Help can we add a plus minus symbol as well as shown below?

tol_rep.JPG

Werner_E
25-Diamond I
(To:ssharma-2)

For the definition of the variable this would be no problem. Simply define a function with the name +- with two arguments (nominal value and vector) which creates that 2x1 data structure.

But for the display of the calculations or in explicit thats another story.

Here is a (in my opinion unpractical) solution which would allow only for symbolical evaluation and has its drawback with the sum of more than two summands.

05.12.png

Announcements

Top Tags