Geometric Modeler |
Geometry |
The Surfaces of CATIA Geometric ModelerProperties and Detailed Descriptions |
Technical Article |
AbstractCGM offers a great variety of surfaces. This paper describes their common properties as well as their particular features. |
A surface is a function from a closed interval of R^2 to R^3. Hence, it is defined by three scalar functions of two variables. The variables are usually called parameters of a point on the surface and denoted through U and V, while the scalar functions represent the mapping, for each point of the surface, between the Cartesian coordinates, usually called X, Y, Z, and the corresponding parameters U and V.
Three scalar functions FX, FY and FZ map the (U,V) parameters into the Cartesian coordinates (X, Y, Z) for each point P of the surface. |
Multi-patches surfaces are defined as a set of (n_u*n_v) connected pieces, each piece, called patch, having its own parameterization. Hence, a point belonging to the surface can be expressed in terms of:
The Cartesian coordinates of the point P can be evaluated using the global parameter (U,V), or the local parameter (u_3,v_2) on the (3,2)th patch. |
[Top]
The CGM surfaces implement the CATSurface interface, which behavior is now described. The CATSurface interface inherits all the behavior of the CATGeometry interface. Therefore, the factory of the CGM objects (CATGeoFactory) handles the creation, stream, unstream and remove of the CGM surfaces. The geometric transformation and/or duplication of CGM surfaces is managed by specific processes through CATTransfoManager and CATCloneManager instances [3]. For more details about the CGM objects general properties, see [1].
[Top]
In addition, the surfaces must not be self intersecting, except if they
are closed (as for a cylinder for example).
On the other hand, they can be degenerated, but only on one or two boundaries that are not adjacent. |
Specific objects
[Top]
The surface parameters only have sense if they are associated with the surface they parameterize. These parameters are handled through the CATSurParam instances, which are transient objects containing the parameters in each directions and a reference to the surface. In peculiar, they transform global parameters into local parameters and patches, and vice versa. The CATSurParamReference transient instance can not directly be created; the surface is responsible for retrieving a CATSurParam instance under your request.
[Top]
A surface has a maximal limitation, outside which it is not defined, or cannot be extrapolated. This limitation is expressed in terms of a CATSurLimits transient instance, containing two CATSurParam instances.
Geometric operators can be run on a part of the whole surface, therefore defining a current limitation. This current limitation is also handled by the CATSurLimit class.
Each surface is able to retrieve the definition of a space that surrounds it: the bounding box.
This information is very useful, especially if you want to have a first diagnostic of intersection
for example.
The bounding box contains two points, and can be a CATMathBox instance, if expressed with Cartesian
coordinates, or a a CATSurParam instance, if expressed with parameters.
[Top]
The main behavior of a surface, for a point lying on this surface, is to evaluate the Cartesian coordinates from its parameters and, conversely, the parameters from Cartesian coordinates:
The surface is responsible for the mapping between the (X, Y, Z) Cartesian coordinates and the (U, V) parameters, so that no assumptions must be maid about this mapping, except for a few objects that have published their own parameterization.
[Top]
It is useful to retrieve the equations representing the surface, especially when you want to operate the geometry. You can retrieve these equations as CATMathFunctionXY instances, that are transient and created under request.
All surface modification changes the equations. Thus, it is necessary to precisely define the use of the geometry equations. There are 3 main methods for using equations.
CATSurface::Lock()
: Locks the geometric object before asking for its equation.
This operation:CATSurface::GetEquation()
: Asks for the equation. This operation:CATSurface::Unlock()
: Unlocks the geometric object when you do not need to use
its equation no more. This operation:In case of a modification of a surface,
[Top]
You find four major surface types in the CGM offering: the resolved surfaces, the sampled surfaces, the multi-represented surfaces and the procedural surfaces.You can also introduce your own class of surface, and use it as any CGM surface in all the CGM operators or as the underlying geometry of a topological object. For a detailed description of this mechanism, see [2].
[Top]
These surfaces are only available on a mathematical form: NURBS, canonical surface (plane, cone, sphere, cylinder, torus) belongs to this type. Evaluations are made directly from the mathematical equations. The following array describes, for each resolved surface, its definition parameters, and the validity range of the definition parameters which come in addition to general validity criteria that have already been described.
CATCylinder | obtained by parallel displacement of a circle, or a part of a circle, along an axis. The definition parameters are:
Validity range of the definition parameters:
|
|||||||||||||||||||||
CATCone | The definition parameters are:
Validity range of the definition parameters::
|
|||||||||||||||||||||
CATTorus | The full torus is defined by an axis and two radii. The major ring sweeps a full circle in
the (O,X,Y) plane, of radius MajorRadius and centered at the origin of the Axis. The minor
ring sweeps a full circle of radius MinorRadius, centered at some point on the major ring and
lying in the plane containing this center point, the origin O, and the vector Z. A piece of
the full torus is given by limiting the angles through which the major ring sweeps and those
through which every minor ring sweeps. The definition parameters are:
Validity range of the definition parameters:
|
|||||||||||||||||||||
CATSphere | The definition parameters are:
The meridian planes are passing through the axis third direction, the parallel planes are othogonal to the axis third direction. Validity range of the definition parameters:
|
|||||||||||||||||||||
CATPlane | The definition parameters are:
|
|||||||||||||||||||||
CATNurbsSurface | NURBS definition of a curve, see [4] |
[Top]
These surfaces result from a computation that does not lead to a canonical form. For example, a fillet with variable radius cannot be expressed in terms of a cylinder or another canonical surface. Moreover, the limiting curves in this case are defined by a Spline interpolation between marching points, obtained by a progressive algorithm. It is the reason why this type of surface is called sampled surface. For example, the CATGenericFilletSurface interface manages the behavior of a fillet surface that is not canonical, while the CATGenericRuledSurface interface manages the behavior of a draft surface that is not canonical.
CATGenericFillet | Surface generated by the smallest circle arcs of CenterPoints centers and passing
through Limit1 and Limit2 sets of points. The definition parameters are:
|
|||||||||
CATGenericRuledSurface | Surface generated by lines passing through and delimited by Limit1 and Limit2
sets of points. The definition parameters are:
|
[Top]
The multi-represented surface simply delegates, without computation, its evaluation to a pointed surface.This model allows CGM to keep as long as possible the object canonicity: for example, an object implementing the CATFilletSurface interface point to an objet implementing a canonical surface (such as CATCylinder, CATCone) or to an object implementing the CATGenericFillet if the resulting fillet is not canonical. The canonical representation, if it exists, is returned by the CATSurface::GetGeometricRep method.
CATFilletSurface, CATDraftSurface, CATSweepSurface, CATOffsetSurface are interfaces for various multi-represented surfaces. Each of these surface refers to another one for the evaluation process. The referred surface is preferably a canonical surface. If it is not possible, sampled or procedural surfaces are chosen. |
Multi-represented surfaces are often created with geometric operators that are dedicated to this creation. The following array displays the geometric operator or the method of the CATGeoFactory to use for the creation of each type of multi-represented surface:
Surface | Creation | Definition parameters | |||||||||||||||||||||
CATFilletSurface | CATConnect operator |
Connection of two or three surfaces.
|
|||||||||||||||||||||
CATChamfer | CATConnect operator |
Defines a surface such that the surface normal has a constant angle with a given direction
(called draft direction)
|
|||||||||||||||||||||
CATDraftSurface | CATGeoFactory:: CreateDraftSurface |
||||||||||||||||||||||
CATOffsetSurface | CATGeoFactory:: CreateOffsetSurface |
||||||||||||||||||||||
CATSweepSurface | CATExtruder operator |
[Top]
The procedural surface uses the evaluation of another surface, call the reference, for the computation of its own evaluation. The reference can be any type of surface, even a procedural one. But in this last case, this will be more time consuming: two evaluations are done, one for each level. In case of a CATProcOffsetSurface referring another CATProcOffsetSurface however, the offset values are directly cumulated at the surface creation, so that only one evaluation is done.
When you ask for an evaluation of a procedural surface, the procedural
surface uses the evaluation of its reference. This process is recursive if the reference is a
procedural surface itself, so that it could be time consuming, because each procedural surface
do computations at each level.
This is not the case for a procedural offset surface of another procedural offset surface: here, the offset are cumulated, eliminating the recursivity. |
We detail now the various procedural surfaces.
CATProcOffsetSurface | Generated by offsetting each point of a reference surface in the direction of the
reference surface normal and of length a given offset that may be positive or negative.
|
||||||||||||
CATTabulatedCylinder | Generated by the translation of a generative curve.
|
||||||||||||
CATRevolutionSurface | Generated by the revolution of a generative curve around a direction.
|
||||||||||||
CATLinearTransfoSurface | Generated by transforming each point of a reference surface with a given geometric linear
transformation.
|
||||||||||||
CATNonLinearTransfoSurface | Generated by transforming each point of a reference surface with a given non linear
transformation.
|
[Top]
[Top]
[1] | The Objects of CATIA Geometric Modeler |
[2] | The Management of Foreign Data |
[3] | The Cloning and Transformation Managers |
[4] | About NURBS |
[Top] |
Version: 1 [Jan 2000] | Document created |
[Top] |
Copyright © 2000, Dassault Systèmes. All rights reserved.