As defined by the unv standard the 164 dataset provides factors and offsets to retrieve data in SI units. The relevant quantities read in the other datasets should be divided by the factors (see Record 2
below):
Universal Dataset Number 164
============================
Universal Dataset
Number: 164
Name: Units
Status: Current
Owner: General
Revision Date: 19-AUG-1987
-----------------------------------------------------------------------
Record 1: FORMAT(I10,20A1,I10)
Field 1 -- units code
= 1 - SI: Meter (newton)
= 2 - BG: Foot (pound f)
= 3 - MG: Meter (kilogram f)
= 4 - BA: Foot (poundal)
= 5 - MM: mm (milli newton)
= 6 - CM: cm (centi newton)
= 7 - IN: Inch (pound f)
= 8 - GM: mm (kilogram f)
= 9 - US: USER_DEFINED
= 10- MN: mm (newton)
Field 2 -- units description (used for
documentation only)
Field 3 -- temperature mode
= 1 - absolute
= 2 - relative
Record 2: FORMAT(3D25.17)
Unit factors for converting universal file units to SI.
To convert from universal file units to SI divide by
the appropriate factor listed below.
Field 1 -- length
Field 2 -- force
Field 3 -- temperature
Field 4 -- temperature offset
Example:
-1
164
2Foot (pound f) 2
3.28083989501312334D+00 2.24808943099710480D-01 1.79999999999999999D+00
4.59670000000000002D+02
-1
However when loading a unv file in Salome the length factor seems to be used as a multiplication factor instead. For instance a mesh written in millimeter (length factor=1e3) is multiplied by 1e3 instead of being divided by 1e3. This applies also to the translation vector of coordinates systems.
In the following example expressed in millimeters containing a single node (1e3, 0, 0) and a translation vector of (0, 1e3, 0) we expect the point to be located at (1, 1, 0) in meters. In Salome this point is located at (1e6, 1e6, 0) in meters. This is also what we obtain when exporting the mesh in unv format.
-1
164
5 MM: mm (mnewton) 2
1.0000000000000000E+3 1.0000000000000000E+0 1.0000000000000000E+0
2.7314999999999998E+2
-1
-1
2420
1
SMESH_Mesh
1 0 0
Global Cartesian Coordinate System
1.0000000000000000E+0 0.0000000000000000E+0 0.0000000000000000E+0
0.0000000000000000E+0 1.0000000000000000E+0 0.0000000000000000E+0
0.0000000000000000E+0 0.0000000000000000E+0 1.0000000000000000E+0
0.0000000000000000E+0 1.0000000000000000E+3 0.0000000000000000E+0
-1
-1
2411
1 1 1 11
1.0000000000000000E+03 0.0000000000000000E+00 0.0000000000000000E+00
-1
This bug has been observed in the SALOME-9.9.0-native-DB11 version.