ACIS implements geometry in two distinct forms.
Construction geometry refers to the
C++ classes that hold the mathematical definitions of geometric objects.
Model geometry refers to the
C++ classes that add model management functionality to the construction geometry.
|
|
Construction Geometry
|
|
The construction geometry classes are lightweight, and, by themselves, are temporary in nature and are not saved as part of the user's model. They can be used on-the-fly for math calculations, or can be included as part of model geometry to form permanent model objects.
|
|
Construction geometry classes have lowercase names. These classes include
compcurv,
cone,
ellipse,
intcurve,
meshsurf,
plane,
sphere,
spline,
straight, and
torus. The math class
SPAtransf, which represents a 3D affine transformation, is often grouped with the construction geometry classes for discussion.
|
|
The construction geometry classes do not have any private data members; everything is public and nothing is behind private methods. The reason for this is that without this management overhead, the data can be passed directly into intersectors to make the performance faster. All data and evaluators of the geometry classes can be freely accessed.
|
|
For example, the
sphere class (lowercase) is a construction geometry class that mathematically defines a sphere in both
xyz object space and in
uv parameter space. It contains methods that construct, destroy, modify, inquire, and evaluate the sphere. It does
not contain any model management methods, and cannot be directly saved to an
ACIS save file.
|
|
Model Geometry
|
|
Model geometry is permanent and saved with the model. Model geometry classes provide model management functionality on top of the geometry definition (they include construction geometry classes as part of their data structures). This includes saving and restoring of model data, history and roll, transforms, and the ability to attach system-defined or user-defined attributes for carrying abstract data along with the model objects.
|
|
Model geometry classes are derived from the
ENTITY class, and have uppercase names. These classes include
COMPCURV,
CONE,
ELLIPSE,
INTCURVE,
MESHSURF,
PLANE,
SPHERE,
SPLINE,
STRAIGHT, and
TORUS. The math class
TRANSFORM, which represents a transformation, is often grouped with the model geometry classes for discussion; it is saved as part of the model.
|
|
For example, the
SPHERE class (uppercase) is a model geometry class that defines a sphere as an object in the model. It includes as one of its data elements a
sphere. It provides methods for identification, save and restore, history and roll, multiple user use counts, and other common model management operations. It also provides methods to set the sphere's center and radius, and to transform the sphere's location. This can be saved to an
ACIS save file, and the saved data includes the construction geometry information from the
sphere data element.
|