(This thread was inspired by https://discourse.mcneel.com/t/why-rhino-is-not-accurate-enough-with-cplanes/178237.)
The accuracy of the results of Align and BoundingBox can depend on the render mesh settings when surfaces or similar are involved. Depending on the mesh settings when Align or BoundingBox is executed this can result in errors considerably greater than the absolute tolerance setting.
Example of Align error. A plane is aligned to the right side of a simplifed torus. The torus sits at an angle, and has an outher diameter of 300. AlignRenderExampleDC01.3dm (2.0 MB).
Align was run twice, with the NURBS meshing slider to the left at “Fewer polygons”, with the NURBS meshing slider to the left at “More polygons”
The Align error with the coarser mesh is 1.62 . This is obviously larger than any absolute tolerance.
Example of BoundingBox error. The same simplified torus at an angle was used.
BBRenderExampleDC01.3dm (2.0 MB)
NURBS meshing slider to the left at “Fewer polygons”:
World coordinates:
min = -135.08865356445312,-150.00000000000003,-99.099037170410156
max = 134.97492980957031,150.00000000000003,98.991752624511719
dimensions = 270.06358337402344, 300.00000000000006, 198.09078979492188
NURBS meshing slider to the left at “More polygons”:
World coordinates:
World coordinates:
min = -136.59068298339844,-150.00000000000003,-99.989486694335938
max = 136.59756469726562,150.00000000000003,99.996353149414062
dimensions = 273.18824768066406, 300.00000000000006, 199.98583984375
The differences in dimensions reported by BoundingBox are: 3.13, 0.00, 1.90.
The maximum difference in dimensions is greater than one percent of the largest dimension. This difference is larger than any tolerance.
The user should not need to ensure that they are using mesh settings which are result in a fine enough mesh for accuracy.
This needs to be fixed sooner rather than later.
Update:
With the NURBS mesh slider set to it’s midpoint which results in a mesh which appears to be smooth:
Align error with the mid setting is 0.1721038818359375
AlignRenderExampleDC02.3dm (2.0 MB)
This is still larger than the recommended absolute tolerance range.
BoundingBox dimensions with the mid setting:
World coordinates:
min = -136.35881042480469,-150.00000000000003,-99.800262451171875
max = 136.42546081542969,150.00000000000003,99.867591857910156
dimensions = 272.78427124023438, 300.00000000000006, 199.66785430908203
The difference from the finer mesh in the dimensions reported by BoundingBox are: 0.44, 0.00, 0.32. This difference is larger the recommended absolute tolerance range.
BBRenderExampleDC02.3dm (2.1 MB)