"""
Atomizer NX Open Hooks
======================

Direct Python hooks for NX CAD/CAE operations via NX Open API.

This module provides a clean Python interface for manipulating NX parts
programmatically. Each hook executes NX journals via `run_journal.exe`
and returns structured JSON results.

Modules
-------
nx_cad : CAD manipulation hooks
    - part_manager : Open, close, save parts
    - expression_manager : Get/set design parameters
    - geometry_query : Mass properties, bodies, volumes
    - feature_manager : Suppress/unsuppress features

nx_cae : CAE/Simulation hooks (Phase 2)
    - solver_manager : BDF export, solve simulations

Quick Start
-----------
>>> from optimization_engine.hooks.nx_cad import expression_manager
>>> result = expression_manager.get_expressions("C:/model.prt")
>>> if result["success"]:
...     for name, expr in result["data"]["expressions"].items():
...         print(f"{name} = {expr['value']}")

>>> from optimization_engine.hooks.nx_cae import solver_manager
>>> result = solver_manager.get_bdf_from_solution_folder("C:/model.sim")

Requirements
------------
- Siemens NX 2506+ installed
- NX_BIN_PATH environment variable (or default path)
- Python 3.8+ with atomizer conda environment

See Also
--------
- optimization_engine/hooks/README.md : Full documentation
- docs/plans/NX_OPEN_AUTOMATION_ROADMAP.md : Development roadmap

Version
-------
1.1.0 (2025-12-06) - Added nx_cae module with solver_manager
1.0.0 (2025-12-06) - Initial release with nx_cad hooks
"""

from .nx_cad import (
    part_manager,
    expression_manager,
    geometry_query,
    feature_manager,
)

from .nx_cae import (
    solver_manager,
)

__all__ = [
    # CAD hooks
    'part_manager',
    'expression_manager',
    'geometry_query',
    'feature_manager',
    # CAE hooks
    'solver_manager',
]

__version__ = '1.1.0'
__author__ = 'Atomizer'
