SUBSYSTEM OVERVIEW

E3MP Mapping (D3MP) Subsystem

The E3MP subsystem provides mapping functions for manipulating DXF 3D entities. AutoCAD R13 and newer support 3D entities in the form of encrypted ACIS data embedded in DXF/DWG. The E3MP subsystem is responsible for mapping DXF 3D entities to/from ACIS entities. This subsytem fully supports conversion to/from DXF format. It also supports converting DWG 3D entities to ACIS. Conversion of 3D entities to DWG is not supported though so the application must output to DXF format in order to get valid data. The application must also specify outputting to DXF R13 or newer. This is because 3D entities were unsupported before R13. This may be easily done with a call to dxfi_SetFileVersion. See the sample driver gtod3.cxx and the man page for dxfi_SetFileVersion for more information on this subject. In order to convert DXF 3D entities to GDX entities the following must be done. Convert DXF 3D entites to ACIS entities using the mappings provided in this subsystem. Then convert the resulting ACIS entities to GDX entities using the mappings provided in the LMAP subsystem. In order to convert GDX solid entities to DXF 3D entities the following must be done. Convert GDX solid entities to ACIS entites using the mappings provided in the LMAP subsystem. Then Convert the resulting ACIS entities to DXF 3D entities using the mappings provided in this subsystem.

GENERAL CONCEPTS

Mappings are defined in the e3mp.mdf file. This file contains the relationship between the defined mappings and the functions in this subsystem. Please refer to the map_intro man page for general information on how to setup mapping tables and enable mappings. Please refer to the lmap_intro man page for more specific information about mapping ACIS entities to/from GDX entities. Refer to the e3mp_mappings man page for information about the mappings available in this subsystem.

USAGE

The general method for converting DXF 3D entities to/from GDX entities will now be described. There is an extra level of indirection in this subsystem than in PDElib in general as shown below:

GENERAL PDElib

Input entity--xmap-->GDX entity(s)

or GDX entity--xmap-->Target entity(s)

E3MP

DXF 3D entitiy--e3mp-->ACIS Body(s)--lmap-->GDX Solid(s)

or GDX Solid--lmap-->ACIS Body(s)--e3mp-->DXF 3D entity(s)

The sample drivers demonstate methods for performing these conversions. The sample driver provided for dxf to gdx conversion is d3tog.cxx. The sample driver provided for gdx to dxf conversion is gtod3.cxx. Specifically to convert from DXF 3D entities to GDX entities the following may be done.

1) Initialize PDElib includeing the dxfi, e3mp, and lint subsystems
2) Create lint, dxfi, and gdx models
3) Define and enable the mappings into a mapping table.  There will 
   be three types of mappings. a)direct dxf -> gdx mappings b)dxf 
   3d -> acis mappings (this subsystem) c)acis -> gdx mappings 
   (lmap subsystem)
4) Parse the input dxf/dwg file containing 2D and/or 3D data
5) Make a list of the independant entities in the DXF model
6) Dispatch the list
7) Terminate PDElib

If the proper mappings are enabled this will convert DXF 2D entities directly to GDX and DXF 3D entities to GDX via ACIS entities.

To convert from GDX Solid entities to DXF 3D entities the following may be done.

1) Initialize PDElib includeing the dxfi, e3mp, and lint 
   subsystems
2) Create lint, dxfi, and gdx models
3) Define and enable the mappings into mapping tables.  There 
   will be three types of mappings. 
   a)direct gdx -> dxf mappings 
   b) gdx solid -> acis mappings (lmap subsystem) 
   c) acis -> dxf 3d mappings (this subsystem)
   There must be separate mapping tables for gdx->dxf mappings 
   and gdx->acis/acis->dxf mappings because of redundancy in 
   the mappings available
4) Parse the input gdx file containing gdx solids and gdx data 
   which is supported by the dmap subsystem 
5) Set the ACIS version according to what version of DXF/DWG 
   is the eventual target.  For r13 and r14 the acis version should 
   be 1.6; for AutoCAD 2000 the acis version should be 4.0.  This 
   is done using the function lpiw_SetACISVersion
6) Create a list of independent non-solid entities in the gdx 
   model
7) Create a list of solid entities in the gdx model
8) Dispatch the non-solid list with the gdx->dxf table
9) Dispatch the solid list with the gdx->lint->dxf table
10) Terminate PDElib

If the proper mappings are enabled this will convert GDX 2D and 3D date to DXF

The sample mapping files demonstrate the mappings that must be enabled for this to work properly.