# Synopsis

PDX_MSGT lpiw_Write2(long option, char *acis_filename, int lint_model, ENTITY_LIST *&passed_ent_list, LPIW_ENT_FUNC *func, char *product_id)

# Purpose

Format the entities in the ACIS model into a multi bodied ACIS file.

# Description

This module is the user entry point to write out an ACIS save file. This will doing the following:

•

Opens the acis_filename for write.

•

Starts the ACIS modeller

•

Sets the ACIS version

•

Sets the ACIS tolerances based on the lint_model MODEL_SPACE_PNT_TOL

•

Sets the millimeters per model unit

•

Traverses the lint_model calling the function lpiw__CreatEntityList for each entity.

•

Cycles the lpiw__EntityList calling the function lpiw__ProcessBody to process the ACIS_BODIES to ACIS.

•

Calls the ACIS function api_save_entity_list with the ACIS BODY(s) on the save list.

The passed_ent_list argument is used if the passed func argument needs access to the list of entities already processed, or to add more ACIS entities the list, such as during assembly processing, when bodies are copied and rotated and translated, and have to be added to the entity list. This list is used when the ACIS file is formatted using the function api_save_entity_list.

The func argument specifies a function to be called for each entity as it is processed and may be set to NULL. 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. The function should return a value of MDA_NOERR. Changes to the acis_entity will be made permenant.

# Input

## option

### LPIW_NO_PCURVES

Not create pcurves for the ACIS model.

### LPIW_TRIM_NURB_SURF

Upon input it trims a nurb surface face.

### LPIW_SAVE_AS_BINARY

Save ACIS File as a Binary file

### LPIW_SET_ENTITY_COUNT

Set the entity count field in the header of the output file

### LPIW_DO_NOT_WRITE_FILE

When passing in an entity list, do not write out the resulting ACIS file to disk

### LPIW_MODELLER_RUNNING

Do not start/stop the acis modeller. It is already running from the calling application

## acis_filename

Pointer to a character that is name of ACIS file to create

## lint_model

ACIS model number

## passed_ent_list

Reference to the list of ACIS entities.

## func

Function to be invoked for each entity or NULL

## product_id

Product ID to be put into acis file info

# Output

## none

# Return

          LPIW_NOERR
          .fi