Spline Solver Tolerances
List of: Discussion Topic
Subjects: Healing
Contents: Healing

Spatial Corp. determined that it is difficult to heuristically come up with a single value that can be used as a tolerance for spline geometry building throughout a given model. Certain parts of a model may have larger errors than the rest. If a high tolerance for geometry building is then used throughout the model, large movements might be allowed everywhere in the model, and certain sensitive regions in the model might get corrupted.

Therefore, Spatial decided that the tolerance for spline healing needs to be computed uniquely and locally for every entity being healed, and that the local tolerances should be computed based on the errors in the respective entities. A local edge tolerance and local vertex tolerance are used by the spline solvers. Both tolerances have the same units as that used for length/distance in ACIS.

Spatial also determined that there is a need for a facility to be able to put a global upper limit on all the local tolerances for cases in which there is a strong restriction on the amount of surface movement allowed. In general, the local tolerances computed are very reliable. They allow only as much movement of surfaces as required for correcting the error, since the amount of local error itself is used in computing the local tolerances. Therefore, the default value of the upper limit of geometry building tolerance is set to 10.0. This almost allows the local tolerances to have "complete control." However, if a user needs to restrict the upper limit, then the maximum geometry building tolerance value can be reduced to the desired limit.

Edge Tolerance

The local tolerance for modification of the surface geometry at an edge is computed as the minimum of the maximum geometry building tolerance and the local tolerance:

edge_tol = min (max_geombuild_tol, local_tol)

where

The maximum geometry building tolerance (max_geombuild_tol) is the upper limit on tolerance (user-specified or the default value).
The local tolerance (local_tol) is the minimum of the face box tolerance (face_box_tol) and the local error tolerance (local_error_tol).
The face box tolerance (face_box_tol) is:

min_face_box_size / 10

The minimum face box size (min_face_box_size) is the box size of the smaller of the two adjoining faces.
The local error tolerance (local_error_tol) is the maximum of the stitch gap tolerance (stitch_gap_tol) and the deviation tolerance (deviation_tol).
The stitch gap tolerance is:

(stitch gap) x 3.0

The stitch gap is the gap between the edge curves before stitching.
The deviation tolerance is:

(deviation) x 3.0

The deviation is the maximum distance of the edge curve and the end vertices from the underlying surface (computed by sampling at a few points on the curve).

Vertex Tolerance

The local tolerance for surface geometry modification at a vertex (e.g., the bending of surfaces to vertices) is computed as the maximum of the edge tolerances (calculated as described in section Edge Tolerance) for all the edges meeting at that vertex.
PDF/HEAL/01CMP.PDF
HTM/DATA/HEAL/HEAL/01CMP/0016.HTM