The
Kernel Component (KERN), in the
kern directory, is required by all other components and covers many different functional areas. In fact, many components have internal hooks within
KERN to enable their operations.
|
|
The uppercase classes used in model topology are implemented in
KERN, as are the lowercase geometry classes and geometry subtypes. The spline interface is also defined in
KERN.
|
|
Other functionality implemented in
KERN includes attributes, patterns, graph theory, tolerant modeling, history and roll, feature naming and annotation, and save and restore.
|
|
Attributes are used to attach data to entities; any entity may have zero or more attributes. Attributes can carry simple data, pointers to other entities, or links to application-specific variable length data.
ACIS uses many "system attributes," but users may also define application-specific (user-defined) attributes.
|
|
Patterns are used to facilitate the creation (or modification) of entities or features that are repeated in an arrangement. Examples of patterns include the radial pattern of holes in a shower head, the linear grating of ventilation holes on a computer monitor, or the treads on a tire. The
ACIS patterns functionality reduces the burden of implementing such repeated features by giving programmers tools that facilitate pattern creation and modification.
|
|
Graph theory is one area of mathematics which has been incorporated into
ACIS to solve some specific problems in Boolean operations and sweeping. However, rather than burying its implementation,
ACIS exposes its functionality so that it may be used to solve other problems in geometric modeling.
|
|
The
tolerant modeling architecture in
ACIS can accept less precise geometric data and create valid topology. Tolerant edge and vertex capabilities allow the software to attach tolerance values to them, so that even when edges do not intersect within
SPAresabs, they're brought close enough to be useful.
|
|
Tolerant modeling can also be used to handle approximations for operations that don't require as much precision. Because speed is inversely proportional to precision,
ACIS will be able to offer users a choice: precision at the cost of speed, or speed at the cost of precision when approximations can suffice.
|
|
The
history and roll functionality permits rapid change between states of an
ACIS model. Moreover, the
history manager allows branched histories to exist, instead of only linear ones, which provides even more flexibility for rolling backward and forward. The three main features of history and roll are:
|
|
|
Linear or nonlinear history streams
|
|
Multiple history streams for either a part or an entity
|
|
Saving and restoring history with each model
|
|
Feature naming provides more detailed information about what occurred during a modeling operation such as blending or sweeping. Feature naming annotates what entities were created or removed as part of a modeling operation, or what relationship new entities have with the original entities.
|
|
The
annotation information is added to the bulletin board in the form of bulletins for derived types of this annotation entity. The actual information depends on the modeling operation being annotated. For example, blending and sweeping each have a number of derived annotation types that are specific to their modeling operation.
|
|
Save files are used by
ACIS to store modeling information in external files. These files have an open format so that external applications, even those not based on
ACIS, can have access to the
ACIS geometric model.
|
|
ACIS supports two kinds of save files,
SAT and
SAB, which stand for "Standard
ACIS Text" and "Standard
ACIS Binary", respectively. The model data information stored in the two formats is identical, so the term
SAT file is applied to both.
|
|
The
save and restore functionality is used to store and retrieve geometric entities to and from a save file. Geometric entities are saved in the form of an entity list.
ACIS provides the API functions
api_save_entity_list and
api_restore_entity_list for saving models to and retrieving models from a disk file. Applications request data in binary or ASCII text form.
|
|
In addition,
KERN includes basic functionality for initialization, memory management, debugging, error handling, polynomial root solving, and callback functions.
|