:orphan:

#########
JT Writer
#########

.. rst-class:: format-title-block

+----------------------------------------------------------------------+
|                        **JT**                                        |
+-----------------------------------------+----------------------------+
| **File Extension**                      | JT                         |
+-----------------------------------------+----------------------------+
| **Supported Versions**                  | 8.1, 9.5, 10.0             |
+-----------------------------------------+----------------------------+
| **Platforms**                           | |wy| |ly| |my| |ay| |iy|   | 
+-----------------------------------------+----------------------------+
| :ref:`jt_wr_tessellation`               | |c_green| Supported        | 
+-----------------------------------------+----------------------------+
| :ref:`jt_wr_brep`                       | |c_green| Supported        | 
+-----------------------------------------+----------------------------+
| :ref:`jt_wr_pmi`                        | |c_green| Supported        | 
+-----------------------------------------+----------------------------+

The JT file format, also known as Jupiter Tessellation, was originally developed by Engineering Animation, Inc. and Hewlett-Packard as part of the Direct Model toolkit. It was later acquired by UGS Corp. and became part of Siemens Digital Industries Software in 2007. The format was officially published as an ISO standard in 2012, making it a widely used and recognized format for 3D data exchange and visualization.

The HOOPS Exchange JT writer allows developers to export the Assembly, B-rep, View data from Exchange to JT. The file extensions that you can create when you export the data are:

* `.JT`


.. _jt_wr_tessellation: 

Tessellation
============

The tessellation is exported in a lossless, compressed format.


.. _jt_wr_brep: 

B-rep
=====

When we export the B-rep it will always be in Parasolid B-rep. If the format was not a Parasolid-based format then all surfaces get mapped to one of the following:

* B-spline surface
* Cone
* Cylinder
* Plane
* Sphere
* Revolution surface
* Swept surface
* Torus

...and curves to one of the following:

* 3D curve
* Circle
* Ellipse
* Line
* UV curve

If the source data was originally XT then HOOPS Exchange will take that data and use it for the B-rep definition.


.. _jt_wr_pmi: 

PMI
===

All supported PMI is exported to one of the following types.

* Datum feature symbol
* Dimension
* GD&T
* Generic PMI
* MeasurementLocator
* MeasurementPoint
* Note
* Surface finish (roughness)
* Weld


How to Export to JT
=====================

To export a model to JT, use :cpp:func:`A3DAsmModelFileExportToJTFile`.
Customize the export using :cpp:struct:`A3DRWParamsExportJTData`.

.. code-block:: c

   A3DRWParamsExportJtData sParamsExportData = A3D_MAKE_DATA(A3DRWParamsExportJtData);
   // ... set export parameter options

   A3DAsmModelFileExportToJtFile(pModelFile, &sParamsExportData, "path/to/file.JT");

.. rubric:: Assembly

To understand and manipulate the model tree before export, see
:doc:`assembly traversal </tutorials/c/print-assembly-structure>` or the :doc:`Tree Traversal API </guide/tree_traversal>`.

.. rubric:: Export to Buffer

Our JT writer provides additional paramters to export data, which can be found in the :doc:`refernce manual </api/c/structures/A3DRWParamsExportJTData>`

Before exporting, ensure that the model contains the geometry and tessellation
you expect. See our pages on :doc:`tessellation <guide/geometry/getting_tessellation>` for tips on generating visualization data for export.


Assembly
========

The assembly structure including coloring and transformations will be exported to the JT file. Instances are currently replaced by object copy. The export is currently to a single monolithic file.


Views
=====

HOOPS Exchange JT Writer does not currently support views in the export of this format.


Export Options Specific to JT
=============================

Export options specific to JT can be found on the :struct:`A3DRWParamsExportJTData` reference page.
The option :cpp:member:`~A3DRWParamsExportJTData::m_bWriteWireframe` from :cpp:struct:`A3DRWParamsExportJTData` allows to export wireframe tessellation (this option is set to false by default).


Limitations
===========

The current limitations include:

* No support for parametric wireframe representations (Wireframe tessellation from specific entities are supported though)
* PMI text is exported in tessellated form
* No support of texture, light, or shader data
* Instances are currently exported as a part copy
