Enabling Length Snapping or NOT

These settings are both equally irritating. I work in metric - in the architectural industry, there is no need for fractions, but using either of these settings there is always the danger of a fraction from creeping into the drawing. I looked on ArchiCad where I wilfully created a scenario where a dimension would be ‘forced’ to show a fraction by dimensioning a equally divided wall say at 4045mm long, but this clever software just made one 2022 and the other length 2023. Why does SU insist of showing these two equal halves as ~2023 each??

Turn length snapping off. It is useless and often causes small inaccuracies, not in the way you think, though.
The tilde indicates that your unit display accuracy settings do not enable SketchUp to show the fully accurate value.
If you divide 4045 to two you get 2022.5 and it is better that you know that you have “drawn” it that way. If you want the division to be 0.5 mm off the midpoint you model it that way.
Been an Archicad user (on and off) since about 1989. I don’t like its inaccuracy in these matters. Things that are slightly off are very difficult to spot.

1 Like

If it was up to you, what would it display if those equal halves are really 2022.5?

While you might not need to show values beyond the decimal, it’s good idea to show them while you are working. Set your display precision high while working so you can see and be aware when you have situations like you describe. Leave the coarse display precision for output.

1 Like

Just out of curiosity, which algorithm decides what part gets what? (And are the parts actually corrected?)

Same applies to ordinate dims, I guess?

I rather have control in these circumstances.
Btw, I never bother to turn the length snapping off. Sometimes set the snap angle for rotation, though.

See how I set my units in Model info → Units.

Why would you call that clever?
I personally would hate it if I divide a line in equal parts and the software would decide otherwise…

I read somewhere that SU is internally doing all its calculations in inches. So, all metric dimensions are converted internally to inches before calculating. In such conversions, rounding will inevitably occur.

If you want to get more precise values, use what I showed, namely millimeters set to 0.0 or one digit to the right of the decimal. Use more if you prefer. Then you will see 2022.5 for both values.

Yes, SketchUp’s internal representation of geometry uses inch units. The rounding that occurs during conversion from mm to inch will almost certainly not be noticeable to extremely close inspection. I’m not sure whether SketchUp uses 32-bit or 64-bit floating point IEEE representation for geometry numbers, but even the lesser-precision 32-bit format can still hold values with precision much smaller than billionths of a unit (at typical human scales of geometry). In other words, the rounding that occurs during unit conversion will introduce errors on the order of 0.000000001 mm or so.

1 Like

Holy cow Batman 0.000000001mm is really, really, really small! - What do you think for my wall’s dimensions, should I consider it or should I apply it to some rocket science problem?
Waiting for the backlash of serious posting protocols!

And I read somewhere that internally the accuracy of SketchUp is limited to 1/1000th of an inch so the smallest possible dimension is 0,0254 mm. Not exactly clockwork.

Yes indeed. SketchUp has an extremely high level of numeric precision by virtue of the kind of floating point (FP) numbers that the software uses (which is the most common kind of FP number format available on general-purpose computers for the past many decades).

I understand all the English words you wrote, but I do not understand what you are trying to communicate. :slight_smile:

Wherever you might have read this, I think it is wildly inaccurate or at least misleading. SketchUp stores geometric values with extremely high precision. You can test this to the millionth of an inch by manually entering dimensions when creating some geometry, saving the model, reloading the model, and checking the dimension. The actual stored precision is a few orders of magnitude even finer that what SketchUp’s UI can display.

There is a limitation involving 1/000 inch precision in SketchUp when two or more entities are close to each other. The actual stored position values are super high precision, but SketchUp’s “Check Validity” function will not allow two entity positions to be closer to each other than about 1/000 inch. This is because of a semi-ugly reality when dealing with FP values in digital computers. Essentially all programs that use FP values need to deal with this reality (explained in detail in the next paragraphs, beware!) in one way or another.

SketchUp, and most FP-using programs, applies a numeric tolerance “fudge factor” when comparing two geometric numbers. In principle, it would be possible to directly ask the computer CPU whether two FP numbers (such as vertex #1’s X coordinate and vertex #2’s X coordinate) are the same. It seems to be a yes-or-no proposition, and strictly speaking it is. However, due to the internal nature of so-called IEEE single-precision and double-precision FP formats (and similar proprietary ones from Days of Yore) it is almost never appropriate to do such a simple direct comparison of FP values.

The reason is because of the “rounding” that was alluded to up this thread when arithmetic calculations are done with FP values. When the computer CPU performs any arithmetic operation such as adding or multiplying two FP values, the result will be off by a very very tiny amount (a binary digit or “bit”) compared to the mathematical ideal. For typical numbers, that very very tiny discrepancy is likely to be a trillionth of an inch or of a dollar etc. Probably doesn’t matter, right? But it also means that if the computer performs a sequence of calculations (multiply by 5, divide by 6) on two FP values to get a result, and then performs another sequence of operations that is mathematically equivalent to the first sequence (divide by 6, multiple by 5) the second result is likely to be very slightly different from the first result. That means a simple direct comparison of the two results would indicate that the results differ. Indeed they do, but the difference is probably not significant to the user or the design of the computer program.

Therefore, most programs that compare FP values do so with a tolerance. The two values are considered equal if their difference is very small. For SketchUp, the difference tolerance is about 1/000 inch. This means that you can place the corner of one building at exactly 200.2500000 inches in from the curb, but the corner of another building cannot be within 0.001 inches of the first building’s corner. If the model was created with them closer, SketchUp’s Check Validity function will forcibly move one of them to be coincident with the other (or will simply delete one of them, leaving a hole in the model).

7 Likes

thank you all for the replies, especially the detailed ones :grinning:

Great information. thanks for taking the time to explain this!