Ansys Zemax / SPEOS | 光源文件转换器
在 SPEOS 与 Zemax 之间转换二进制光源文件的专业技术分析
引言
本文旨在介绍如何使用 Python 代码在 SPEOS 和 Zemax 两种光学设计软件之间转换二进制光源文件的详细流程。通过对两种软件特有的光源文件格式进行分析,并提供相应的转换方法,为光学设计师提供了一种灵活的文件互换方案。我们将分别阐述各自的光源文件格式特性,以及如何使用提供的 Python 代码进行文件转换,并验证转换效果的可靠性。
SPEOS 光源文件与 Zemax 光源文件格式
在这里,我们首先深入分析了 SPEOS 和 Zemax 的光源文件格式,后者指的是二进制文件,各种数据按照特定顺序排列在文件中,以便在不同软件环境下被正确解读。
1.1 SPEOS 光源文件格式
SPEOS 针对其光源文件格式精确定义了数据结构。每个文件前设有一个包含 28 字节的数据标题结构,这一结构由七组双精度数值组成:
辐射功率
定义版本信息(25)
光度学功率
之后随数据标题后尤为重要的是每条光照数据的定义,包含了如下八大双精度数值:
坐标 X、Y、Z 表示光照所在点的位置
方向 L、M、N 表明光线的方向
波长 Wavelength
能量 Energy,以 Watts 为单位
1.2 Zemax 光源文件格式
相比之下,Zemax 的二进制光源文件更详细地定义了其结构:
描述部分包含了 100 字节的信息,确保在创建定制光源文件时不会产生误解。
ray_format_type 被定义为只能为 0(仅光通量格式)或 2(光谱颜色格式),不支持其他类型。
flux_type 当 ray_format_type 为 0 时,"Watts" 代表光通量;"Lumens" 当且仅当 ray_format_type 也为 0 时适用。
波长 以 μm 单位,且在光谱颜色格式下,光通量数据以 Watts 计算。
SPEOS 到 Zemax 的转换
转换流程涉及到对 SPEOS 光源文件的内容解码,并相应修改以符合 Zemax 的结构要求。以下是使用 Convert_ZEMAX_to_SPEOS.py 执行转换步骤的详细说明:
1. 准备 Python IDLE 环境,确保已安装所需的 Python 版本(3.9.2)以及必要的软件库。
2. 加载光线文件 使用提供的 Python 脚本,并调整所需参数,包括光源文件路径和指定文件类型(如 `.DAT` 用于单色光源)。
3. 生成并保存 转换后的 Zemax 光源文件将被保存在与原始文件相同的路径下。
验证原理:通过在 Zemax OpticStudio 中加载转换后的光源文件,并执行光线追踪(如使用极定向探测器和矩形探测器),以测试转换后的文件是否能正确表示原有光源的角度和位置分布。
Zemax 到 SPEOS 的转换与验证
转换至 SPEOS 的过程与此类似,但对于 Convert_SPEOS_to_ZEMAX.py:
1. 配置并运行 启动Python环境,更改脚本中的路径参数为待转换的 .RAY 文件路径。
2. 生成 SPEOS 光源文件 并保存在原始文件路径下。
3. Zemax 范式验证:再次利用 Zemax OpticStudio,通过重复绘制相同类型的探测器(极定向探测器和矩形探测器)来验证转换效果。
以上过程旨在确保转换不仅在文件格式上准确,且在光源的角度和位置分布上均保持一致。