# SUBSYSTEM OVERVIEW

LGDX Interface (LINT) Subsystem

The LGDX subsystem is a low level subsystem in the LINT interface. The LGDX subsytem is responsible for converting MDA ACIS entities to/from MDA GDX entities.

# GENERAL CONCEPTS

This subsystem currently assumes the use of the MAP subsystem. All subordinate entities of a GDX/ACIS structure entity are passed to the mapping dispatcher to be processed. The calling function expects a resulting schema entity to return from the mapping. In other words, if the calling function is to create a GDX FACE from a ACIS FACE, the function expects GDX entities to return from the mapper dispatcher when it passes the subordinate ACIS entities of the ACIS FACE. Mappings, down to the lowest unstructured entity, must be enabled for each subordinated entity of the structured entity for the mapping to correctly complete.

# MAPPING EXAMPLE

To map a ACIS BODY to a IGES 143 the following mappings must be enabled:

    /* Topology Mappings ACIS -> GDX */
    "acis_body -> gdx"              /* No COMMIT, creates a GDX SOLID that
                                       will later get mapped to IGES */
    "acis_shell -> gdx_shell"       /* Must be COMMITTED at the GDX level*/
    "acis_face -> gdx_face"         /* Must be COMMITTED at the GDX level*/
    "acis_loop -> gdx_loop"         /* Must be COMMITTED at the GDX level*/
    "acis_edge -> gdx_edge"         /* Must be COMMITTED at the GDX level*/
    "acis_vertex -> gdx_vertex"     /* Must be COMMITTED at the GDX level*/
    /* Geometry Definition Mappings ACIS -> GDX */
    "acis_ellipse_def -> gdx_arc or gdx_conic"   /* Must be COMMITTED at the
                                                    GDX level*/
    "acis_straight_def -> gdx_polyline"          /* Must be COMMITTED at the
                                                    GDX level*/
    "acis_intcurve_def -> gdx_nurb_curve"        /* Must be COMMITTED at the
                                                    GDX level*/
    "acis_cone_def -> gdx_cylinder, gdx_cone or gdx_nurb_surf per face"
                                                 /* Must be COMMITTED at the
                                                    GDX level*/
    "acis_plane_def -> gdx_plane or gdx_nurb_surf per face"
                                                 /* Must be COMMITTED at the
                                                    GDX level*/
    "acis_sphere_def -> gdx_sphere or gdx_nurb_surf per face"
                                                 /* Must be COMMITTED at the
                                                    GDX level*/
    "acis_torus_def -> gdx_torus or gdx_nurb_surf per face"
                                                 /* Must be COMMITTED at the
                                                    GDX level*/
    "acis_spline_def -> gdx_nurb_surf"           /* Must be COMMITTED at the
                                                    GDX level*/
    /* Geometry Entity Mappings ACIS -> ACIS */
    "acis_torus_entity -> acis_torus_def"         /* No COMMIT */
    "acis_spline_entity -> acis_spline_def"       /* No COMMIT */
    "acis_sphere_entity -> acis_sphere_def"       /* No COMMIT */
    "acis_plane_entity -> acis_plane_def"         /* No COMMIT */
    "acis_cone_entity -> acis_cone_def"           /* No COMMIT */
    "acis_pcurve_entity -> acis_pcurve_def"       /* No COMMIT */
    "acis_ellipse_entity -> acis_ellipse_def"     /* No COMMIT */
    "acis_straight_entity -> acis_straight_def"   /* No COMMIT */
    "acis_intcurve_entity -> acis_intcurve_def"   /* No COMMIT */
    /* GDX -> IGES */
    "gdx_solid -> gdx_shell"                     /* No COMMIT */
    "gdx_shell -> gdx_face"                      /* No COMMIT */
    "gdx_face -> iges_143_0 or iges_144_0"       /* COMMIT at the IGES level,
                                                   mappings end here */