# 欢迎阅读 ZOSPy 的文档！

[![PyPI - Version](https://img.shields.io/pypi/v/ZOSPy)](https://pypi.org/project/zospy)
![Python Version from PEP 621 TOML](https://img.shields.io/python/required-version-toml?tomlFilePath=https%3A%2F%2Fraw.githubusercontent.com%2FMREYE-LUMC%2FZOSPy%2Fmain%2Fpyproject.toml)
[![Conda Version](https://img.shields.io/conda/v/conda-forge/zospy)](https://anaconda.org/conda-forge/zospy)
![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/MREYE-LUMC/ZOSPy/ci.yml)
[![Documentation Status](https://readthedocs.org/projects/zospy/badge/?version=latest)](https://zospy.readthedocs.io/en/latest/?badge=latest)
[![JOSS](https://joss.theoj.org/papers/10.21105/joss.05756/status.svg)][joss-paper]
[![Zenodo](https://zenodo.org/badge/403590410.svg)](https://zenodo.org/badge/latestdoi/403590410)

ZOSPy 是[Ansys OpticStudio] API 的包装器，它提供了一种更Python化、更直观的方式，使用.NET 连接通过Python与[ZOS-API]进行交互，如[《开源软件杂志》论文](https://joss.theoj.org/papers/10.21105/joss.05756)所述。因此，它允许您用更少的编码进行更多的光学建模。

除了通过 ZOS-API 完全访问所有 OpticStudio 功能之外，ZOSPy 还提供以下功能：

- `zospy.analyses`中几个 OpticStudio 分析的包装函数；
- 轻松访问`zospy.solvers`中的求解器；
- 轻松访问`zospy.constants`中的所有 API 常量；
- 自动完成所有 ZOS-API 端点和常量；
- 解决与 Python.NET 3 和与 ZOS-API 交互相关的常见问题。

## 兼容性

ZOSPy正式支持Python{{ PYTHON_VERSIONS }}。它可能适用于较旧的 Python 版本，但不提供对这些版本的支持。此外，还需要安装[Ansys Zemax OpticStudio](https://www.zemax.com/pages/opticstudio) 。

请参阅下表以了解与不同版本的 Ansys Zemax OpticStudio 的兼容性。有关兼容性的更多信息，请参阅[兼容性](compatibility.md)部分。

```{include} compatibility_table.md
```

## 保修和责任

代码按原样提供，不提供任何保证。它仅用于研究目的。不提供任何保证，也不能从中衍生任何权利，正如[MIT 许可证](license.md)中所述。

(referencing)=

## 引用

在发布使用此软件包获得的结果时，请引用我们在[《开源软件杂志》上的论文](https://joss.theoj.org/papers/10.21105/joss.05756)：

> Vught, L. van, Haasjes, C. &amp; Beenakker, J.W.M. (2024). ZOSPy: Optical ray tracing in Python through OpticStudio. Journal of Open Source Software, 9(96), 5756. https://doi.org/10.21105/joss.05756

## 联系

如有任何疑问，请随时通过电子邮件[zospy@mreye.nl](mailto:zospy@mreye.nl)联系我们，或访问[mreye.nl](https://mreye.nl)了解我们的研究。

```{toctree}
:maxdepth: 1
:caption: 入门

installation
simple_example
faq
```

```{toctree}
:maxdepth: 1
:caption: 用法
:glob:

usage/*
compatibility
```

```{toctree}
:maxdepth: 1
:caption: 示例

examples/introduction
examples/简单的厚透镜/Simple thick lens
examples/Escudero-Sanz眼睛模型/Escudero-Sanz eye model
examples/伴或不伴负性视光障碍的假晶状体眼视网膜照度/retinal_illumination
examples/双高斯镜头光线追踪/raytrace_double_gauss
examples/偏振棱镜/polarization_prism_example
examples/用于眼睛像差评估的Shack-Hartmann传感器建模/README
examples/基于患者个体特征的眼底照片与三维眼部影像配准研究/README
```

```{toctree}
:maxdepth: 1
:caption: 高级用法

advanced/logging
advanced/codecs
```

```{toctree}
:maxdepth: 2
:caption: 贡献

contributing/contributing
contributing/developing_analyses
contributing/unit_tests
```

```{eval-rst}
.. currentmodule:: zospy

.. autosummary::
   :toctree: api
   :caption: API reference
   :template: custom-module.rst
   :recursive:

   zospy.zpcore
   zospy.analyses
   zospy.api.constants
   zospy.api.codecs
   zospy.functions
   zospy.solvers
```

```{toctree}
:maxdepth: 1
:caption: 关于

license
changelog
contact
```


[Ansys OpticStudio]: https://www.ansys.com/products/optics/ansys-zemax-opticstudio
[ZOS-API]: https://support.zemax.com/hc/en-us/articles/1500005578742-Basic-method-of-performing-system-analysis-in-ZOS-API
[joss-paper]: https://joss.theoj.org/papers/10.21105/joss.05756
