• Technical Overview
  • Release Notes
  • Reference Manual
  • HOOPS/3dAF
TechSoft3d

HOOPS APEX OEM Integration

1.0 Using the APEX OEM HIO Component

  • 1.1 Rebuilding the HIO Component

2.0 Supported Entities

3.0 Integrating Directly with Adobe 3D OEM

4.0 Platform Support

5.0 Required Libraries


1.0 Using the APEX OEM HIO Component

The APEX OEM platform provides you with both import and export capabilities. Firstly, it allows you to export PRC data which is the preferred 3D content supported by Adobe. Secondly, it allows you to use the powerful data translation capabilities of Acrobat Pro Extended to bring over 20 MCAD formats into your application. A full list of the supported formats is detailed here. From a import perspective, our integration uses the SDK to build up a HOOPS scene graph which includes all the assembly, visualisation and pmi information associated with a file.

To use the HOOPS/HIO component for APEX OEM, please follow the steps below:

  1. Create a hio_plugins directory in your application's working directory.
  2. Copy the hio_prc.hio file found in <hoops>/bin/<platform>/hio_plugins/hio_prc to the hio_plugins directory created in the previous step.
  3. Run your application.

During start-up, when HOOPS/MVO finds the APEX OEM HIO component in your application's path, it will perform the following steps:

  1. Determine the location of your Acrobat Pro Extended installation and load the necessary APEX OEM libraries.
  2. Create the appropriate input and output handler.
  3. Register this handler and the associated file extensions to the HIOManager.

Once the APEX OEM HIO component is successfully loaded, your application will be able export PRC data and import any of the files supported by Acrobat Pro Extended without having to recompile HOOPS. To utilize the extensive Acrobat 3D API services, you must compile against the Acrobat SDK directly and follow the steps described in 3.0 Integrating Directly with APEX OEM.

Note, the Adobe 3D OEM HIO component tries to add the root directory of the Acrobat Pro Extended directory to the path. However, on certain versions of Windows, this may not work. Thus, it is advisable that you add the root of your Acrobat Pro Extended install to your path.

1.1 Rebuilding the HIO Component

To rebuild the APEX OEM HIO component, you must have the Acrobat SDK installed on your system. Define an environment variable A3DPRC_SDK_DIR and set it equal to <Acrobat_SDK>/<Version>/PluginSupport/Headers/3D. Then open the hio_prc_vc<version>.vcproj project located in the <hoops>/Dev_Tools/hoops_hio/hio_prc/source. Once the project is built against the correct libraries, an .hio file will be created. Note that you may face some obstacles building against a different version of Acrobat if interfaces are not compatible with the original libraries that the HIO component was built against.

2.0 Supported Files and Data Types

PRC is primarily a 3D format and so the PRC export has the current following restrictions:

  • All analytics (Polycylinders, NURBS Surfaces, Spheres, Ellipses, Circles) will be turned into shells via Compute_Shell_From_Geometry. Furthermore, all curves will be turned into polylines.
  • Color interpolation is supported via textures. However, color interpolation will always be turned on with such models.
  • Images and simple diffuse textures are supported. However, any texture that has an automatic texture map will appear untextured. Environment maps are supported but secondary diffuse textures and bump maps are not.
  • Text and subwindows are not currently supported.
  • Heuristics and Rendering Options are not currently supported. This means that "mask transform" and "screen range" settings are ignored.

The APEX OEM supports the import of over 20 different file formats. A full list of the supported formats is available here. In each case, we support the full capabilities of APEX OEM with the main exception being that we do not access the brep information which is available. For developers who are interested in accessing the brep definition, they should contact the Tech Soft Support Team.

3.0 Integrating Directly with APEX OEM

If you want to use the full range of services available in the Acrobat 3D API, the APEX OEM HIO Component may not be suitable. Instead, you should integrate directly with the Acrobat SDK. First, please ensure you review the APEX OEM Platform documentation so that you understand how the SDK is integrated into your application. Once you have done that, you can use our integration as the basis upon which to extend the APEX OEM API capabilities within your application. Note that you must have the Acrobat SDK installed on your system. To get our integration working within your application:

  1. Define an environment variable A3DPRC_SDK_DIR which points to <ACROBAT_SDK>/<Version>/PluginSupport/Headers/3D/
  2. Add files HIOUtilityPRC.h/.cpp and HPRCHelper.h/.cpp to your project. These files are located in the Dev_Tools/hoops_hio/hio_prc/source directory of your HOOPS installation.
  3. Add following directory paths to your additional include folders' list:
    • $(HOOPS_INSTALL_DIR)/Dev_Tools/hoops_3dgs/source
    • $(HOOPS_INSTALL_DIR)/Dev_Tools/hoops_mvo/source
    • $(HOOPS_INSTALL_DIR)/Dev_Tools/utility/source
    • $(A3DPRC_SDK_DIR)
  4. Add 'HIO_PRC' in your preprocessor defines.
  5. Add 'hoops_utilsstatd_md.lib hoops_mvo_mgkd.lib hoopsd.lib' as additional dependencies
  6. Add following directory paths to your additional library folders' list:
    • $(HOOPS_INSTALL_DIR)/Dev_Tools/hoops_3dgs/lib/nt_i386_vc80
    • $(HOOPS_INSTALL_DIR)/Dev_Tools/hoops_mvo/lib/nt_i386_vc80
    • $(HOOPS_INSTALL_DIR)/Dev_Tools/utility/lib/nt_i386_vc80

The HIO component tries to automatically set the path to include the root directory of the Acrobat Pro Extended install. However, on certain versions of Windows this does not work and so it is advisable that you add the root of your Acrobat Pro Extended install to your path.

Once you have completed the above steps, you do not need to rely on the APEX OEM HIO component anymore. Please remove the associated .hio file from the hio_plugins directory in your application's working directory. Note that in a direct integration, you must register HIOUtilityPRC via HIOManager::RegisterInputHandler so that the HBaseModel::Read function can register the formats supported by Adobe 3D OEM. For more information on HOOPS/MVO file input/output architecture, please see section 4.0 File Input/Output and the I/O Manager of the HOOPS/MVO Programming Guide.

You should now be able to read any of the formats supported by the APEX OEM Platform into your application with code similar to this:

// Code for reading a Catia Assembly File
HIOUtilityPRC prc_reader;
HInputHandlerOptions prc_opt;
prc_opt.m_pHBaseView = view;
HFileInputResult result = prc_reader.FileInputByKey("c:\\temp\\myFile.CATProduct", &prc_opt);

// Code for reading a Catia Assembly File
HIOUtilityPRC prc_writer;
HOutputHandlerOptions prc_opt;
prc_opt.m_pHBaseView = view;
HFileOutputResult result = prc_reader.FileOutputByKey("c:\\temp\\myFile.prc", m_pHView->GetModelKey(), &prc_opt);

4.0 Platform Support

At the time of writing, the APEX OEM HIO component is confined to the Windows platform for Microsoft Visual Studio 8 and 9.

5.0 Required Libraries

For Release 17.1, the APEX OEM HIO component requires a valid installation of Acrobat 9.1 Pro Extended.