Geometric Modeler

Geometry

The Objects of CATIA Geometric Modeler

An Introduction to CGM Objects
Technical Article

Abstract

CGM mainly offers objects that have a geometric or topological meaning such as curves, surfaces or topological bodies. It also provides objects to manage and operate them. This paper introduces the objects you can use in the CGM offering, and goes in more details through the persistent objects and their environment.


Introduction

CGM offers a large variety of objects, allowing a developer to build its own geometric or topological applications. We find :

Fig. 1: The main families of CGM objects
GeoObjects1.gif (6951 bytes) Into the right angle boxes are shown the main permanent objects, as described upper.

Inside the round angle boxes are written the transient objects.

We only represent the main objects families. For a full detail of the composition of each family, see the References item, which links you to the adequate paper according to the object you want to study.

[Top]

Container, Factory and Document

A container is a set containing and managing objects. Hence, the CATICGMContainer interface represents the behavior of the CGM container, that manages the CATICGMObject instances. It gives a persistent tag to each instance it creates and follows the links between the CATICGMObject instances. It allows the developer:

The CATGeoFactory gives another view of a CATICGMContainer. It is a kind of CATICGMContainer that manages:

[Top]

Properties of the CGM Container and Factory

As seen previously, the CATICGMContainer contains and the CATGeoFactory creates. We described here some other properties of these objects.

A CGM Container Is Complete

All the objects needed for the definition of a topological and geometric instance must be created inside the container of this instance.

Persistent Tag

When an instance is created inside a (explicit or implicit) factory, it gets an unique identifier called "persistent tag". This tag remains the same as long as the instance is not removed. Hence, it is not modify even if

but it is canceled with the removal of the instance.

Implicit and Explicit Factories

The creation of a CATGeoFactory instance really triggers the creation of two factories (called explicit factory and implicit factory), with the same unit and validity range. All methods we have described are available for both factories, except the CATICGMContainer::Scan method, that only scans the explicit factory.

[Top]

Use of the CGM Container and Factory

Given the CATGeoFactory, you already can write your own applications, visualize the data by your own viewer and save the data using our own repository. If you do not have such viewer or repository, you can use these offered by CGM

Document

No specific document is required to store the persistent CGM objects. Each application writes the CGM objects in its own document but have to put them consistently inside a geometric container (CATGeoFactory).

Now, if you are not owner of any document, but you want to store your data, CGM puts a .NCGM document to your disposal.

The reference of CGM instances from a document to another one is offered by the ObjectModeler hyperlinks.

Viewer and Workshop

Moreover, a viewer and a workshop, associated with the .NCGM document, are provided to illustrate the CGM use. In this implementation, the viewer only displays the objects of the explicit factory, but it is its own choice.

Integration into CATIA V5

To let CGM possibly be independent of the CATIA V5 environment, the CATGeoFactory does not require all the properties of a CATIA V5 container. In fact, if you examine the behavior of the CATGeoFactory interface, you can see that is not a CATIA V5 container, because it does not adhere to the CATIContainer interface. In particular, it does not allow an application to include other container in itself.

However, CATIA V5 brings a higher level object, created by the CATIA V5 factory of containers, that is a CATIA container, and also adheres to CATGeoFactory. In this environment, you take advantages of the CATIContainer interface and the CATGeoFactory interface.

Fig. 2: Available interfaces according to the offering
GeoObjects2.gif (4177 bytes) The CATGeoFactory interface is different from the CATIContainer interface. CGM proposes an object adhering to the CATGeoFactory interface, while CATIA V5 offers an object also adhering to the CATIContainer interface.

As an example, this object will be seen when you use a Part document, that contains a SpecModeler/Part container, a Generic Naming container, and a geometric container.

[Top]

Persistent CGM Objects: CATICGMObjects

CATICGMObject is the basis interface for all the persistent objects of the CGM offering. The CATICGMObject instances are explicit or implicit according to the factory they belong to and are identified through a persistent tag. They offer more behaviors:

