Geometric Modeler |
Geometry |
The Objects of CATIA Geometric ModelerAn Introduction to CGM Objects |
Technical Article |
AbstractCGM 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. |
CGM offers a large variety of objects, allowing a developer to build its own geometric or topological applications. We find :
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]
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]
As seen previously, the CATICGMContainer contains and the CATGeoFactory creates. We described here some other properties of these objects.
All the objects needed for the definition of a topological and geometric instance must be created inside the container of this instance.
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.
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]
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
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.
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.
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.
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]
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]
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]
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]
There mainly are three geometric point interfaces:
Do not confuse CATPoint and CATMathPoint!
[Top]
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]
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]
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]
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]
This section explains how CGM deals with the units and the tolerances for its objects.
[Top]
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]
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]
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]
All the algorithms use a numerical tolerance, much more precise than the resolution.
[Top]
[Top]
[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] |
Version: 1 [Mar 2000] | Document created |
[Top] |
Copyright © 2000, Dassault Systèmes. All rights reserved.