We have an assembly model that has a problem that we have seen similar before and they are very concerning. We segregated the offending parts to show the issue. We have a plate with linear bearings attached to it and constrained to the shaft clearance hole. We have linear shafts constrained in the bearings. When we measure the bearing to the shaft it shows 0.000mm
When we measure the bearing to the hole in the plate, it measures 0.000mm
When we measure the top of the plate to the centerline of the bearing it measures 31.000mm
When we measure the shaft to the center of the hole, it measures 0.000mm
If we measure from the top of the plate to the center of the hole, it measures 31.000mm
But..... and there's always a but.... when we measure the top of the plate to the shaft, it measures 30.000000007mm.
We know that 0.000000003mm isn't a lot (0.000000000118") but everything is constrained centrally together yet the bearing and the hole both measure exactly 31.000mm to the top of the plate but the shaft does not. And even odder yet, the shaft is not constrained linearly and we can move the shaft ever so slightly and then it measures 30.000000007mm to the top of the plate and move it back and forth some more and it measures 31.000mm. And no matter how much we move it after is settles in at 31.000mm it stays at 31.000mm. This is a video of that happening.
https://www.screencast.com/t/nJbtSblZk
Really bizarre and really troubling that A to B = 0, B to C = 0, but A to C = 0.000000003mm
If it's a bug it's a really, really bad bug.
We have an assembly model that has a problem that we have seen similar before and they are very concerning. We segregated the offending parts to show the issue. We have a plate with linear bearings attached to it and constrained to the shaft clearance hole. We have linear shafts constrained in the bearings. When we measure the bearing to the shaft it shows 0.000mm
When we measure the bearing to the hole in the plate, it measures 0.000mm
When we measure the top of the plate to the centerline of the bearing it measures 31.000mm
When we measure the shaft to the center of the hole, it measures 0.000mm
If we measure from the top of the plate to the center of the hole, it measures 31.000mm
But..... and there's always a but.... when we measure the top of the plate to the shaft, it measures 30.000000007mm.
We know that 0.000000003mm isn't a lot (0.000000000118") but everything is constrained centrally together yet the bearing and the hole both measure exactly 31.000mm to the top of the plate but the shaft does not. And even odder yet, the shaft is not constrained linearly and we can move the shaft ever so slightly and then it measures 30.000000007mm to the top of the plate and move it back and forth some more and it measures 31.000mm. And no matter how much we move it after is settles in at 31.000mm it stays at 31.000mm. This is a video of that happening.
https://www.screencast.com/t/nJbtSblZk
Really bizarre and really troubling that A to B = 0, B to C = 0, but A to C = 0.000000003mm
If it's a bug it's a really, really bad bug.
Forgot to mention that small assembly is Pack & Go'ed, zipped and uploaded to this thread.
Forgot to mention that small assembly is Pack & Go'ed, zipped and uploaded to this thread.
This is not an error, but anything after 5 digits is just noise in Inventor. The "Measure" command should not display more than 5 digits after the decimal point.
Measurement in Inventor produces noise at 5th decimal | Inventor 2023 | Autodesk Knowledge Network
This is not an error, but anything after 5 digits is just noise in Inventor. The "Measure" command should not display more than 5 digits after the decimal point.
Measurement in Inventor produces noise at 5th decimal | Inventor 2023 | Autodesk Knowledge Network
When these things are slightly off beyond 5 decimal places and we do a dimension or measure, sometimes it says "180°" rather than a dimension as it sees them as not quit totally parallel, but so small an angle that it can't display it.
When these things are slightly off beyond 5 decimal places and we do a dimension or measure, sometimes it says "180°" rather than a dimension as it sees them as not quit totally parallel, but so small an angle that it can't display it.
It seems to me that this appeared in version 2023. I also noticed this half a year ago, but this does not cause much problems, so I do not pay attention.
It seems to me that this appeared in version 2023. I also noticed this half a year ago, but this does not cause much problems, so I do not pay attention.
I can definitely see that causing issues with constraints; esp. since Inventor needs to see a delta of "dead zero" when constraining features that are certain distances apart. In other words, it may be insignificant in the physical world, but it's still not zero in the model. (Sorry-no solution, just opinions).
I can definitely see that causing issues with constraints; esp. since Inventor needs to see a delta of "dead zero" when constraining features that are certain distances apart. In other words, it may be insignificant in the physical world, but it's still not zero in the model. (Sorry-no solution, just opinions).
@phlyx
I knew I had seen this before, but I couldn't find it... but I did find THIS post from 2019 that might explain it a little better, and I invite @MjDeck to chime in on this as well (if he cares to). 🙂
I haven't looked at your model yet but I wonder if, when you see the 180°, those might not actually be off somehow. Maybe I'll get a chance to look at the model tomorrow.
Chris Benner
Industry Community Manager – Design & Manufacturing
If a response answers your question, please use ACCEPT SOLUTION to assist other users later.
Also be generous with Likes! Thank you and enjoy!
@phlyx
I knew I had seen this before, but I couldn't find it... but I did find THIS post from 2019 that might explain it a little better, and I invite @MjDeck to chime in on this as well (if he cares to). 🙂
I haven't looked at your model yet but I wonder if, when you see the 180°, those might not actually be off somehow. Maybe I'll get a chance to look at the model tomorrow.
Chris Benner
Industry Community Manager – Design & Manufacturing
If a response answers your question, please use ACCEPT SOLUTION to assist other users later.
Also be generous with Likes! Thank you and enjoy!
If you create a drawing, you can see the same behavior even without the shaft.
Assy:
Part:
If you create a drawing, you can see the same behavior even without the shaft.
Assy:
Part:
@phlyx , this looks like a fundamental limitation with current solid modeling software. It uses floating point numbers with 16 decimal places. When multiple math operations are performed on these numbers, round-off errors can accumulate.
I realize that this looks bad, but the software can generally compensate for it.
Do you see any failures in this model that might be caused by this inaccuracy?
@phlyx , this looks like a fundamental limitation with current solid modeling software. It uses floating point numbers with 16 decimal places. When multiple math operations are performed on these numbers, round-off errors can accumulate.
I realize that this looks bad, but the software can generally compensate for it.
Do you see any failures in this model that might be caused by this inaccuracy?
This was brought up by another engineer here and not sure if there were actual faults created by this. When we think of constraints, especially things like circular mates, we make the (possibly wrong) assumption that Inventor is taking one axis of one part and matching it perfectly aligned with the center axis of another part. The axes are 2-dimensional things and have no other aspects to measure to other then end points, angle or distance apart. When we say to mate one axis with another, we kind of expect just that, two 2-dimensional axis line perfectly matched on top of each other. So logic says if the distance from either of those lines to a surface isn't the same, the axes are not perfectly matched on top of each other.
With the comments about 'noise' it would lend itself to mean I could have two axes and a plane, constrain the axes to each other and have them measure a different distance to the plane and say it's okay, it's just 'noise'. Also, to have the value change just by moving one part linearly along a fixed axis, then when it changes to 31.000 it stays locked there, just doesn't make sense.
This was brought up by another engineer here and not sure if there were actual faults created by this. When we think of constraints, especially things like circular mates, we make the (possibly wrong) assumption that Inventor is taking one axis of one part and matching it perfectly aligned with the center axis of another part. The axes are 2-dimensional things and have no other aspects to measure to other then end points, angle or distance apart. When we say to mate one axis with another, we kind of expect just that, two 2-dimensional axis line perfectly matched on top of each other. So logic says if the distance from either of those lines to a surface isn't the same, the axes are not perfectly matched on top of each other.
With the comments about 'noise' it would lend itself to mean I could have two axes and a plane, constrain the axes to each other and have them measure a different distance to the plane and say it's okay, it's just 'noise'. Also, to have the value change just by moving one part linearly along a fixed axis, then when it changes to 31.000 it stays locked there, just doesn't make sense.
Hi Scott,
I took a look at the files. I am able to reproduce the behaviors you are seeing. When such small deviation is reported by the Measure tool, there are usually due to one of the following reasons.
1) The component geometry itself may be imprecise. Some CAD tools have flexible modeling tolerance. It can be on a per feature basis. Inventor is a fixed tolerance modeler. The analytical geometry (plane, cone, sphere, torus) should be precise. When the distance between two vertices is less than 0.00001mm, they are considered the same point. However, it does not affect the precise measurement of precise geometry.
2) The component geometry may be placed slightly off from the design intent. This can also be due to tolerance (assembly particularly).
3) The assembly constraint solver may deem the solution to be valid within its own solve tolerance.
4) The Measure tool may be defective. It reports incorrect measurement values.
I used our internal debug tool to check the geometry of interest. It checks precise. There is no geometric issue reported. So, #1 is out.
#2 and #3 could be related. Here is the proof. Right-click on "P10003080:1" -> iProperties -> Occurrence. The offsets from the assembly origin planes carry some decimal places. This could lead to imprecision. Also, if you measure the origin plane (YZ or XY) of P10003080:1 against the assembly's origin plane (YZ or XY). You will see slight deviation (90.000000062deg). This is not ideal. It means the part isn't truly orthogonally aligned. The length measurement deviation you observed simply reflects the same fact.
Now, unground P10003080:1 and delete constraints associated with the part. Move it away a bit. Add an axial Mate constraint between P10003080:1 and the hole. Then measure. You will get precise 31.000000000 mm, which also discards the possibility of #4.
I don't think you need to worry about the negligible imprecision. No existing mechanical machining tools can produce such precision. Even if it existed, it would have been prohibitively expensive.
Many thanks!
Hi Scott,
I took a look at the files. I am able to reproduce the behaviors you are seeing. When such small deviation is reported by the Measure tool, there are usually due to one of the following reasons.
1) The component geometry itself may be imprecise. Some CAD tools have flexible modeling tolerance. It can be on a per feature basis. Inventor is a fixed tolerance modeler. The analytical geometry (plane, cone, sphere, torus) should be precise. When the distance between two vertices is less than 0.00001mm, they are considered the same point. However, it does not affect the precise measurement of precise geometry.
2) The component geometry may be placed slightly off from the design intent. This can also be due to tolerance (assembly particularly).
3) The assembly constraint solver may deem the solution to be valid within its own solve tolerance.
4) The Measure tool may be defective. It reports incorrect measurement values.
I used our internal debug tool to check the geometry of interest. It checks precise. There is no geometric issue reported. So, #1 is out.
#2 and #3 could be related. Here is the proof. Right-click on "P10003080:1" -> iProperties -> Occurrence. The offsets from the assembly origin planes carry some decimal places. This could lead to imprecision. Also, if you measure the origin plane (YZ or XY) of P10003080:1 against the assembly's origin plane (YZ or XY). You will see slight deviation (90.000000062deg). This is not ideal. It means the part isn't truly orthogonally aligned. The length measurement deviation you observed simply reflects the same fact.
Now, unground P10003080:1 and delete constraints associated with the part. Move it away a bit. Add an axial Mate constraint between P10003080:1 and the hole. Then measure. You will get precise 31.000000000 mm, which also discards the possibility of #4.
I don't think you need to worry about the negligible imprecision. No existing mechanical machining tools can produce such precision. Even if it existed, it would have been prohibitively expensive.
Many thanks!
Hi Johnson and thanks for all the input, your assistance is always appreciated. I was thinking that when we were doing the dimensions, we were picking the axis and not the physical geometry so I did a test on this theory. I took that assembly and created an axis center to the shaft (Work Axis4), grounded it then deleted the shaft. Created an axis center to the bearing (Work Axis5), grounded it then deleted the bearing. Created an axis center to the hole in the plate (Work Axis6) and grounded it, and a plane on the top surface of the plate (Work Plane4) and grounded it, then deleted the plate.
Now I can measure between Work Plane4 and Work Axis5 and between Work Plane4 and Work Axis6 and get exactly 31.00000mm. *BUT* when I measure between Work Plane4 and Work Axis4 I get 30.999999997mm. At this point there is no geometry at all, just a plane and and three axes. So anything to do with the physical parts or models is thrown out the window. This is a video of the measures.
https://www.screencast.com/t/h6LErfDrQN
We understand the complexity of CAD but when I do 15 + 16 on my calculator, if it said it was 30.999999997 I wouldn't say that was correct no matter what reasoning was put behind it.
Hi Johnson and thanks for all the input, your assistance is always appreciated. I was thinking that when we were doing the dimensions, we were picking the axis and not the physical geometry so I did a test on this theory. I took that assembly and created an axis center to the shaft (Work Axis4), grounded it then deleted the shaft. Created an axis center to the bearing (Work Axis5), grounded it then deleted the bearing. Created an axis center to the hole in the plate (Work Axis6) and grounded it, and a plane on the top surface of the plate (Work Plane4) and grounded it, then deleted the plate.
Now I can measure between Work Plane4 and Work Axis5 and between Work Plane4 and Work Axis6 and get exactly 31.00000mm. *BUT* when I measure between Work Plane4 and Work Axis4 I get 30.999999997mm. At this point there is no geometry at all, just a plane and and three axes. So anything to do with the physical parts or models is thrown out the window. This is a video of the measures.
https://www.screencast.com/t/h6LErfDrQN
We understand the complexity of CAD but when I do 15 + 16 on my calculator, if it said it was 30.999999997 I wouldn't say that was correct no matter what reasoning was put behind it.
Also, if the answer is that anything past 5 decimal places is "noise" then why does Inventor allow us to look at numbers past 5 decimal places? Kind of like telling readers that the last 3 pages of a book have nothing to do with the story and are just ramblings.... so why include them?
Also, if the answer is that anything past 5 decimal places is "noise" then why does Inventor allow us to look at numbers past 5 decimal places? Kind of like telling readers that the last 3 pages of a book have nothing to do with the story and are just ramblings.... so why include them?
Hi Scott,
For your case, I don't believe geometry is an issue. The parts contain just planes and cylinders. There isn't complex geometry (spline) at all. The measurement does reflect the tiny deviation that exists in the spatial relationship between geometry. This behavior can be somewhat unpredictable. You may not notice it until it happens.
Regarding the Measure tool precision, it was a conscientious decision to show all the legitimate digits. These decimal places do mean things.
You may have heard the statement of Inventor's 0.00001mm accuracy. This statement is somewhat confusing I have to admit. It seems to imply every piece of geometry Inventor creates carries a potential +-0.00001mm error. This is not true at all. 0.00001mm means the minimum length of an edge or the distance between two vertices. When the two points on a body is less than 0.00001mm, they are considered one. For example, a box measures 1mmx1mmx1mm. If we stack up 10000 of them side-by-side in a line, the total length will measure 10000mm, not 10000+-1mm. You can try that in Inventor and it should measure precisely 10000mm. If not, it will be a bug.
When performing modeling computation, all floating points are valid. The so-called noise is things beyond floating points.
Back to your case, what should we do about it. The amount of imprecision in your case is negligible, though it can look uneasy. I do think it is a good practice to understand the modeling imprecision. You are doing the right thing. You need to make sure the 3D geometry is as precise as it should be and the components are situated as intendedly. I don't think grounding all components arbitrarily is a good idea. It is better to check the precision before grounding. Otherwise, you will not know what caused the imprecision in the first place.
Many thanks!
Hi Scott,
For your case, I don't believe geometry is an issue. The parts contain just planes and cylinders. There isn't complex geometry (spline) at all. The measurement does reflect the tiny deviation that exists in the spatial relationship between geometry. This behavior can be somewhat unpredictable. You may not notice it until it happens.
Regarding the Measure tool precision, it was a conscientious decision to show all the legitimate digits. These decimal places do mean things.
You may have heard the statement of Inventor's 0.00001mm accuracy. This statement is somewhat confusing I have to admit. It seems to imply every piece of geometry Inventor creates carries a potential +-0.00001mm error. This is not true at all. 0.00001mm means the minimum length of an edge or the distance between two vertices. When the two points on a body is less than 0.00001mm, they are considered one. For example, a box measures 1mmx1mmx1mm. If we stack up 10000 of them side-by-side in a line, the total length will measure 10000mm, not 10000+-1mm. You can try that in Inventor and it should measure precisely 10000mm. If not, it will be a bug.
When performing modeling computation, all floating points are valid. The so-called noise is things beyond floating points.
Back to your case, what should we do about it. The amount of imprecision in your case is negligible, though it can look uneasy. I do think it is a good practice to understand the modeling imprecision. You are doing the right thing. You need to make sure the 3D geometry is as precise as it should be and the components are situated as intendedly. I don't think grounding all components arbitrarily is a good idea. It is better to check the precision before grounding. Otherwise, you will not know what caused the imprecision in the first place.
Many thanks!
Another twist to this, I happened to still have all decimal places on and measured the thickness of a part to make sure I make a new one the same thickness. The part measured 0.74999999999998". But when I look at the part it was created by extruding a sketch 0.75". So created a part 0.75" thick that does not measure exactly 0.75" thick. HUH????
Another twist to this, I happened to still have all decimal places on and measured the thickness of a part to make sure I make a new one the same thickness. The part measured 0.74999999999998". But when I look at the part it was created by extruding a sketch 0.75". So created a part 0.75" thick that does not measure exactly 0.75" thick. HUH????
Hi Scott,
Can you post this part and assembly?
I checked this behavior with the assembly you posted before.
When you measure the part in the context of the assembly, the result can be affected by the position of the part in the assembly. The effect should only be in the last decimal places, as you found.
Try opening the part on its own, in a separate window. In that context, see if it measures exactly 0.75 inches.
Hi Scott,
Can you post this part and assembly?
I checked this behavior with the assembly you posted before.
When you measure the part in the context of the assembly, the result can be affected by the position of the part in the assembly. The effect should only be in the last decimal places, as you found.
Try opening the part on its own, in a separate window. In that context, see if it measures exactly 0.75 inches.
Well, looks like I can't. Inventor crashed when I was attempting to copy and paste a part between assemblies and now that I re-launched it and open that part again, it measures 0.750000000". Go figure! At least it's consistent. 🙄
Well, looks like I can't. Inventor crashed when I was attempting to copy and paste a part between assemblies and now that I re-launched it and open that part again, it measures 0.750000000". Go figure! At least it's consistent. 🙄
Okay, I have to back step my last post. I have an assembly with two pieces of the same part. When I measure either of the plates from the back plane to the line at the other side I get 0.74999999999998in. *BUT* if I open the part up by itself and measure the exact same points, I get 0.750000000000in.
https://www.screencast.com/t/LiWfAQoiy4
Assembly attached.
Okay, I have to back step my last post. I have an assembly with two pieces of the same part. When I measure either of the plates from the back plane to the line at the other side I get 0.74999999999998in. *BUT* if I open the part up by itself and measure the exact same points, I get 0.750000000000in.
https://www.screencast.com/t/LiWfAQoiy4
Assembly attached.
If you measure the part by itself, outside of an assembly, it should be 0.75.
But inside the assembly, Inventor measures from the geometry after it's transformed into assembly position. That requires math operations, and every operation can produce roundoff error. Converting units to inch is another source of roundoff error.
If you measure the part by itself, outside of an assembly, it should be 0.75.
But inside the assembly, Inventor measures from the geometry after it's transformed into assembly position. That requires math operations, and every operation can produce roundoff error. Converting units to inch is another source of roundoff error.
Here's a sample that you can test in any web browser, using JavaScript. JavaScript uses the same format for numbers (double precision floating point) that Inventor uses.
To test in a web browser, hit the F12 key to bring up Developer Tools. Click on the Console tab. Then type in these statements:
let a = 2.54
let b = a + 1.905
let c = b - a
let c_inch = c / 2.54
c_inch
This should print out:
0.7500000000000001
That code is simulating what Inventor is doing. Internally, Inventor uses centimeter units.
a is the offset of the part origin plane from the assembly plane
b is that offset plus the thickness of the part
c = b-a gives you the measurement. It's measuring between two planes in assembly space.
c_inch converts it to inches for display
This number is not exactly what you see in Inventor, but neither is it exactly 0.75. So this demonstrates some of what is happening.
Here's a sample that you can test in any web browser, using JavaScript. JavaScript uses the same format for numbers (double precision floating point) that Inventor uses.
To test in a web browser, hit the F12 key to bring up Developer Tools. Click on the Console tab. Then type in these statements:
let a = 2.54
let b = a + 1.905
let c = b - a
let c_inch = c / 2.54
c_inch
This should print out:
0.7500000000000001
That code is simulating what Inventor is doing. Internally, Inventor uses centimeter units.
a is the offset of the part origin plane from the assembly plane
b is that offset plus the thickness of the part
c = b-a gives you the measurement. It's measuring between two planes in assembly space.
c_inch converts it to inches for display
This number is not exactly what you see in Inventor, but neither is it exactly 0.75. So this demonstrates some of what is happening.
Can't find what you're looking for? Ask the community or share your knowledge.