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

4-Participant

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.

As i want similar representation of Tolerances in mathcad sheets.

Thanks,

Shashank

1 ACCEPTED SOLUTION

Accepted Solutions
24-Ruby IV
(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)).

17 REPLIES 17
14-Alexandrite
(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

7-Bedrock
(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.

24-Ruby IV
(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.

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

24-Ruby IV
(To:nas0k)

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

You get

but the correct result should be

considering that

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)

7-Bedrock
(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.

24-Ruby IV
(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.

4-Participant
(To:ssharma-2)

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

24-Ruby IV
(To:AndyWesterman)

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.

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

24-Ruby IV
(To:ssharma-2)

The best I could come up with:

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)

24-Ruby IV
(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.

4-Participant
(To:Werner_E)

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

24-Ruby IV
(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)).

4-Participant
(To:Werner_E)

Hi Werner,

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

4-Participant
(To:Werner_E)

hi Werner,

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

24-Ruby IV
(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.

Announcements
Check out the latest