Representing Curves and Surfaces in B-Rep Solid Modelers

In the last 20 years, CAD/CAM systems have developed incorporating an increasing volume of information related to the physical shape they represent. Historically, the representation techniques are classified in two groups: Solid Modelling and Geometric Modelling. The Geometric Modelling techniques have been developed with the automobile industry since the 50's, where they were used mainly to define the shape of car bodies. Now, they are applied in the naval and aeronautical industries and other areas. The Geometric Modelling techniques have as main support the control over the shape. The Solid Modelling techniques appeared in the 70's. They can create Computer Models with the capability of classifying any point in the three- dimensional space as being: internal, external or on the boundary of the solid. Solid models are very important, they support the calculation of mass properties (such as inertia, volume, and other properties) and the automatic generation of meshes for finite element analysis. However, the representation domain was restricted to polyhedrons, or, approximated polyhedrons of curved shapes (ex. spheres, cylinders, cones and others). Recently, in some commercial CAD systems, where Geometric Modelling techniques are combined with Solid Modelling techniques to represent computer models, the final model is not assure to be a valid Solid Model. In this article a new data structure will be defined based on non-manifold representation to support the representation of curves and surfaces in B-Rep solid models. This new data structure will support a synchronization between the geometry of the Geometric Model and an approximated polyhedral Solid Model. An approximated polyhedral Solid Model is obtained allowing the calculation of mass properties using several existent algorithms in the literature. And it will be possible to reduce the approximated polyhedral for a minimum representation whenever necessary. The face, in commercial Solid Modelers, has two functions: it represents the boundary of the solid and represents the geometrical shape of the contour. In this new data structure, we will separate these two functions, one element will represent the boundary of the solid and another topological element will represent the geometrical shape as free form curves and surfaces. We will explain that through an example, suppose that a face has three, five or more sides. In this case, it is not common for a commercial CAD system to support the representation of a face with three or more sides, as the polynomial expression becomes very complicated. Usually, those faces are subdivided in a number of four sided faces. That fact is an inconsistency between topology and geometry, as the number of sides in a face is defined by topology and geometry usually "forces" a face to have four sides. In this article, we will propose two structures, the principal data structure contains the original solid model with its geometry, and the auxiliary data structure represents an approximation of the solid model. We will define some methods to synchronize both data structures