:orphan:

###########
ACIS Reader
###########

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

+--------------------------------------------------------------------------+
|                              **ACIS**                                    |
+-----------------------------------------+--------------------------------+
| **File Extension**                      | SAT, SAB                       |
+-----------------------------------------+--------------------------------+
| **Supported Versions**                  | From 1.3 (103) to 35.0 (3500)  |
+-----------------------------------------+--------------------------------+
| **Platforms**                           | |wy| |ly| |my| |an| |iy|       |
+-----------------------------------------+--------------------------------+
| :ref:`acis_rd_tessellation`             | |c_green| Computed             |
+-----------------------------------------+--------------------------------+
| :ref:`acis_rd_brep`                     | |c_green| Supported            |
+-----------------------------------------+--------------------------------+
| **PMI**                                 | |c_grey| Unsupported by format |
+-----------------------------------------+--------------------------------+

ACIS is a widely-used geometric modeling kernel that provides robust 3D modeling functionalities for various CAD, CAM, and CAE applications.
The ACIS file format stores 3D geometry data, including vertices, edges, faces, and bodies, using a precise and efficient representation.
This format is commonly employed for interoperability between different CAD systems and for accurate geometric representation in engineering and design applications.

Our support for ACIS covers reading and :doc:`writing <acis_writer>` ACIS file formats on Windows, GNU/Linux, and macOS.

.. note::

   Our ACIS reader does not support some of the more advanced procedural geometries that can be created with ACIS.
   If you are using HOOPS Exchange or Advanced Publishing in an ACIS-based application for export purposes, please use the appropriate ACIS API to approximate these advanced geometries in NURBS form to ensure import success.
   
   If you cannot pre-process the model and/or have specific needs, please contact the HOOPS Exchange Support team for guidance.

How to Import from ACIS
=======================

Reading ``ACIS`` files follows the same pattern as other formats: configure load parameters, then call the standard load function.

To load an ACIS file, use :cpp:func:`A3DAsmModelFileLoadFromFile`.
The :cpp:struct:`A3DParamsLoadData` structure is used to customize the loading behavior:

.. code-block:: c

   A3DAsmModelFile* pModelFile = 0;

   A3DRWParamsLoadData sReadParam = A3D_MAKE_DATA(A3DRWParamsLoadData);
   sReadParam.m_sGeneral.m_bReadSolids = true;

   // ... set other A3DRWParamsLoadData fields as necessary

   A3DAsmModelFileLoadFromFile("path/to/file.sat", &sReadParam, &pModelFile);

See :doc:`/guide/basic_operations/load_model` for more about loading model files.

.. rubric:: Assembly

ACIS does not support the concept of an assembly.

.. _acis_rd_brep:

Boundary Representation (B-rep)
===============================

HOOPS Exchange allows you to query the full topological and geometric model defined in an ACIS file.

Our reader supports the following geometries from ACIS:

* **Surfaces**: B-spline surface, Blend surface (constant radius), Blend surface (from curve), Blend surface (variable radius), Blend surface (vertex), Cone, Extrusion surface, Law surface, Offset surface, Pipe surface, Plane, Skin surface, Sphere, Surface from curves, Surface of revolution, Sweep surface, Torus.
* **Curves**: B-spline, Circle, Curve on surface, Ellipse, Law curve, Line, Offset curve, Intersection curve.

While we access all geometry definitions within an ACIS file, some evaluators for vertex blends and law surfaces are not as robust as others.

HOOPS Exchange does not provide access to the geometric definitions of all surfaces and curves possible in ACIS.
However, evaluators for all types are provided.
Since these advanced geometric definitions do not exist in PRC, they are mapped to NURBS form when exported to PRC.

.. _acis_rd_tessellation:

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

The tessellation data for this format is generated by the HOOPS Exchange tessellation engine.

Miscellaneous
=============

Advanced Publish
****************

Advanced Publish is an authoring SDK within HOOPS Exchange that enables creation and export of rich engineering data using the PRC data model. 
It supports generating output for several supported formats through file import or API-based authoring.

Please note that the ACIS file format is only available to define the 3D model in Advanced Publish.

For more information about using Advanced Publish with this file format, refer to the Advanced Publish section of the Programming Guide :doc:`here </guide/publish/overview>`.

