Kernel Component
List of: Components
Subjects: Attributes, Construction Geometry, History and Roll, Laws, Model Topology, Patterns
Contents: Kernel

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.