###################
HOOPS Exchange 2023
###################

.. admonition:: Welcome to our new documentation
   
   We are pleased to announce the release of **our new documentation!**

   It comes with a **new look-and-feel and a better navigation interface**.
   The search feature is *faster* now.
   And in the next releases, we will be adding more fine-grained controls such as whole-word match and fuzzy search.
   More to come!


**************
Format Updates
**************

+-----------+---------------------+
| *Format*  | *Updated Version*   |
+===========+=====================+
| Revit     | 2023                |
+-----------+---------------------+

Due to the actual release dates from the CAD editors, several format updates will be delivered in upcoming HOOPS Exchange updates:

* HOOPS Exchange 2023 Update 1 (targeted 2023, Feb. 14th)

  * SolidWorks 2023
  * Solid Edge 2023
  * Parasolid 35.0
    
* HOOPS Exchange 2023 Update 2 (targeted 2023, Mar. 14th)

  * NX 2212

.. rubric:: See also

* :doc:`/start/supported-formats`

**********
New Format
**********

As a first step in the development of a new Microstation DGN format, HOOPS Exchange 2023 is exposing an alpha version of this upcoming reader of Microstation DGN.

As an alpha version, this Microstation DGN Reader is having a very limited scope and is meant for internal testing only:

* Support of DGN V7 files, 3D only
* Limited support of entities.


****************
Platform Changes
****************

.. rubric:: Migration to Visual Studio 2019

On Windows, HOOPS Exchange migrated its compiler to Visual Studio 2019 (previously 2015).
Following `Microsoft's Documentation <https://learn.microsoft.com/en-us/cpp/porting/binary-compat-2015-2017?view=msvc-170>`__ on binary compatibility, this change implies an update to the required MSVC redistributables.

HOOPS Exchange being an explicitly shared library, the impact occurs at runtime.
Any application running HOOPS Exchange must have at least `Visual Studio 2019 redistributable <https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170>`__.

Visual Studio solution and project files for sample code have been upgraded to Visual Studio 2019 as well.
Thus, compiling our samples requires Visual Studio 2019.

.. note:: 

   Starting in Windows 10 version 2004 (build 19041), the ``printf`` family of functions prints exactly representable floating point numbers according to the IEEE 754 rules for rounding.
   This change affects programs built using Visual Studio 2019 version 16.2 and later.
   To preserve the previous change, our code as well as the samples are linked against ``legacy_stdio_float_rounding.obj``.
   See `MSVC Link options <https://learn.microsoft.com/en-us/cpp/c-runtime-library/link-options?view=msvc-170>`__ for more.

.. rubric:: See also

* :doc:`/start/supported-platforms`

*******************
Format Improvements
*******************

----
Creo
----

.. rubric:: Improved Flexible Element Support

CREO components can be defined as *flexible* elements in the context of an assembly.
A flexible component may have different characteristics to fit the assembly position (e.g. a spring may have a particular length as well as position).
Flexible elements were partially supported in previous versions of HOOPS Exchange and the 2023 version is introducing several enhancements to improve the model fidelity by supporting more definition cases and positions.

Note that flexible elements are read as B-rep models, and that the CREO version must be 4 or above.

.. rubric:: Support of External Files for CREO Assemblies (Context: CREO Assembly That References Native Files From Other CAD Formats, Like CV5, STEP)

CAD designers have the ability to reference external native CAD components within an assembly to help them design their product.
The CAD formats supported by CREO as external components are CATIA V5, Inventor, NX,  SolidWorks.
When referenced by the assembly, these external components are converter into a .CREO file.

HOOPS Exchange 2023 is now supporting these external components to improve the reading process and make all the assembly components accessible afterwards.

--------
Inventor
--------

.. rubric:: Support of Assemblies Suppressed Parts

Suppressing components from an assembly is a common way of designing assemblies.
In previous HOOPS Exchange versions, the suppressed components were read, leading to extra-components being loaded and displayed.

By supporting this information, the reading of Inventor assemblies is more accurate.

.. rubric:: Support of Coordinates Systems

The coordinates systems that are defined in parts can be used to help the design and also to define references that are meant to be used in downstream applications, such as manufacturing for example.
Retrieving the coordinates systems will help downstream applications to directly benefit from already existing information, without having to recreate them manually.

.. rubric:: Support of Physical Materials

The physical material information that HOOPS Exchange is now supporting (material name, material density, Poisson ratio, Young modulus)  is helping applications like Analysis, Manufacturing… to directly access to these key information from the native CAD part, without having to recreate them manually.

----
glTF
----

.. rubric:: Support of New Extensions

We now support the following glTF extensions:

* ``Clearcoat``
* ``Material_specular``
* ``Specular_Glossiness``

----------
SolidWorks
----------

.. rubric:: Support of Decals (Simple cases)

The support of the visual models' appearances (material, textures, decals) is meant for high fidelity rendering and full-color printing of parts.
This will serve PLM/Visualization as well as Manufacturing as a Service / 3D Printing applications. 
HOOPS Exchange 2023 is introducing the support of SolidWorks Decals as a Prototype.

Simple decals are supported: Decal defined as a “Label” projection, if not overlapping multiple surfaces. Position and scale is also supported.

Since this is a first version, there are some limitations that are currently under development.

.. rubric:: Support of K-Factors for Sub-Nodes

Accessing the K-Factor from the native CAD model is helping the sheet metal software to generate unfolded part from the designed model, and generate cutting and bending procedure and machine programs.

The K-Factor is a value that is used to calculate material elongation that is happening when a part is folded or unfolded and therefore dimensional variations between the designed model and the unfolded one.

K-factor was already supported for the native SolidWorks parts and this improvement is about supporting more possible cases regarding how the K-factor can be defined in SolidWorks.


******************
Other Improvements
******************

.. rubric:: Ability to Cancel Hidden Line Removal Calculation

The calculation of “Hidden lines removal” for complex models can take a significant time. 

The ability to cancel this function will help users that don’t want to wait the result.



