Dimension Calculation Problem | Finally Cornered!

bug
dimension

#1

Hey everyone. So I’ve finally managed to corner a very frustrating thing I’ve been chasing for more than a year! This also occurred in 2015 and 2014, if I remember correctly. I wanted to write about this for a very long time but I didn’t know how to properly explain it.

Basically, there’s something wrong with the dimension calculation. I caught this one while trying to draw an arc. Hopefully the screenshots give further information.

This is a graphic design project, but when it comes to full-scale architecture this 0.000001 mm mistake turns into nightmare. I suspect it has something to do with the snapping technique.
The worst part is that I intentionally tried to reproduce this problem with no success. I like when everything is neat and perfect and seeing this 299.999996 number makes me pull out my hair. Has anyone ever came across this bug/mistake?


#2

I would like to have a look at the model.


#3

I’m a bit lost, are you seriously questioning a 0.000004mm discrepancy in a software that is known to start having problems below 1.0mm


#4

Due to the copyright I cannot share the whole model but I’ll post a part of it. Thanks for looking it up @Cotty. Also, here’s a GIF, showing the problem.

Cormaron Typeface.skp (1.4 MB)


#5

Yes, I have the audacity to question it. Why should it have such problems in the first place? SketchUp is the best program out there that has all the potential to surpass and outrun the leading programs of the market. No software is perfect but the presented problem is serious because that 0.000004 mm later turns into centimeters, if not discovered on time.


#6

I can see the behaviour in your file too, but if I copy the geometry to a new file, all works as expected, so there may be something wrong with that specific model/file?


#7

FYI:

(1) SketchUp has an internal tolerance of 0.001 inch (0.0254mm)

  • Expecting dimensions to be accurate to a thousandth of a micrometer (nanometre) is beyond ridiculous.

(2) The display of dimensions in tooltips and the Measurements (VCB) box is often approximated and rounded. The display is subject to the setting in the ModelInfo > Units panel.


#8

In your model, I moved the geometry and it no longer exhibited this behavior. Did you happen to start with a smaller layout and then scale the model up? Due to the internal conversion to inches and back, the scaled location may be slightly off in metric exactness.


#9

@Cotty, here’s another GIF and further confusion. Drawing a straight line makes SketchUp change its mind. @DanRathbun, I understand that but I don’t work with micrometers. The problem is, that even after drawing precisely, with time dimensions seem to change.


#10

If you draw the line down to the inferred tooltip at the arc’s center instead of using the inference from the end of the arc, you will get exactly 300mm. I think what you are seeing is simply the limitation of finite-precision computer arithmetic when the inference engine tries to calculate the endpoint. Bear in mind that internally SketchUp works in inches, regardless of your units settings (the units settings affect display, not the internal representation).


#11

@jimhami42, thanks for answering. No, I didn’t change layouts or scales. I tried moving the geometry as well, but after undoing and copying again, the problem appeared again. Also, it seems that copying the geometry also produces correct dimensions but I can’t understand why.


#12

I apologize. I misread your original post.

You said “0.000001mm”, which is actually a thousandth of a micrometre, also known as a nanometre !


#13

@slbaumgartner, do you mean that the dimension from the arc end is in fact 300 mm but SketchUp shows 299.999 due to inch-milimeter conversion? I don’t know why but it feels like dimensions change with time. I kept thinking it was my fault.


#14

When you construct the arc, it is using the tangent point that is calculated for a 300mm radius arc intersecting the vertical line 600mm from the other end. The calculations to determine this point end up locating the tangent point at +300mm in X from the center and +0.000004mm in Y from the center (should be zero). The inference engine correctly picks this up as the end point of the arc, but it is not what you expect. When you draw a line across, the endpoint is where it should be with no tangency calculation needed.


#15

Whatever it is internally, I’m pretty sure it is not exactly 300 mm, as that does not work out to a clean, finite number of inches. The round-trip from your input mm to inches and back to mm for display is, I think, encountering the limits of computer arithmetic.


#16

Thank you very much! I think I understand now where this whole thing comes from. I believe the best way to avoid this is to make sure tangent drawing is not initiated in the first place, what do you think?