Most of the CATICGMObject have a geometric meaning. They are grouped under the CATGeometry interface. Up to now, there is only one CATICGMObject that is not a CATGeometry: the CATLaw, that models the variation of a parameter on an interval.

[Top]

Base Interface of the Geometric Objects: CATGeometry

The added value of the CATGeometry interface is its geometric meaning. Hence, a CATGeometry object offers:

and many other behaviors, depending on the kind of CATGeometry.

The CATGeometry interface groups

[Top]

C2 Continuity

The main assumption made on the geometric objects is that they must be C2 continuous. CGM directly generates objects satisfying this criterion. If you want to introduce foreign curves or surfaces, you have to insure they satisfy it. If they do not satisfy it, you can cut them where they are not C2 continuous, and use topological objects to assemble the parts.

Before dealing with the curves (base class CATCurve) and the surfaces (base class CATSurface), we briefly presents the geometric points (CATPoint).

[Top]

Points

There mainly are three geometric point interfaces:

Do not confuse CATPoint and CATMathPoint!

[Top]

Parameters on Curves or Surfaces

A point on a curve may be represented with 3 coordinates, as a point in a 3D space, or with 1 parameter (usually called w) in the space of the curve.

In the same way, a point on a surface may be represented as a 3D point or with two parameters (usually called u and v) in the space of the surface.

These parameters have only sense if they are associated with the curve or the surface they parameterize. Hence, the object is responsible for the mapping between the 3D coordinates and the parameter(s), and the user of these objects must never make any assumptions about this mapping.

[Top]

Surfaces in CGM

CGM offers several types of surfaces:

All the CGM surfaces are precisely descried in [4]

If you have specific surfaces that no CGM surface fits, CGM allows you to define your own surface, and use it as it is a CGM surface. See [2] for a precise description of this capability.

[Top]

Curves in CGM

CGM offers several types of curves

All the CGM curves are precisely descried in [5].

If you have specific curves that no CGM curve fits, CGM allows you to define your own curve, and use it as it is a CGM curve. See [2] for a precise description of this capability.

[Top]

Topology

The topological objects are geometric objects, and managed in the same container. These topological objects are bodies, cells (vertex, edge, face, volume) and domains (loop, shell, wire, lump). See [5] for the topological concepts and [6] for their implementation in CGM.

[Top]

Units and Tolerance

This section explains how CGM deals with the units and the tolerances for its objects.

[Top]

Unit

The geometric factory is the object that creates any geometric objects. The unit of the geometric factory is the mm.

The angles are defined in radians in the whole CGM offering. Constants (CATRadianToDegree, CATDegreeToRadian) allows you to convert degrees to radians and the converse.

[Top]

Model Size: the Bounding Box of the CGM Model

The factory defines the maximum box inside which the geometric objects must be. This box is defined by the Model Size, fixed to 10^6mm (10^5mm before R14). As the unit is the millimeter, all the objects must be inside the box [-1000m, +1000m] ([-100m, +100 m] before R14).

[Top]

Resolution: the Lower Valid Length of an Object of the CGM Model

The Resolution defines the minimum length of a valid object. It is fixed to 10^-3.unit. As the unit is mm, lines of length smaller than 1micro-m are not valid.

The management of confusions ("Do two objects have the same geometry?") is a direct consequence of the resolution: if the distance between to geometric points is less than the resolution, the two points are considered to be geometrically at the same location.

However, the resolution is not a maximum gap (between ajacent surfaces for example). In fact, the topology captures the design intend, and the gap between the geometry of two faces sharing the same edge can be greater than the factory resolution: the modeler is tolerant.

[Top]

Numerical Tolerance

All the algorithms use a numerical tolerance, much more precise than the resolution.

[Top]


In Short

[Top]


References

[1] About Mathematics
[2] The Management of Foreign Data
[3] The Curves of CATIA Geometric Modeler
[4] The Surfaces of CATIA Geometric Modeler
[5] Topology Concepts
[6] The CGM Topological Model
[7] Cloning and Transformation Managers
[8] About Edge Curves
[Top]

History

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

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