How ACIS Uses Attributes
List of: Discussion Topic
Subjects: Attributes
Contents: Kernel

ACIS defines many system attributes that are used internally. Each component or area of functionality has an organization attribute class from which specific attribute classes are defined. For example, the ATTRIB_ST and ATTRIB_SYS classes are organization classes used by the Kernel Component and ATTRIB_IHL is the organization class used by the Interactive Hidden Line Component. The ACIS components may also use system attributes and thus define an organization attribute class. For example, ATTRIB_PHL is used by the Precise Hidden Line Component, and ATTRIB_HH is used by the Healing Component. This section describes a few examples of how attributes are used in ACIS.

Healing

The Healing Component uses aggregate attributes attached to the body and individual attributes attached to the individual entities in the body to control the healing process. These attributes are used to store healing options, tolerances, and results. The attributes are implemented using the ACIS attribute mechanism, with C++ classes derived from the ACIS base attribute class, ATTRIB. A user interface can be supplied by the application to provide access to, and possibly control of, the data in these attributes.

The individual attributes are derived from the class ATTRIB_HH_ENT and are named ATTRIB_HH_ENT_<something>. They are attached to entities in the calculate stages and store entity-specific information relating to each phase. For example, in the geometry simplification phase, the individual entity would be a face whose attribute contains a pointer to the simplified surface. In the stitching phase, the individual entity would be an edge whose attribute contains the edge pairing information. The individual attributes can also be used to mark specific entities to be left unchanged by the healing process.

The Healing Component also provides functionality to check the input body to determine if there are any errors before actually performing healing operations. If any errors are found by these analysis routines, they are stored in attributes attached to the bad entities. This information can help the user determine appropriate settings for healing tolerances.

Blending

The ATT_BL_INST class defines the attributes that provide special processing instructions to the blend algorithm. These attributes are attached to the body entities that are actually intercepted by the spring curves. The algorithm reads instructions from the intercepted entities. When more than one instruction attribute is found on a given entity, the closest one applies. When the attribute is found by blending, the instruction is "seen." Then, at the end of blending, all the "seen" instruction attributes can be deleted.

Attributes are used to set up blends and blend sequences on edges and vertices. A blend is assigned by picking an edge or vertex and describing the blend characteristics, such as its radius. Attributes of class ATTRIB_BLEND are attached to the picked entities. When an entity with a blend attribute is picked to have its blend fixed, the entire set of connected entities with blend attributes is fixed in one operation. This mechanism gives added control and is used to implement various blend construction techniques.

Blend attribute methods test for equality of blends, continuity across a blend (i.e., position-continuous for chamfers, and slope-continuous for rounds), and indicate the size of a blend (in particular, whether it is zero).

Translators

The IGES Translator Component reads IGES files in ASCII format and converts the data into corresponding ACIS entities. Each IGES entity has two components: a directory entry (DE), which is two lines containing the generic description (e.g., a line); and the parameter data (variable) which contain the specifics (e.g., start and end point). Color, label, level, and line font and weight data is stored in attributes attached to the respective geometric entity in ACIS.

Faceting

Incremental faceting saves computation time when only a few faces of a model have undergone some changes. This is accomplished by attaching a mark attribute to each faceted face when passing its facets to the mesh manager.

The API function api_mark_faceted_faces allows the user to select whether or not to attach mark attributes to faceted faces. If marking faceted faces is selected, a subsequent call to either of the functions api_facet_unfaceted_entity or api_facet_unfaceted_entities causes only the unmarked faces (i.e., those that have changed since last faceted) to be faceted.

A mark attribute is lost when its owner face is engaged in any Boolean operation or a transformation operation other than translation or rotation. Therefore, a faceted face that has undergone a change will no longer be marked as faceted.
PDF/KERN/03ATT.PDF
HTM/DATA/KERN/KERN/03ATT/0003.HTM