Hi there,
I would like to create an equation driven curve with inventor. I have no problems plotting the function in a plotter, however, inventor won't accept my equation. It gives me the error message, saying: "The equation contains unit errors". I'm using the explicit equations.
That's the bare equation:
"y=sqr(2)*16.5/2/sqr(pi)*sqr(arccos(1-2*x/50)-(sin(2*arccos(1-2*x/50))/2))"
I modified it, inserting variables which I defined also in inventor, leading to this:
"sqrt(2)*height/2/sqrt(PI)*sqrt(acos(1-2*t/length)-sin(2*acos(1-2*t/length))/2))"
But both equations are not accepted by inventor due to unit errors. In this design, I'm using the metric system, millimeters, so I don't understand why and how I have to redefine this for the equation in order to get it working.
I would appreciate your help,
Max
Solved! Go to Solution.
Solved by glenn-chun. Go to Solution.
I'm quite new to Inventor and not familiar how the program handles equation. E.g. it's totally new for me to specify units in an equation.
BTW: I forgot a bracket in my first post, sorry about that.
Breaking the equation down into subcomponents:
First of all you have the first part, which works without problems:
sqrt(2)*16.5/2/sqrt(PI)
The second part is a bit more complex:
sqrt(acos(1-2*x/50)-(sin(2*acos(1-2*x/50))/2))
So let's break it down a little.
You have this element:
acos(1-2*x/50)
And you want to subtract the following:
(sin(2*acos(1-2*x/50))/2)
So you have this:
acos(1-2*x/50)-(sin(2*acos(1-2*x/50))/2)
Now you want to calculate the square root of this difference:
sqrt(acos(1-2*x/50)-(sin(2*acos(1-2*x/50))/2))
In the end, you multiply this part with the first, resulting in this:
sqrt(2)*16.5/2/sqrt(PI)*sqrt(acos(1-2*x/50)-(sin(2*acos(1-2*x/50))/2))
So, I hope you could grasp how this equation is build up.
Anyway, if I enter this equation, as is, into Inventor, i get the following error messages:
1: Cannot evaluate inverse cosine outside of the range [-1,+1]
2: Cannot evaluate square-root of zero or a negative number
Why can't Inventor calculate the square-root of zero? sqrt(0) is defined as zero.
There seems to be a problem with my equation, but I can't find it.
Thank you for your help so far,
Max
Thank you for your help. Now we have eliminated the second error, but the first is preventing the curve to be drawn. There must be something wrong with the acos. But the strange thing is, that I can plot this function without problems in a plotter. Why not in Inventor?
Looking forward to an answer,
Max
19112033 wrote:
.........
sqrt(2)*16.5/2/sqrt(PI)
The second part is a bit more complex:
sqrt(acos(1-2*x/50)-(sin(2*acos(1-2*x/50))/2))
So let's break it down a little.
You have this element:
acos(1-2*x/50)
........
Thank you for your help so far,
Max
The reason that this does not work is because your units are not what Inventor expects them to be. For instance, the equation acos(1-2*x/50). Inventor expects the units of the input to be unitless and it will output this in degrees. You can find the input and output in the help. Search for "algebraic operators". It should be close to the top of the list.
If you enter acos(1-2*x/50) as an equation, it will fail (x is also defined in the parameters in units (mm)).
In order to get it to work, multiple the length units by (1ul/1mm)
Kirk
@19112033 wrote:
Thank you for your help. Now we have eliminated the second error, but the first is preventing the curve to be drawn. There must be something wrong with the acos. But the strange thing is, that I can plot this function without problems in a plotter. Why not in Inventor?
Looking forward to an answer,
Max
Now, I am thinking there is something wrong with the ACOS function also. When I enter a simple equation in the equation curve, I get this error "Cannot perform division with a zero denominator". There is NO zero in the denominator.
If I change the formula to a COS function, it works.
Sorry if I mislead you.
Kirk
Well, if you insert your minimum value of x (which in your case is zero), then you have a denominator of zero. If you change your xmin value to one, it should work. Thats all very strange...
In my equation y=ACOS (x/1mm), the denominator is always "1mm". The numerator varies from 0 to 1.
If:
x=0... then the formula should be ACOS (0/1), which equals 90 deg.
x=1... then the formula should be ACOS (1/1), which equals 0 deg.
I looked into the ACOS issue. Mathematically speaking, the arcsine and arccosine functions should take any input value from -1 to 1. However, Inventor seems to take a value a little less than 1, such as 0.999999, but not 1 itself. Attached is an Inventor 2013 part that shows an inverse cosine curve:
Once the tmin and tmax are changed to -1 and 1, respectively, Inventor shows an error message:
I'm logging a defect against the above issue in ACOS and ASIN. Defect number is 1510653.
Glenn
Max,
After I looked at what Glen worked out, it appears that a portion of your formula is outside the range of -1 to +1,
In the (1-2*x/50) portion.... if x>0, then this would be greater than 1 and can't be evaluated.
Kirk
Thank you all for your replies. This is a really professional forum with great members.
@karthur1 wrote:Max,
After I looked at what Glen worked out, it appears that a portion of your formula is outside the range of -1 to +1,
In the (1-2*x/50) portion.... if x>0, then this would be greater than 1 and can't be evaluated.
Kirk
Well, if I insert 1 for x in this portion, the result is 0.96. If I insert 50, the result is 0.6. So all this should be in the possible range of -1 to +1.
And you can calculate the arccos of 0.96 without problems, it's around 16.3.
Could you explain to me how you came to the conclusion, that if you insert a value for x>0, you will get a result greater than 1?
Thanking you for your help,
Max
Max,
I made an error... if x<0 then the formula is greater than +1, which is outside the range of ACOS.
Kirk
No problem, nobody's perfect.
I've set the boundaries from xmin=0 to xmax=50, so there should be no negative value for x. So this part of the equation should not cause the error present in inventor. But what does? I can easily plot the function outside of autodesk, so the equation itself shouldn't be the problem. Even when I'm including dimensions, I get an error concerning the computation of the arcsine, complaining that something is out of the boundary range... But I can't find evidence for that.
I'm still unsure weather it is a problem with autodesk or with my equation.
Maybe I should note, that I can use this equation in other CAD programs, but can't get it to work with Inventor.
Looking forward to an answer,
Max
See the last message on the end of the first page ... GlennChun wrote:
Once the tmin and tmax are changed to -1 and 1, respectively, Inventor shows an error message:
I'm logging a defect against the above issue in ACOS and ASIN. Defect number is 1510653.
So it seems that it is a problem with Inventor and not necessarily with your equation.
HTH
Hi Max,
The Equation Curve command in Inventor does not take -1 or 1 as an input for the acos or asin function. I logged a defect (1510653) yesterday against this issue. The valid input values should be in the range of [-1, 1], but the Equation Curve command currently takes (-1, 1).
Since you set xmin to 0 and xmax to 50, the input for your acos, 1-2*x/50, ranges from 1 to -1, which are perfectly valid. However, an error occurred in Inventor due to the defect in the Equation Curve command. A workaround is that you set xmin to 0.000001 and xmax to 49.999999 so that the input for your acos can range from 0.999... to -0.999... I recommend to define a user parameter for the tolerance in the Parameters dialog:
Glenn
Glen,
I was looking at this equation again. In the equation that the OP gave, he used a "length" variable in teh ACOS(x) function. I noticed that you went ahead and substituted a hard number there (50mm). I was trying to work this out using the "length" variable and could not get it to work. I noticed that when the length variable is <10, the function fails. If I put 9.9mm in the denominator, I get this error. Can you explain why?
Max,
Here is a part that has your equation in it. How does this compare to the results you were getting in the other grapher?
No guarantee that this is 100% correct, but it does plot.
The length and width are user parameters that you can change. In order for this to work, the length>50. It also fails if the height is =1.0mm
Kirk
Hi Kirk,
In each of the attached parts, I added a variable 'length' in the Parameters and initially set it to 50. The equation curve is correctly plotted when I changed the length to any positive number, such as 100, 10, 9.9, 5, and 1.
Explicit
length in mm
tol: 0.000001 mm
y(x): acos(1 ul - 2 ul * x / length) / 1 rad
xmin: tol
xmax: length - tol
Parametric
length in ul
tol: 0.000001 ul
x(t): t
y(t): acos(1 ul - 2 ul * t / length) / 1 rad
tmin: tol
tmax: length - tol
The length of the curve in Y direction is always 1. The length of the curve in X direction is the value of the variable 'length' (more precisely, 'length' - 2 * tol).
Glenn
Hi Glenn,
I used length, defined in Inventor as 50mm, as a placeholder for the value 50. Since I didn't want to mess around with the units, I repalced it with a hard value.
So, when I plot the function in a normal plotter, I get this result, which is as it should be:
So I don't understand how you get these crazy shaped curves in the posts above.
Thank you for your help so far,
Max