In a recent blog post (Healing and Preserving 3D Model Intent) and eBook (Healing as an Essential Function), we wrote about the healing process within the 3D ACIS Modeler and 3D InterOp on precise (B-rep) models. To recap, healing is 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 capabilities described in the blog dealt with healing a precise model. But what happens when all or part of the model is tessellated? What is the healing solution for a hybrid model?
The Problem with Mesh Data
Mesh/tessellated data is common to some industries, such as additive manufacturing, medicine, geology, and architecture, or for workflows operating with approximated 3D models. The data can come from LiDar, or from other modeling systems that output stereolithography (STL) files. The most common CAD export format, STL, describes a surface as a collection of connected triangles — the more complex a surface is, the larger number of triangles are needed to define that surface (for more info on STL and the issues that can arise, see the case study, Spatial SDKs: Streamlining Solutions for Metal AM in Renishaw QuantAM.
Because mesh data is an approximated representation of an object/assembly, there are often imperfections in the data which can hinder many downstream workflows, or result in a poorly printed assembly. These imperfections can include:
- The resulting model is not watertight, exhibiting gaps and holes in the data. For example, a non-watertight model of a manifold can result in more difficulties in later analysis steps and in a poor-quality print
- Overlapping polygons and facets with self-intersections
- Inconsistent triangle orientations
- Degenerate polygons (triangles with a near-zero area)
- Data noise (extra polygons, usually due to imprecision in the measurement)
Because STL is an open format, and subject to interpretation, and contains no topology information (bodies, faces, etc.), exported STL data can contain additional errors:
- Multiple bodies stored on top of each other causing clashes in the data
- Tessellation with topological problems (e.g., small triangles which badly intersect other triangles), gaps, incorrect triangle orientation, etc.
All of these potential issues with imported tessellated data make healing mandatory.
For a tessellated model, healing involves repairing the mesh to better represent the scanned object or the original design intent. There are two possible approaches to healing:
- Local healing, providing fine-grained capabilities for specific areas. This approach requires manual involvement by a user, potentially interacting with tiny errors across hundreds of thousands of triangles. The major drawback to this method is the low likelihood to resolve all issues in the model
- Global or automatic healing, the approach taken by Spatial’s CGM Polyhedra. The primary method is the voxel healing routines that provide a powerful pushbutton solution. For situations requiring more control over the healing process, CGM Polyhedra provides a suite of user tools.
The Nitty Gritty of Global Healing
Voxel healing, the most powerful global healing routine, creates a volumetric representation of the entire body, remeshing the model to create watertight entities. This approach repairs bad polyhedral geometry, healing improper facet intersections, overlapping facets, incorrect orientations, and degenerate geometries. CGM Polyhedra’s voxel healing provides configurability as to the voxel size and level of detail desired.
Voxel healing is the ultimate easy-button healing approach, able to resolve anomalies where all other solutions fail.
Figure: Before Voxel Healing
Figure: After Voxel Healing
For situations requiring a more hands-on approach, CGM Polyhedra provides the robust ACIS checking API to find and localize problem areas. Then the general healing tools allow a user to assign a topology to a collection of mesh components. There are additional tools that enable users to:
- Separate single bodies into multiple bodies
- Fix triangle orientation, where the normal of the surface does not point in the correct/consistent direction
- Fill holes that are supposed to be watertight using a cut-and-cover procedure that removes intersecting triangles and provides a new local mesh that can be easily stitched to the model
- Identify and fix thin cracks to ensure watertightness by stitching/gluing all bordering triangles
CGM Polyhedra brings healing to hybrid models, providing access to powerful, pushbutton voxel healing. When combined with the healing capabilities within the 3D ACIS Modeler, it provides a robust one-two punch.