Accuracy of Rhinoceros
Since many free-form modelers are not accurate enough for manufacturing or
engineering analysis, and since Rhino is a free-form modeler, many people assume
Rhino is not accurate enough for their application.
In fact, Rhino is just as or even more precise than most CAD
software.
Here are the details:
There are two common methods 3-D models are stored in computers.
The first method is using meshes (sometimes called facets), which are usually
used for rendering, animation, or conceptual design. While mesh modelers often
have what appear to be precise techniques for creating models like spheres,
boxes, splines, or even NURBS, behind the scenes they eventually turn everything
into a mesh. Meshes are inherently inaccurate because a mesh is simply a
collection flat triangles. Even if the surface is curved, a mesh modeler still
represents it with flat triangles. This is fine for most renderings, animations,
and games, but not when designing for manufacturing. It should be noted that
many manufacturing processes use meshes but the mesh density must be under the
control of the manufacturing application to achieve the desired accuracy. Rhino
does not use meshes for modeling, but it can convert NURBS to meshes at any
density as needed for file exports and rendering.
The second method is NURBS. Most CAD, CAM, CAE, and CAID modelers, including
Rhino, represent free-form shapes as NURBS. Products that use NURBS can
potentially represent free-form shapes accurately enough for the most demanding
application if they are diligent in their NURBS implementation. If an
application’s primary focus is machinery design and not free-form shapes, it is
likely that its NURBS implementation can be less than robust for demanding
free-form modeling. This is typical of the mid-range feature-based parametric
solid modelers that are so popular today.
Since Rhino’s focus is free-form NURBS modeling, its NURBS implementation is
one of the most robust available today. Here are the primary considerations when
evaluating whether a modeler is accurate enough for your application:
- Position. Rhino, like most CAD
products, represents position in double-precision floating-point numbers. That
means the x, y, or z coordinate of any point can have a value ranging from as
large as ±10308 to as small as ±10-308. Most CAD software,
including Rhino, uses double-precision floating-point arithmetic.
Because of the limitation of current computer technology, we expect
calculations to be accurate to 15 digits of precision in a range from
±1020 to ±10-20. This limitation is found in all modern
CAD products.
Older CAD products often have additional limitations because they were
developed originally to run on computers with less precision. For example, many
CAD modelers are designed for performing calculations on geometry that is
restricted to be in a box of size 1000x1000x1000 meters centered at the origin.
(Geek alert: Another of the popular off-the-shelf modeling kernels requires
parameterizations that are within a factor of 10 of being arc-length
parameterizations.) Rhino has none of the limitations found in these older
products.
- Intersections. In Rhino, when
two free-form surfaces are intersected, the resulting intersection curve is
calculated to the accuracy specified by the user. The Rhino default accuracy
(tolerance) is 1/100 millimeter. Many CAD systems have built in tolerances that
the user cannot override.
If you carefully examine the geometry other modelers produce from free-form
surface intersections, free-form fillet creation, and free-form surface offsets,
you will discover that this free-form geometry is actually calculated with
accuracy between 10-2 and 10-4 meters even though they
advertise precision of 10-8 (without mentioning that the units are
meters).
- Continuity (curvature change
matched across a seam.) Most CAD products don’t even have tools to match
curvature, let alone do it accurately enough for a discriminating designer. If
your application requires smooth free-form surfaces such as airfoils,
hydrofoils, lenses, or reflective surfaces, you need these tools found only in
Rhino or high-end surface modeling products like CATIA and Alias.
Other things to consider:
- Units. In Rhino the user can specify
the units. The units are actually changed and then all calculations are done in
those units. In many CAD products, units are only a display attribute. Even
though you may have specified millimeters, all of the calculations are actually
being done in meters. No big deal. You just move the decimal place over. Wrong!
Read on.
- Changing units. Changing units or
unit conversions can be one of most commonly overlooked accuracy hazard in
CAD/CAM. Most of us might think that converting from imperial units to metric
units would introduce some inaccuracy while never giving millimeter to
centimeter conversions a thought. Why? Because we think in decimal. But guess
what! The computer doesn’t. It is binary (that is base 2, not base 10). That
means one or more floating-point multiplies or divides are needed to convert
from millimeters to centimeters. The inaccuracies introduced by converting from
millimeters to centimeters are the same as those introduced by converting from
millimeters to inches.
In summary, Rhino is as accurate or more accurate than any other CAD
product on the market today. In addition, Rhino provides tools for setting
accuracy and units as well as tools for controlling and evaluating continuity
not found in most CAD products. Rhino does not have the limitations found any of
the older CAD software.