It is possible to specify several ProE/Creo specific options (in A3DRWParamsProEData) while importing such CAD files with the HOOPS Exchange API, including the following ones:
Table of Contents
- Family tables (m_eFamilyTables):
- Flexible components (m_bFlexCompUseGenericIfNoTess) :
- Boolean operations (m_bBoolOpUseGenericIfNoTess):
- Recommendations
Family tables (m_eFamilyTables):
A family table represents a component with a variable representation
For example a Screw can be part of a family table: that means for the same component, Creo has a variety of representations where the screw length and/or diameter change.
A component from a family table always has a generic representation (i.e. the default model), but the designer will usually use an element with specific parameters.
This is what it looks like in Creo:
A family table for screws
Generic representation 20mm
10mm variation
100mm variation
HOOPS Exchange supports of Family Tables depends on what data are available in the native Creo file.
Depending on the model, the representation of the family table components can be:
- Stored as a tessellated body.
- Stored in a Creo accelerator files (.xpr, .xas), provided with the model files by the model designer. BRep may be available.
- Not available (no tessellation, no accelerator file). In this case the generic representation is used by HOOPS Exchange to represent the component.
A family table import option impacts the behavior of HOOPS Exchange.
- A3DProEFamTabAcceleratorFileOnly: Only use accelerator files. If none are available then no tessellation nor generic parts will be loaded.
- A3DProEFamTabOrUseTessellation: Will try to use the accelerator files first when possible. otherwise will load the tessellation instead.
- A3DProEFamTabOrUseWireAndGeneric: If no accelerator files nor tessellation are available, will use generic/wire representation.
Further information regarding accelerator files and their generation from Creo software can be found on the official Creo documentation
Example
Creo import options used:
A3DProEFamTabAccelesratorFileOnly
Result:
If accelerator files are provided, the correct component is used
If no accelerator file is found, nothing is loaded
Creo import options used:
A3DProEFamTabOrUseTessellation
Result:
If accelerator files are provided, the correct component is loaded
If no accelerator file is available, the tessellated representation is displayed (if available)
If no accelerator file is available and no tessellation is stored, nothing is loaded
Creo import options used:
A3DProEFamTabOrUseWireAndGeneric
If no accelerator file is provided and no tessellation is stored, HOOPS Exchange fall back to the generic representation (tessellated)
Flexible components (m_bFlexCompUseGenericIfNoTess):
In Creo, a flexible is a part that can have several states, with a variety of dimensions, tolerances or materials. For example, a spring can be represented as a flexible component.
A flexible component in Creo
In HOOPS Exchange, flexible components are not fully supported. A flexible component can be loaded only in the state it was saved in Creo, and it depends on the data stored in the native file.
- If the tessellation of the flexible component is stored, it will be loaded by default
- The tessellation is the representation of the flexible component in the state it was saved in Creo.
- If no tessellation is available the setting m_bFlexCompUseGenericIfNoTess adapts HOOPS Exchange behavior:
- If the value is set to
true
a generic representation is loaded. - If the value is set to
false
, no representation is loaded. The component won’t be displayed.
- If the value is set to
Note: if the tessellation is stored in the file, m_bFlexCompUseGenericIfNoTess won’t have any effect.
Example
Situation:
Model saved in Creo
Result:
Situation
The tessellation is stored in the Creo file
Result:
Tessellated body corresponding to Creo
Situation
The tessellation is NOT stored in the Creo file
m_bFlexCompUseGenericIfNoTess is true
Result:
Tessellated body corresponding to the generic state. (no compression on the spring)
Situation
The tessellation is NOT stored in the Creo file
m_bFlexCompUseGenericIfNoTess is false
Result:
No body loaded
Boolean operations (m_bBoolOpUseGenericIfNoTess):
In CAD software, boolean operations are a way to define geometrical elements by performing unions or ,intersections or difference of 2 or more sub-elements.
For example, here is the result of a boolean intersection between a cube and a sphere:
Depending on the Creo version used, boolean operations may not be fully supported by HOOPS Exchange
- For older versions, only the tessellation generated by Creo will be loaded if available
- If no tessellation is available, the setting m_bBoolOpUseGenericIfNoTess adapts HOOPS Exchange behavior:
- If the value is set to
true
a generic representation is loaded. - If the value is set to
false
, no representation is loaded. The component won’t be displayed.
- If the value is set to
Note: if the Creo version used is too recent, or if the tessellation is stored in the file then m_bBoolOpUseGenericIfNoTess won’t have any effect.
Example
Situation
Model saved in CreoResult
Situation
The tessellation is stored in the Creo file
Result
Tessellated body corresponding to Creo
Situation
The tessellation is NOT stored in the Creo file
m_bBoolOpUseGenericIfNoTess is true
Result
Tessellated body corresponding to the generic state. (the base cube without cropped corners)
Situation
The tessellation is NOT stored in the Creo file
m_bBoolOpUseGenericIfNoTess is false
Result
No body loaded
Recommendations
- When a model has a defect in HOOPS Exchange, we recommend to resave the file in Creo, and if possible in a more recent version of Creo.
- We recommend trying to work as much as possible with models more recent than Creo 4 for the best results in HOOPS Exchange. If possible, resave the file in a recent version of Creo to upgrade the model.