Hi, (using Blender 2.69, Win7/64)
first, I’m a software developer for 25 years, so I know how to deal with numbers, and I’m also aware about floating point (in)accuracy. But this is something different.
In this example, units are set to metric, scale is default (1.000). I have a vertex. In the properties panel, we can change the coordinate by entering numeric values. I’ve put all screenshots into one image due to the limit of 3 attachments per post, and I describe each item as follows:
- Let’s start with zero
- Then I enter the new value (0.0001) and press Enter
- Blender correctly displays the value (as 0.0001 means 0.0001 meters, it is 0.1 mm)
- Then I change the value to 3 m
- Again I enter 0.0001.
- This time Blender shows a different value. This does not make sense. It should just store the entered value. It shouldn’t matter what was the value before.
Not only the values seems to be parsed/converted differently from the first time I entered exactly the same value, it also doesn’t display any unit. In previous versions, Blender showed µm and nm. Maybe there is a setting that I didn’t find.
If I now change “99.89738” to “99.8973” - which is really a minor change - and press Enter, Blender “thinks” it’s meters. I do understand it assumes meters if no unit is entered explicitly, but then it should consequently display a unit if it’s not meters, i.e. it must display “99.89738 µm” (or better “0.1 mm”, which is what I’ve entered).
Another issue is, if “99.89738” is displayed and I start typing “µm” at the end, the edit box just freezes when typing the first character. I can not navigate or delete anything even though it still dispalys “99.89738”. Only pressing Esc works. However, If I enter the edit box and first delete the last “8”, then I’m able to enter “8 µm” at the end. It doesn’t matter that the unit won’t be accepted when pressing Enter because this is during editing.
The problem is not the small scale. (I don’t intend to go < 0.1 mm). The issue is the inconsistency.
EDIT:
Binary format (little endian) of decimal value 0.0001
- after entering it the first time (correct): 0x17 0xB7 0xD1 0x38
- after entering it the second time (incorrect): 0x00 0x80 0xD1 0x38
EDIT #2:
Blender 2.68a: like 2.69
Blender 2.67b: Same conversion problem, but it displays the unit “µm”.