Automatic CAD-model repair

A valid and correct CAD-model is essential for successful utilization of technologies such as computer graphics rendering, path-planning for robotics and NC-milling, and more recently, solid freeform fabrication. Unfortunately, today's CAD-models, whose quality are subject to human operators, solid-modelers, and post-processors, are still plagued by a wide array of problems, including the generation of unwanted shell-punctures (i.e. cracks, holes, and gaps) and zero-volume parts. Such problems complicate and may even invalidate the CAD-model output, and they are frequently a source of subsequent failures in downstream applications. Currently, CAD-model errors are repaired by human operators who are occasionally assisted by specialized software. This can be a time-consuming task. CAD-models frequently have more than 50,000 geometric entities such as triangular facets, and the number of errors can run into the hundreds. This thesis represents the first in-depth study of, and an important first step towards, automatic CAD-model repair. In particular, it presents a methodology for a two-stage automatic repair process of triangular-facet CAD-models without human intervention: First, shell-closure is established to eliminate the presence of shell-punctures. The shell-closure process is based on topological principles, but utilizes geometric heuristics to resolve ambiguities and to enhance aesthetics. The results of this process alone will usually enable the CAD-model to be successfully processed by robust manufacturing software. Second, the facets are intersected and split as needed such that all shell-intersections are along the facets' edges, and such that the vertices of the intersection curves only occur at the vertices of the facets involved. This facilitates the concurrent trivial detection and removal of zero-volume parts. The final result is a set of facets that describe a set of closed, orientable shells that are free of zero-volume parts, and that intersect exclusively along their facets' edges in their entirety.