G2 Curvature Deviation - Interpretation and Limitations
The G0 Position and G1 Tangent tolerances are simple distance and angle measures that are easy to interpret.
In contrast, the G2 Curvature measure is a calculation of the ratio between the two radii of the adjoining curves or surfaces, and this makes it more difficult to interpret intuitively.
In practice, this calculation is mostly used internally by the software to make pass/fail decisions. As users, we get more useful information from iso-angle shaders and curvature plots, and the calculated value is less important.
G2 Deviation Calculation
The curvature of a surface has to be defined in a particular direction (see 4.1 - Intro: Curvature in Different Directions for a detailed explanation). For a boundary, the radius values are measured along lines on the surface that are perpendicular to the boundary, at intervals determined by the checkpoints.
The calculation is a 'relative' way of calculating the curvature :
- G2 Curvature Deviation = (Radius 1 - Radius 2) / (Radius 1 + Radius 2)
First the difference in the two radius values is calculated (Radius 1 - Radius 2)...
...and then the calculation takes account of the physical size of the surfaces (Radius 1 + Radius 2). This means that a simlar visual result on a small or large object will give a similar value for curvature deviation.
Note: In the software the actual calculation ignores negative curvature by using absolute values, and is more accurately stated as:
- G2 Deviation = [ ABS(ABS(Radius 1) - ABS(Radius 2)) ] / [ ABS(Radius 1) + ABS(Radius 2) ]
Inconsistencies and Errors
You may occasionally find yourself in a situation where your surface tool tells you that curvature continuity has been established across a boundary while an evaluation tool asserts the opposite.
Inconsistencies between the curvature continuity status assigned to a boundary by different tools have a variety of causes. Possibilities are:
- The number and position of checkpoints used by both calculations is different.
- The original curves used to build the surface don’t intersect at the corners. The surface creation tool should warn you of this (check the promptline history). This situation can create inconsistent curvature continuity checks by different tools.
- There is a gap between the surfaces which is slightly larger than the Maximum Gap Distance in the Construction Options, so the evaluation tool views the surfaces as failing positional continuity (and hence higher levels of continuity). This gap might have been created when the original curves were rebuilt to create the surfaces. The tolerance used for rebuilding curves is given by the Curve Fit Distance in the Construction Options. Setting Curve Fit Distance to a value smaller than Maximum Gap Distance may remove the discrepancy.
In conclusion, if any tool warns you of a discontinuity or problem where you didn’t expect one, examine your geometry closely. Some continuity calculations, especially those done at the time a new surface is built, tend to be more “forgiving” than those that check the boundary after the surface has been built.
Notes
Absolute 'v' Relative Calculation
Older versions of Alias (version 12 and earlier) used an absolute method of caculating the curvature, but this was replaced by this relative method for two reasons:
- This helps to be in line with other engineering or CAD software packages since a majority of them calculate curvature deviation this way.
- The relative evaluation is independent of the scale of the models whereas the absolute deviation based check was scale dependent.
Other CAD Systems
There are other software packages that use a similar relative curvature continuity check but have a factor of 2 built into their deviation calculation. In other words, their method of calculating can be expressed as:
- G2 Curvature Deviation = 2 * (Radius1 - Radius2) / (Radius1 + Radius2)
Users need to be aware of this so that they can specify their tolerances to match those of other software packages if so required.