SUBSYSTEM OVERVIEW
IGES Project (IPRJ) Subsystem
The IPRJ subsystem provides the ability to project IGES entities from a specified IGES drawing or view entity into the specified model. Currently only the 404 form 0 and the 410 form 0 are supported. The projection of an IGES drawing entity will project the drawing's model space geometry and drawing space entities through the drawing's associated views into the specified model. The projection of the IGES view entity will project and clip all IGES model space geometry visible in the view to the destination model. The destination model does not have to be empty, but the units between the model that MDA_PTR is defined in and the destination model are assumed to the same.
ENTITY BINDINGS
The subsystem can be called on an entity level. The main interface bindings are:
PDX_MSGT iprj_Project404( long option,
IEVM_VAL_RESULTS *ievm_val_results,
MDA_PTR db_404, int dst_model,
double origin[2], void *results)
PDX_MSGT iprj_Project410( long option,
IEVM_VAL_RESULTS *ievm_val_results,
MDA_PTR db_410, int dst_model,
double origin[2], void *results)
The following options may be used for the iprj_Project404 interface:
Create a boundary around the drawing by using the 406:16 property attached to the drawing entity.
Represent the view clipping box with dashed lines.
The following option may be used for the iprj_Project410 interface:
Represent the view clipping box with dashed lines.
The IEVM_VAL_RESULTS structure is the structure that is returned from entity validation (IEVM), this will allow only valid entities to be projected to a drawing or view. The MDA_PTR pointer will be either a drawing or view db_ptr. The dst_model model is an allocated model that the projected model is to be placed. The destination model does not have to be empty, but the model space units are assumed to be the same. The origin array represents the new origin for the drawing. This is useful for projecting multiple drawings into one file. The results structure returned has not been implimented yet.
TOLERANCES
The IPRJ subsystem uses 4 tolerances: MODEL_SPACE_PNT_COIN_TOL, PNT_PROJ_TOL, ZERO_TOL and MODEL_LINEAR_APPROX_TOL. Note: MODEL_LINEAR_APPROX_TOL needs to be set in the model that is to be projected. (see gdx_InitTolerances, iprj_intro)
ENTITY MAPPINGS
During the projection of the IGES drawing or view it maybe necessary to create extra entities with different types and forms because of the entity's orientation in a specific view. For instance, if a circle was to be displayed in three different view, such as a Top, Front and Isometric view, and the Top view defines the circle, the Front view would contain a line and the Isometric view would contain an ellipse. The resulting model would contain three IGES entities from the one that originally existed in the IGES file. The list below contains the mapping of the IGES entities.
| Entity | Support |
| – | |
| 100 | Mapped to a 100, 104:1 or 110 |
| 102 | Mapped to a 106:11 |
| 104 | Mapped to a 104, 106:11 or 110 |
| 106:1-3 | Mapped to a 106:11 |
| 106:11-13 | Mapped to a 106:11 |
| 106:20-21 | Mapped to a 106:11 |
| 106:31-38 | Mapped to a 106:11 |
| 106:40 | Direct Mapping |
| 106:63 | Mapped to a 106:11 |
| 108:-1 | Mapped to a 106:11 |
| 108:0 | Unsupported, Unless Referenced by view |
| 108:1 | Mapped to a 106:11 |
| 110 | Note: Edge on view not output |
| 112 | Mapped to a 106:11 |
| 114 | Mapped to a 106:11 |
| 116 | Direct Mapping |
| 118 | Mapped to a 106:11 |
| 120 | Mapped to a 106:11 |
| 122 | Mapped to a 106:11 |
| 125 | Mapped to a 106:11 |
| 126 | Mapped to a 106:11 |
| 128 | Mapped to a 106:11 |
| 130 | Mapped to a 106:11 |
| 132 | Mapped to a 106:11 |
| 140 | Mapped to a 106:11 |
| 141 | Mapped to a 106:11 |
| 142 | Mapped to a 106:11 |
| 143 | Mapped to a 106:11 |
| 144 | Mapped to a 106:11 |
| 150 | Unsupported |
| 152 | Unsupported |
| 154 | Unsupported |
| 156 | Unsupported |
| 158 | Unsupported |
| 160 | Unsupported |
| 162 | Unsupported |
| 164 | Unsupported |
| 168 | Unsupported |
| 180 | Unsupported |
| 182 | Unsupported |
| 184 | Unsupported |
| 186 | Unsupported |
| 190 | Unsupported |
| 192 | Unsupported |
| 194 | Unsupported |
| 196 | Unsupported |
| 198 | Unsupported |
| Entity | Support |
| – | |
| 202 | Direct Mapping |
| 204 | Unsupported |
| 206 | Direct Mapping |
| 208 | Direct Mapping |
| 210 | Direct Mapping |
| 212 | Direct Mapping |
| 214 | Direct Mapping |
| 216 | Direct Mapping |
| 218 | Direct Mapping |
| 220 | Direct Mapping |
| 222 | Direct Mapping |
| 228 | Direct Mapping |
| 230 | Mapped to a 106:11 |
| 302 | Unsupported |
| 304 | Informational only |
| 308 | Associated entities written out |
| 310 | Unsupported |
| 312 | Mapped to a 212 |
| 316 | Unsupported |
| 320 | Associated entities written out |
| 322 | Unsupported |
| 402:1 | Group output, entities mapped |
| 402:2 | Unsupported |
| 402:3-4 | Direct Mapping |
| 402:5-6 | Unsupported |
| 402:7 | Group output, entities mapped |
| 402:8-13 | Unsupported |
| 402:14-18 | Unsupported |
| 402:19-21 | Unsupported |
| 404:0 | Informational only |
| 404:1 | Unsupported |
| 406:1-14 | Unsupported |
| 406:15-17 | Informational only |
| 406:18-31 | Unsupported |
| 406:5556 | Informational only |
| 406:5557 | Informational onl |
| 408 | Associated entities written out |
| 410 | Informational only |
| 412 | Associated entities written out |
| 414 | Associated entities written out |
| Entity | Support |
| – | |
| 416 | Unsupported |
| 418 | Unsupported |
| 420 | Unsupported |
| 422 | Unsupported |
| 430 | Unsupported |
| 502 | Unsupported |
| 504 | Unsupported |
| 508 | Unsupported |
| 510 | Unsupported |
| 514 | Unsupported |