# Synopsis

PDX_MSGT lpir_ProcessBody(long option, BODY *body_ent, int lint_model, MDA_PTR *lint_body_ptr, LPIR_ENT_FUNC *func)

# Purpose

Process an ACIS BODY to a MDA ACIS_BODY

# Description

This module will first do the following:

•

Copy the ACIS BODY, if the LPIR_COPY_BODY is set. The new ACIS BODY will then be processed.

•

Call the function: api_flatten_body. This will get rid of the subshells in the body.

•

Call the function: api_split_periodic_faces. This will split face that cross parametric seams of surfaces.

•

If the option: LPIR_APPLY_TRANS this function will apply the ACIS TRANSFORM to the ACIS BODY.

•

If the option: LPIR_CONV_SPL is set this function will do the following: .RS 3 .IP Call the function: api_convert_to_spline. This will convert all analytical faces to spline faces. .IP Call the function: trim_body_faces. This will trim the spline faces. .IP If the option: LPIR_CHECK_BODY is set the function will then call: api_check_entity. This will perform a ACIS check on the current body. .LP .RE

•

If the option: LPIR_CONV_SPL is not set this function will do the following: .RS 3 .IP If the option: LPIR_CHECK_BODY is set the function will then call: api_check_entity. This will perform a ACIS check on the current body. .LP .RE

This routine will then cycle the ACIS LUMP and or ACIS WIRE in the ACIS BODY and call lpir__ProcessLumpList or lpir__ProcessWireList accordingly. It will assemble a MDA ACIS_BODY in the ACIS MDA.

# Input

## option

### LPIR_COPY_BODY

Copies the ACIS BODY to a new ACIS BODY. Use this option if you don't want the ACIS BODY to change. This option will cause the new ACIS BODY to be deleted.

### LPIR_CONV_SPL

Convert ACIS surfaces to splines before processing.

### LPIR_CHECK_BODY

Check body after call to api_split_periodic_faces, and api_convert_to_splines if the above option was also set.

### LPIR_TRIM_NURB_SURF

Trim the nurb surface created when analyticals can not be handled by GDX. Only valid when LPIR_CONV_SPL is not set.

### LPIR_NO_WIRE

Do not process wire bodies.

### LPIR_APPLY_TRANS

Apply the transform to the ACIS BODY.

### LPIR_NO_PCURVES

Do not map any pcurve from ACIS.

### LPIR_NO_SPLIT_PERIODICS

Do not split the ACIS faces at periodics.

## body_ent

Pointer to an ACIS BODY

## lint_model

The ACIS MDA model to create the ACIS_BODY into.

## func

Function to be called with each ACIS ENTITY type after it is read (or NULL if no function is to be called). If specified, this function must have declared as:

PDX_MSGT foo (MDA_PTR db_ptr, void *entity, ENTITY *acis_entity)

When called, the entity with database pointer db_ptr will be locked at the address specified by entity. Any changes made to the entity will be permanent. The function should return a value of MDA_NOERR.

# Output

## lint_body_ptr

Pointer to a MDA_PTR to store the new MDA ACIS_BODY

# Return

          LPIR_NOERR
          Low level error return
          .fi