# SUBSYSTEM OVERVIEW

ACIS Interface (LINT) Subsystem

The (LINT) subsystem is the top level subsystem in the PDElib ACIS Interface. The lint subsystem provides ACIS schema specific functions for translating to/from ACIS data structures. The reader should be familiar with the MDA subsystems before reading this man page. Additionally, the MAP, GDX, and DDF subsystems are applicable (see mda_intro, map_intro, gdx_intro, and ddf_intro man pages.

# GENERAL CONCEPTS

The ACIS Interface to PDElib consists of the ACIS EXPRESS model and several subsystems of functions, each beginning with the letter 'l'. The ACIS Interface subsystems are as follows:

LINT

The top level ACIS Interface subsystem

LPIR

The subsystem to read ACIS data using the ACIS API and/or SAT (Save As Text) file format.

LPIW

The subsystem to write ACIS data using the ACIS API and/or SAT file format.

LGDX

The subsystem of functions to convert between ACIS data (in the PDElib ACIS EXPRESS model) and GDX data structures.

LMAP

The subsystem to allow the ACIS Interface to be used within the PDElib map entity framework. (see map_intro)

LICR

The subsystem of functions to directly create ACIS EXPRESS model entities.

Each subsystem has an intro man page which explains more detail about the functionality available in the subsystem.

ACIS data needs to be accessed in two different scenarios. The first is where the user reads or writes using the ACIS SAT (Save As Text) file format. This format was developed by Spatial specifically for the storage of ACIS data. The file format is platform independent and is supported through at least one level of major revisioning (e.g. ACIS 7.0 can read and write files based on ACIS 6.0 through 6.3). This scenario works well for external translators. That is, translators which are not linked directly into the main CAD/CAM/CAE system.

The second scenario of accessing ACIS data is directly through the ACIS entity classes. The is eliminates the need to store an intermediate SAT file, but requires that the translator be linked in with the application. The ACIS Interface supports both methods. The LPIR and LPIW subsystems are the only subsystems which need to be aware of which scenario, since all other subsystems are based on the PDElib ACIS EXPRESS model instead of an external file or ACIS class definition.

# ACIS EXPRESS MODEL (lint.exp)

ACIS data within PDElib is handled using the standard mda (model data access) entity structure (see mda_intro). The entities are defined using EXPRESS with data structures that are as close to ACIS data structures as possible. Certain entities were merged together to reduce entity access overhead while preserving the data representation. There is no interpretation or conversion that takes places in terms of geometric content of the data.

# CREATING A LINT MODEL

To create an LINT model, the following code sequence is used:

    #include "lint_Interface.h"
    #include "lpir_Interface.h"
    #include "lpiw_Interface.h"
    #include "lmap_Interface.h"
    #include "mda_Interface.h"
    MDA_MODEL_INFO model_info;
    int acis_model;
          .
    pdx_Initialize (PDX_NOOPT);
    lint_Initialize(LINT_NOOPT);
          .
    mda_GetModelDefaults(MDA_NOOPT, &model_info);
    lint_InitModelInfo(LINT_NOOPT, &model_info);
          .
    /* Other model_info fields set */
          .
    mda_AllocateModel(MDA_NOOPT, &model_info, &acis_model);

The model is now ready to have ACIS entities added. The model can be populated with the contents of a SAT file by calling lpir_Read or by accessing the ACIS/API directly by calling lpir_ProcessBody.

# ATTRIBUTES

Attributes are handled by the application. A hook to an application function is provided in both the LPIR and LPIW subsytems. Please see the ACIS (LINT) FAQ for more information on how to handle attributes.

# TOLERANCES

The Tolerances used by the LINT subsystem can be accessed through the mda_SetTol, mda_SetTol2, mda_GetTo, and mda_GetTol2 functions. The following are the tolerance names, descriptions and default values used by the LINT subsystem:

Tolerance Name | Description | Default Value
MODEL_SPACE_POINT_COIN_TOL | Distance in which two model | 1.0e-6
| space points are considered
| the same.
ZERO_TOL | Less than this is considered | 1.0e-13
| zero.
ANGLE_TOL | Two angle within this value | 1.0e-10
| are considered the same.
PARM_SPACE_PNT_TOL | Distance in which two parm | 1.0e-14
| space points are considered
| the same.

# SPECIAL CONSIDERATIONS

In order to compile or link with the LINT subsystem, the following are required:

1)

ACIS libraries and include files must be available.

2)

The appropriate C and C++ compilers must be available.