8.0 HOOPS Exchange for Parasolid developers
HOOPS Exchange includes a connector to Parasolid which allows Parasolid developers to easily import CAD data into an active Parasolid session. If the source data is Parasolid-based (NX, Solid Edge, or SolidWorks), then the data is imported untouched. This means you can assume the quality of the data will be exactly the same as what you would get within SolidWorks, Solid Edge, or NX. If the data originates from a non-Parasolid system (such as Catia, Creo, or STEP, etc...), then our connector leverages Parasolid and optionally PS/BodyShop to ensure that the models are imported with the highest quality. Connections between the Parasolid model and additional data such as PMI, assembly structure, and meta-data are maintained in a mapping table.
The APIs for using the Parasolid connector are A3DAsmModelFileTranslateToPkParts(...) and A3DAsmRepresentationItemToPkParts(...). In both cases, everything which can be exported to the Parasolid session is transferred, and we can provide a map (A3DMiscPKMapper) to keep the bi-directional link between the PRC data and the resulting PK_ENTITY...
- A3DAsmProductOccurrence <-> PK_ASSEMBLY
- A3DAsmRepresentationItem <-> PK_BODY
- A3DTopoItemFace <-> PK_FACE
...etc. This works even if faces or edges are sewn or merged in the bridge. In a "full integration", parts are transferred one by one, and the whole assembly structure is transferred into customer scene graph, allowing him to properly manage visibilities, views, and the additional meta-data.

Screenshot of a Parasolid-based application showing an imported CatiaV5 model with the semantic PMI maintained
The loading options in A3DRWParamsTranslateToPkPartsData can have a significant impact on performance and model quality, so each is reviewed below.
Field | Description |
---|---|
A3DETranslateToPkPartsHealing::m_eHealing | Enum to control the healing. Healing controls adjustment of topological tolerances, removing geometric discontinuities, eliminating slicer faces, etc. This option can be enabled, disabled, or enabled only for non-Parasolid files. |
A3DETranslateToPkPartsAccurate::m_eComputeAccurateEdges | Enum to control accurate edge computation. This option can be enabled, disabled, or enabled only for non-Parasolid files. |
m_bDisjoinIfFaceFaceError | If TRUE, bodies with face-face error will be disjoined. This means that when errors are detected, the problematic faces are isolated from the rest of the model. The faces are considered disjoined only in the case of PK_FACE_state_bad_face_face_c errors: self-intersecting bodies. |
m_bSew | Controls whether sewing will be enabled. |
m_dSewingTolerance | Tolerance for sewing algorithm. |
m_eSimplifyGeometry | Simplifies geometry and topology by converting curve data to corresponding analytic forms (for example, cones, planes, or spheres) wherever possible. This option can be enabled, disabled, or enabled only for non-Parasolid files. |
m_eMergeEntities | Removes redundant edges and surfaces for a smaller memory footprint and improved performance. This option can be enabled, disabled, or enabled only for non-Parasolid files. |
m_pcPSBodyShopPath | Path to PSBodyshop DLL. If not NULL, PSBodyshop will be used to improve the export quality for non-Parasolid models. What this means is that more entities are approximated as analytics and more entities are merged. |
The following code snippet demonstrates how to use the A3DAsmModelFileTranslateToPkParts to load a model into a Parasolid session:
For a complete working example, see the "TranslateToPkParts" code sample in the HOOPS Exchange package. To use this functionality, you must include hepb.dll when you distribute your application on Windows platforms.