I had several interesting responses regarding AutoCAD is loosing it’s accuracy article. The last discussion was with Jon, is kind of make me think that I should update this article. Thank you for your info Jon. You can read Jon response in comment section of 100 AutoCAD tips I compiled. Let us forget the hatches and floating points limitation first. Let us focus to accuracy problem that start the post in the first place.
For you to see this issue clearer, I tried to reproduce the problem. I can’t use the original file as it was a company document. The problem in the original file is very annoying, probably because it has many objects in that file, not as simple as I created here.
This is very rare problem, I have to admit. After 13 years I use AutoCAD, I only found this problem once. And it’s not even my own drawing. I tried to reproduce the problem by creating axis very far from 0,0.
As you can see, when I add dimension ordinate, it’s already showing wrong value.
Now I try to draw 5000mm length line with 5 deg angle. When I try to list its properties, the length is not 5000!
I try to modify it further. I rotate it 3 degrees, and rotate it back –3 degrees, then the line length is now showing different value. I believe none of us will work peacefully when we know we are creating our drawing with this accuracy issue.
The only way out I can figure is trying to reduce the coordinate number. If we can move it, then move it closer to 0,0. I know it’s not practical, especially if we need to use real world coordinate. If I can’t, then using larger units might be appropriate solution. In the problem I found before, the company always draw using mm unit. And they start to have the problem when the coordinate become a very large number.
I believe the problem is because the architect usually draw in mm. But they already place the building in the real world coordinate. I was suggesting them to pick a local coordinate for their architectural drawing, and reference it in master plan drawing for civil engineers. The master plan drawing can use m or even km to avoid the problem.
I also suggested that because they were migrating to Revit. And I know that Revit will not be entertained to see such a large coordinate. Yes, it was Revit limitation, not AutoCAD. But when we are working with different platform, things like this should also be considered.
As I know there are many people may not agree with ‘try to draw as close as possible to 0,0’, maybe I can say I suggest to ‘if you have accuracy problem, then try to reduce the coordinate number’.
I know this solution will not satisfy many people. The architect I talked to doesn’t sound happy about it. I’m opened for any other suggestion. If you do know how to solve the problem other than making a mess with the coordinate, please share in comment section below.
Hello,I've a problem that would know the issue;When I draw something,let's say a rectangle,then move it a very long distance,for example:1548765215489 units,zoom to it,select it,that rectangle now has only one vertex at the bottom instead of four vertices at the corners…Could you please help???Thanks,RamiMann
RamiMann, can you post the file? Sorry for the late reply…
It looks like you are having fun without us :) I hope this can remind us whenever we see the problem, we know the way out. Thanks for sharing.
I did some experimentation and came to conclusion that its not AutoCAD accuracy problem but floating point problem. Its just a display problem. (So don't believe what you see :))
The only solution is to keep your data to 15 or less significant didgits.
You can use multiple ways to do that:
1. Shift ucs.
2. Use different units
There can be other ways.
another interesting experiment:
create line 0,0 @5000<5
create array 100 rows @ 1E13 , 100 colums @ 1E11 (LAST LINE WIL BE AT POSTION OF LINE IN THE ABOVE DISCUSSION)
set UNITS to 6 decimal place for linear AND angular
run data extraction.
take all the lines and filter startX startY angle length deltaX delta Y (and put them in that order if you want)
sort colums by ascending startX and ascending startY, Export if you want , but it already makes some interesting reading. to say the least . OF COURSE YOU CAN DO A LOT OF SORTING AND FILTERING, TO FIND THERE IS ONLY ONE (1 !!!) LINE THAT'S 5000 LONG.
i think the following observation is interesting as well:
i used wcs all the time (acad 2010):
created the same line as in previous discussion at 0,0 > length is 5000.0000
move line from 0,0 to 1E12,1E14 > length is now 5000.0002 !
move line back to 0,0 > length remains 5000.0002 !!!!
i found no solution moving the ucs around
I've seen it reproduced at as little as 860'.
You do have to save the UCS if you want to return to id objects based on random (project) coordinates. I'm not talking about saving a UCS with an object, but UCS->Save option.
I think I'm I bit slow to catch what you mean. So you actually created the model near 0,0… but the project location set to a named UCS?
What I did is move and save the UCS near to my model, but the actual project location is still at world UCS. That's why it didn't work!
AutoCAD stores entity data relative to the wcs. You do not have to save a UCS, which would make it impossible to return to the UCS that was active when geometry was created.
It would be interesting to see exactly when the problem 'starts' to appear. I agree we probably all want absolute accuracy, but in the example shown here the Y-ordinate is 1.0E14. In millimeters that's 2.5 times the earth's circumference ! Enough to draw any map. in any drawing with coordinates that large, why would you want UNITS set to 4 decimals :-)
(willing to accept good answers ….)
This discussion is getting interesting :)
Rob, I'm not really able to tell you when this problem starts to appear. Probably the link Dave provided us can answer it. I'm not really understand about the floating points, but it looks like it depends on your machine and (maybe) the complexity of your drawing. I'm not sure, but it could be because I use newer machine, so I need to use coordinate that large. There are many possibilities that I can't confirm.
However, I found this problem about 3-4 years ago, given by my client. And trust me… it is not as large as the world map. It was a real project, they have many building footprints in the drawing, and they have a hard time to modify it. It was not a civil design, but an architectural drawing. Unfortunately the document is not allowed to be shared.
I'll try to reproduce the problem. If I succeed to reconstruct it with relatively small coordinate, I'll update it.
From your comment I infer that you move the ucs. In our solution the model is at 0,0,0 and a named ucs is created. AutoCAD tends to model off of the wcs not the current ucs. I believe this all falls under the "floating point precision" discussion which is documented several places (http://autodesk.blogs.com/between_the_lines/2004/01/more_on_64bit_p.html).
Ah, my mistake. I'll try it later and give you an update.
Thank you for this great solution!
We handle this issues in CADWorx by using a UCS, and drawing the model near 0,0,0. You can created a named ucs at the project location, and restore when you need to retrieve values from the model in the original coordinates. For normal drawing, having the model near the origin gets through a lot of other issues too, as some commands don't work well far from the origin (REVOLVE has had issues).
Interesting suggestion Dave.
I tried to move my UCS near my model, but I still having accuracy issue. Especially for angled objects. It does work for drawing objects parallel to XY axis though…