Part and parcel with model-based engineering is model translation. Because the model is now the specification, accurate translation from one system to another becomes essential. But even if a model is accurately read, the intent of the model has to also be properly interpreted. Key to proper model interpretation is healing — the process of modifying model data so that it conforms to the rules of the target system, while adhering to the intent of the source.

## The Problem

Typically, 3D modelers are based on boundary representations, where the model is described by the boundary between its inside and outside. This boundary has both a topological definition (such as faces and edges) and a geometric definition (the shapes underlying the topology). While major modelers share this trait, their differences become apparent when looking at the details of these data structures. For example, do the surfaces have to intersect at the edges or can they have gaps, and if so how large can that gap be? How close do two points have to be for the modeler to consider them coincident? What geometric continuity is required for a surface to be valid? These kinds of rules must be fully understood by the translator if the output model is to be of any use.

## Healing and Model Translation

The input file for a 3D model might contain bad data, which can result in corrupted information in the resulting translation. Specifically, due to the differences in modeling kernels, valid data created in one system may not be considered valid when imported into another kernel. In addition, the geometrical or topological errors might occur during the translation process due to differing interpretations of the data. To ensure precise and valid translation, 3D InterOp provides this option for repairing and healing the translated files. Repairing involves checking the translated file for corrupted data and fixing the invalid data. During translation 3D InterOp’s healing corrects the differences in precision of source and target entities.

3D InterOp performs automatic healing in three areas with the goal of creating a model with high enough quality to be correctly interpreted by the modeling kernel and retain fidelity to the intent of the original model:

- Modification of the topology of body by removing duplicate and overlapping vertices, and splitting edges having large discontinuities in their pcurves so that their continuities follow the rules of the modeling kernel.
- Modification of the geometry which involves reconstruction of self-intersecting and irregular curve geometry of edges, co-edges, and surface geometry of faces, as well as the trimming and sub-setting of underlying surfaces of faces to conform to the rules of the target modeling kernel. 3D InterOp healing does not modify the geometry, ensuring that output conforms to the shape of the original.
- Fixing of other invalid data in the body such as loop errors.

The goal of the automatic healing with InterOp is to create a model with sufficient quality to be correctly interpreted by the target modeling kernel while retaining the fidelity of geometric shapes in that data so they are as close as possible to the designer’s original intent.

## The Healing Process

After the model has been translated, users have the option of employing a healing workflow to further improve the quality of the model. Within the 3D ACIS Modeler, this healing process consists of three phases: stitching, geometry simplification, and gap tightening.

### Stitching

The first phase of healing is stitching or sewing separate faces of an entity together to create a sheet or solid body that is topologically complete. Stitching essentially involves replacing groups of coincident edges with a single edge, and groups of coincident vertices with a single vertex.

### Geometry Simplification

Imported models often contain surfaces that appear analytic when displayed on a screen, but are actually represented as splines. In the geometry simplification phase, such spline surfaces are converted to corresponding analytic forms wherever possible. Geometry simplification results in a reduction of data size and speed improvements in subsequent modeling operations.

### Gap Tightening

This phase (also called geometry building) tightens the gaps (inaccuracies) in the input models by building geometry as necessary. In this phase, a series of geometric operations is performed to improve the precision of face, edge, and vertex data. Geometry building essentially removes the gaps between adjacent surfaces by recomputing intersections.

How the gap is closed depends on the type of surface intersection. Gaps in geometry are filled by extending the adjoining surfaces and recomputing the surface-to-surface intersection.

*Figure: The surfaces are extended and the intersection is recomputed based on extended surfaces.*

For tangential intersections of analytic surfaces, the surfaces are snapped to each other using linear transformations, determined through a graph-based solver that is capable of handling cyclic tangencies. The nodes of the graph are the faces, and the arcs of the graph represent the tangent edges. Cycles in the graph are broken by giving preference to surfaces with higher curvature (for example, cylinders are snapped to planes rather than planes snapped to cylinders).

*Figure: The plane surfaces and the cylindrical surfaces snap together at the bold-faced edges as indicated by the arrows.*

Lastly, tangential intersections of spline surfaces in which the intersection curves are along isoparametric lines of the surfaces are corrected via control point modification.

*Figure: Control points of the two spline surfaces are modified so that the surfaces intersect.*

## Interoperability Requires Healing

Interoperability is an essential part of model-based engineering. And interoperability requires accurate translation; however, due to differences in how models are interpreted, healing of the data is required to maintain the original intent of the 3D model.