Geometric Modeler

Geometric Modeler Overview

An introduction to the geometric modeler
Technical Article

Abstract

This article presents the main features of the CGM modeler, in term of objectives, architecture, functionality and openness.


CGM Objectives

CATIA Geometric Modeler (CGM) is a complete software package for the development of applications with a need for 3D geometric modeling capabilities, and which want to take advantage of the power of the CATIA modeler and its solid, surfacing and wireframe capabilities.

Provided as a set of object oriented programming ressources, it is composed of a full set of high level geometric primitives, operations and queries, as well as interfaces dedicated to the integration with other parts of an application such as viewers, dialog monitors and data managers.

Designed in accordance to the major standards and the most recent design patterns, it allows the best interoperability with other software components, a great potential of growth and a possible customization.

[Top]

CGM Architecture

The CGM modeler is delivered as a set of specialized components, called frameworks, that are built on top of each other. They can be used stand-alone or integrated with other CAA V5 applications.

[Top]

CGM Frameworks

Each framework provides either the application, or other frameworks with a set of consistent services. The different frameworks cooperate to provide the application with high level services. The hierarchy between the frameworks allows an application which would like to only use a subset of CGM to minimize the size of its prerequisites.

This figure represents the tree of prerequisites and exposed services of the frameworks. For example, GeometricObjects uses as prerequisites some AdvancedMathematics exposed services.
Only direct arrows are drawn to simplify the figure. Hence, GeometricObjects also uses Mathematics exposed services.

Presented as a complete geometric and topological package, the CGM modeler can be used to develop powerful applications for building and operating complex geometry.

Fig. 1: CGM architecture

Mathematics
defines basic mathematical objects: points, vectors, lines, planes, axis, matrices and transformations. It is used by the frameworks of the CGM offering, and provide basic mathematical services to many other applications.
 
AdvancedMathematics
offers a set of specific mathematical objects, such as N-dimensional intervals, NxM matrices, mathematical functions and systems of 1 or 2 variables, implicit systems, and associated operations, dedicated to applications which need to perform intensive mathematical computations. The Mathematics and AdvancedMathematics objects are not persistent; they are used as intermediates by the other CGM frameworks.
 
GeometricObjects
provides the application with

The geometric objects are used to define the supporting geometry for higher level objects, such as topological objects for instance. The C2 continuity is assumed for all geometric object.

GeometricOperators
provides the operators on GeometricObjects such as intersection, projection, reflect lines, mathematical analysis. It uses the AdvancedMathematics ressources and is used by TopologicalOperators.
 
TopologicalObjects

This framework uses GeometricObjects for the supporting geometry definition and can be used by applications in need for B-Rep topology representations.

TopologicalOperators
provides the operators acting on topological objects: boolean, sweep, fillet, draft, thickness operations.
 
Tessellation
provides tools to extract representations of the geometry and topology modeled with the CGM frameworks:

These tools are dedicated to display applications (such as wireframe, shaded or hidden line removal visualizations), SLA (stereolithography) machines and quick interference analysis.

[Top]

Scalability

CGM offers a large scale of use:

[Top]

Openness

The architecture of the CGM modeler is designed to be open. Hence, if an application programmer wants to put additional information on existing objects, attributes are provided. Moreover, a mechanism is provided to define foreign surfaces or curves and use them as any CGM surface or curve.

Attributes
CGM allows an application developer to associate typed data with geometric or topological objects, without creating a new class. This additional data is called a CGM attribute. The attributes can be streamed. They are very useful to store temporary data produced by an algorithm, such as, for example:
Defining a foreign geometry
CGM allows an application programmer to introduce his own class of curve or surface A generic development frame is provided, to fully integrate the foreign class in the general CGM architecture, and uses the foreign class instances as any CGM curve or surface instances.
 
Defining a new operator
In matter of operators, the application programmer can define a new operator by creating a new class.

