HOOPS Exchange 2018 SP2
Format Updates
Format |
Updated Version |
---|---|
Creo |
5 |
New Format Support (Summary)
Format |
Import/Export |
Platforms |
---|---|---|
Import Only |
Windows Only |
|
Import Only |
Windows/Linux/Android |
|
Import Only |
Windows Only |
|
Import Only |
Windows/Linux |
|
Import Only |
Windows/Linux/Mac |
|
Import Only |
Windows 64 bits only |
|
Import Only |
Windows Only |
New Format Details
The import of OBJ, COLLADA and 3DS files is now officially supported, having moved from the vault to the main HOOPS Exchange product release. We encourage you to try these file formats and give us your feedback.
glTF
The glTF format (version 2.0 only) is now supported for import. It includes the support for Texture Mapping.
kA3DTextureMappingMetallness
kA3DTextureMappingNormal
kA3DTextureMappingOcclusion
kA3DTextureMappingRoughness
Plus combinations of above. See
A3DGraphMaterialData
Documentation for details.
Autodesk Revit
Autodesk Revit import is now supported (Revit 2015 to 2018 inclusive, Windows 64bits Only). This is a first pre-release version for testing and feedback, released complete with some caveats and known issues. The main purpose of this first release is to allow the access and viewing of the contents of Revit files and understanding of structure. (Levels, categories and views).
The functionality for this first pre-release and is as follows:
Import .rvt files and .rfa files
Import tessellated objects only, no B-Rep.
- Ability to sort and display objects by level then by categories inside each level (This is similar to the method available in IFC
files). Each level has a metadata TYPE = IFCBUILDINGSTOREY, again this is similar to IFC.
- Read the basic material (color, transparency) for tessellation
objects.
Read and import the 3D views (change visibility + set camera)
- The handling of visibility/graphics overridden by views (graphics
override per view is not handled)
Using layers to set category for each item.
Currently known issues:
- Visibilities overrides sometimes do not handle some sub-categories
correctly.
Wire coloring is disabled.
Drawing sheets are not supported.
- Some items may be located at the structure root instead of the
correct level.
Please send us your feedback and feature requests for Revit support in future releases.
AutoCAD DWF
The import of .DWF and .DWFx files is now available for Windows and Linux. It is currently limited to the reading of 3D objects only.
AutoCAD DWG DXF
The ability to import .dwg and .dxf files on the Android mobile platform is new for this release.
Enhancements (New Functionality)
Identifying Rigidly Connected Parts
HOOPS Exchange has added new functionality to identify components within a CAD assembly that are rigidly fixed to each other. This is valuable for helping to understand and reduce the complexity of assemblies when doing motion and kinematic analysis, reducing the number of possible moving components. This is achieved by looking for and reading the appropriate associated attribute stored in the CAD file. This attribute flags and identifies this condition, locking together certain parts.
There are 3 new functions:
A3DAsmGetFixedComponents()
– This gives a list of components with a locked position at a specific assembly level.A3DAsmGetFixedTogetherComponents()
– This gives a list of the components rigidly connected to each other.A3DAsmGetFlexibleComponents()
– Identifies which components are considered flexible.
Please note that this functionality is supported for CATIA, NX and SolidWorks files only at this release.
“Deep Copy” of a Product Occurrence
When editing the properties of an individual instance of a component in an assembly that has multiple instances of that component, the property will be changed for all instances of the product. The Deep Copy function will allow the associativity of a single instance to be removed (exploded) from its related instances, so that it can be treated and edited separately as if it were an individual and independent component.
A3DAsmProductOccurrenceDeepCopy()
is available to duplicate and
copy a selected product occurrence and all its associated data. (For
more details please see the A3DAsmProductOccurrenceDeepCopy()
“API
Reference”.)
Enhancements to Existing Functionality
Mass Property Calculation Improvements
Physical properties can now be computed on B-rep when it is available using the geometry of an A3DRiBrepModel. Additional properties (center of surface and inertia) are now calculated and available.
To accommodate this, the physical properties structure has been expanded with additional parameters. The surfacic gravity center and surfacic/volumic inertia matrix (relative to their respective center of gravity) are new additional return values available.
A new precision parameter is added as part of the control input determining how accurate (precise) the user wants the computation to be, and the ‘use geometry’ parameter allows the user to control whether tessellation or geometry should be used for the computation, when both are available.
This affects all three physical properties-related functions A3DComputePhysicalProperties, A3DComputeModelFilePhysicalProperties and A3DComputePolyBrepPhysicalProperties). When using default input parameters, their behavior remains consistent with the previous release, the only difference being the extra computed values.
SolidWorks
Datum entity visibility can be controlled by option A3DRWParamsSolidworksData.m_usDisplayVisibleDatum
.
Rhino
You can switch between colors or material with A3DRWParamsRhinoData.m_bForceRenderedModeColors
.
The default parameter sets to use materials.
JT
PMIs support has been improved with respect to the links in JT PMIs and
Geometry highlight, selecting PMI in an assembly
Element visibility in views
Exploded views
There has also been improvement of the PMI tessellation for some symbols/custom fonts.
Accurate Tessellation Improvements
When using the more accurate (water-tight) tessellation, on curved surfaces, many triangles are created of a similar size. Sometimes this is not desirable if the application requires the shape of the triangles to better match the shape of these curved faces and produce better visualization.
For accurate tessellation, there is a new option: A3DRWParamsTessellationData.m_bAccurateSurfaceCurvatures
This results in the face curvature controlling and making the triangle length and direction better match the shape of the faces, yielding better visual results and also reducing the number of triangles.
Improved Debugging
We’ve introduced a way to generate the list of calls to the API (See A3DCallbackAPITrace()
)
New Sample for Collision Detection
In the 2018 SP1 Release, we added support for collision detection. This release now provides a new example project for Collision Detection.
The sample reads an input CAD file and outputs collision status between representation items. The user may select which items are tested using their UUIDs and the output is available as a report file. Please see the example section or the Programming Guide for more details.
C API Changes
A number of changes have been made to the C Interface in order to make it compliant to C Language specifications. Though some of these changes may break code compatibility, they provide a safer version of the API:
- A3DSDKConvert.hxx and A3DSDKInternalConvert.hxx which define
A3DSDKHOOPSExchangeLoader, A3DImport and A3DExport are now only available when compiling C++.
- A3DSDK.h now defines two constants, A3D_TRUE (1), and A3D_FALSE (0)
which can be used to compare values of type A3DBool
- Calling
A3DSDKLoadLibrary()
was ambiguous when compiling with Microsoft Visual Studio. The function name is now a C Macro definitions which expands to:
A3DSDKLoadLibraryW if compiling with MSVC and UNICODE is set
A3DSDKLoadLibraryA otherwise
- Calling
The table below lists more specific changes made for the same purpose:
FILE |
API |
CHANGE |
---|---|---|
A3DCommonReadWrite.h |
A3DRWParamsExportXMLData |
m_bExportMetadata, m_bExportTransformations, m_bExportColorMaterial and m_bExportProductInformationByFormat now are of type A3DBool |
A3DPDFPublishSDK.h |
A3DPDFCheckPDFLibInitialization |
Changed reference type to pointer |
A3DSDKAdvancedTools.h |
A3DHLRCurveData |
m_bFirstFaceIsSection and m_bSecondFaceIsSection now are of type A3DBool |
A3DHLROptionsData |
Declare the structure as a typedef |
|
A3DSDKLoader.h |
A3DSDKLoadLibrary |
Remove default parameters |
All uses of bool are replaced with A3DBool and true/false are replaced with A3D_TRUE/A3D_FALSE respectively. |
||
A3DSDKMarkup.h |
A3DMkpViewFlagsGet |
Output parameter is a new struct of type A3DMkpViewFlagsData |
Function has been renamed to A3DMkpViewGetFlags |
||
A3DMkpRTFInit |
pRTFData is now set as A3DVoid** |
|
A3DMkpLinkForMarkupReferenceGet |
puiLinkedItemsSize and ppLinkedItems are now set as pointers instead of references |
|
A3DMkpLinkForAdditionalMarkupReferenceGet |
puiLinkedItemsSize and pppLinkedItems are now set as pointers instead of references |
|
A3DGlobalFontTextBoxGet |
pdLength and pdHeight are now set as A3DDouble* |
|
A3DGlobalFontTextBoxAndScaleGet |
pdLength, pdHeight and pdScale are now set as A3DDouble* |
|
A3DGlobalFontTextTessellationGet |
pdCharWidth is now set as A3DDouble* |
|
A3DSDKReadWrite.h |
A3DChainedBuffer |
Declare the structure as a typedef |
A3DCheckFileFormat |
rCadTypeWanted is now set as A3DEModellerType |
|
A3DAsmModelFileExportToPrcStream |
pcStream is now set as A3DUTF8Char** |
|
uLength is now set as A3DUns32* |
||
A3DSDKRepItems.h |
A3DRiCurveSupportGet |
ppLinkedItem is now set as A3DMiscMarkupLinkedItem** |
A3DRiPlaneSupportGet |
ppLinkedItem is now set as A3DMiscMarkupLinkedItem** |
Typo fixes
Two identifiers have been renamed:
m_pSingleAttributesData => m_asSingleAttributesData
EA3DMDDimensionSymbolSharpe => EA3DMDDimensionSymbolShape
You may change your code accordingly or run the script located at tools/he_2018_2_api_update.py to do it automatically.
Customer Issues Addressed
For this service pack release we have fixed over 75 issues.
Special Notes
The upcoming release will include changes to the compilation tools for Linux. For HOOPS Exchange 2019, the binaries will be compiled using CentOS 6 with devtoolset 6 (GCC 6: using the new ABI for libstdc++).