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.
Solved! Go to Solution.
hope this small routine will do. Add cells to the nested array Y as much as you need
This is a MC 15 sheet
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.
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.
I looked at the example in your sheet and think its wrong, too.
but the correct result should be
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)
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.
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.
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.
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.
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.
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)
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.
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
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.