[Top]

Integration in the General V5 Offering

The CGM modeler can be used stand-alone or as a component of the general V5 offering.

The CGM objects are created inside a CGM container, which is a set of CGM objects. This container must be complete: when a CGM object is inside the container, all the CGM objects that are referred by it must also be inside the same container.

In particular, topological and geometric operators work on objects of a same container: the input and output objects must belong to the same container.

To store the CGM container, the application puts it in its own document.

Applications which are not owner of any document, but want to store their data, can use a .NCGM document, delivered by the CGM offering.

[Top]

CGM Functionality

CGM provides a geometric and topological modeler and general mechanisms to interact with this modeler.

A Geometric and Topological Modeler

The geometric part of the modeler allows the user to create and use an extensive set of geometric primitives:

These geometric objects must be C2 continuous.

The provided geometric operations are:

The topological part of the modeler defines an object from its boundary representation: vertices bound edges, that bound faces, that bound volumes. The highest level of topological objects is called a body.

The topological modeler is based on the cell complexes theory (see Rossignac and O'Connor [1]). This approach presents a lot of advantages such as:

The topological operations build new bodies. The following operators are provided:

Moreover, CGM contains advanced topological operators for surface modeling, especially powerful for body in white or surface styling applications:

The topological modeler implements the smart concept:

The steps leading to a new topological body can be written in a topological journal.This information, depending on each operator, is temporary and helps the CGM programmer to follow the objects modifications. This capability provides the key mechanisms that are used by applications (such as the mechanical modeler) to implement a full feature modeling approach

What About Units?
The unit of the container is the millimeter. Moreover, the maximum size of an object, called model size, is given by the container. Its value is fixed to 1km (10^5mm=100m before R14). This determines the resolution of the model or minimum size of valid objects. This size is 10^-3mm. The angle unit is the radian.

...and Tolerant Modeling?:
The objects are built as hermetic as possible, that is to say, with the as smallest as possible gap.
The operators, on the contrary, must support gaps as large as possible, because the modeler has to be able to use external objects or because the user does not want to be so precise. It is the reason why there is no maximum gap.
The resolution defines the minimum size of the valid objects. In particular, this defines the criterion of geometric coiencidence. But the mathematical computations (such as intersection, projection) work at a numerical tolerance, which is much more precise.

[Top]

Building an Application

CGM provides as a separate software component a set of classes and methods for the creation and use of geometric and topological objects such as to operate them, analyze their geometric properties, modify their definition or update them.

All the CGM objects can be used by viewers or dialog monitors, defining a wide range of applications. We describe now some general mechanisms for interacting with the CGM modeler.

Subscript/Subscribe
This mechanism allows an application to subscribe to a modification of the CGM objects. The application is then informed as soon as a modification occurs, and can launch specific treatments. The refresh of the visualization after the modification of an object is an example of use of such functionality.
Undo/Redo
Using the smart mechanism, undo actions can be put in place on the topological objects. An undo action restore the model in the state it was at the last stamp. A redo action cancel the previous undo action.
Streaming and unstreaming
In order to be saved on disk or to be included inside another file, the CGM objects are able to be converted in a sequence of bytes (this operation is called streaming); conversely, such sequence of bytes can be transformed into a CGM model (unstreaming).

[Top]


In Short

[Top]


References

[1] Rossignac J. , O'Connor M.:
SGC: A dimension independant model for point sets with internal structures and incomplete boundaries.
Geometric modeling for product engineering. Eds M. Wosny, J. Turner, K. Preiss,
North Holland pp. 145--180 (1989).
[2] The CGM Objects
[3] The CGM Curves
[4] The CGM Surfaces
[5] The Management of Foreign Data
[6] Topology Concepts
[7] The CGM Topological Model
[Top]

History

Version: 1 [Mar 2000] Document created
[Top]

Copyright © 2000, Dassault Systèmes. All rights reserved.