Also available in English
本文介绍如何使用环形阵列对象创建任意父物体的各种径向阵列,包括圆形、六边形或螺旋形阵列。此类阵列最适合用于模拟径向封装结构,例如蝇眼阵列。
作者: Akash Arora
简介
OpticStudio 支持两种用于在非序列模式下复制任何几何父物体的阵列对象:阵列和环形阵列。阵列对象用于对直线阵列进行建模,其元件沿三个用户可定义的轴进行复制;而环形阵列用于对圆形、六边形或螺旋形阵列进行建模。环形阵列和阵列都极大地简化了任何父物体的复制,并且仅需与单个父物体相同的内存。因此,追踪穿过阵列的光线比追踪众多单个对象要快得多。
在本文中,我们将探讨环形阵列对象在模拟径向对称阵列方面的各种功能。
环形阵列对象定义
环形阵列最适合用于径向排列结构,例如蝇眼阵列。环形阵列对象的所有定义参数均取自父物体,包括材质、表面和体积属性。此外,父物体可以隐藏或忽略,使其仅用于控制阵列元件的形状和属性。
环形阵列能够形成多种不同的阵列结构。有两种模式决定阵列元件是定义在平面上还是垂直于球面。这两种模式分别是模0和模式1;下面显示的是模式1的可用参数。

下表概述了每种模式下所有可用的参数。注意:参数2已排除在外,因为它是模式设置。
| 参数# | 参数名称 | 模式0 | 模式1 |
| 1 | 父物体# | 每个阵列元件使用的父物体 | 没有差异 |
| 3 | 元件的序号 | 阵列中元件的总数 | 没有差异 |
| 4 | 曲率半径 | 第一个元件沿x轴平移该距离 | 球心沿z轴的位置 |
| 5 | Alpha | 第一个元件绕局部z轴旋转该角度 | 没有差异 |
| 6 | Beta | 每度弧角引起的阵列单元径向偏移量。此参数用于定义螺旋阵列 | 第一个元件绕球心的y轴旋转该角度 |
| 7 | Gamma | 第一个元件绕阵列z轴旋转该角度 | 没有差异 |
| 8 | Delta | 阵列元件沿其复制的弧角。所有元件均等间距分布,间距角度等于’Delta’/元件个数 | 没有差异 |
| 9 | Epsilon | 每经过 360° 圆弧角度后,元件会发生径向偏移。此参数仅在’Delta’≥ 360° 时有效。非零值的作用是定义多个同心圆阵列。 | 未使用 |
有关这些参数的完整说明,请参阅帮助文件中的“设置选项卡...编辑器组(设置选项卡)...非序列组件编辑器...非序列几何对象”部分。
构建圆形和六边形阵列
圆形和六边形阵列的建模方式为:阵列模式0,Beta = 0。如果您想创建一个如下图所示的单个圆形阵列,请设置Delta = 360°;对于这样的阵列,阵列元件在角度上是等间距的。

六边形阵列由多个偏移的环形阵列定义。打开位于 Samples 文件夹中的 OpticStudio 示例文件“ {Zemax}\Samples\Non-sequential\Geometry Creation\Ring Array Example 3- Hexapolar Array.zmx ”。第一个环形阵列模拟内环和外环各六个元件。这是通过将Epsilon参数设置为标准透镜的直径,并将Delta 设置为 720°(两个圆)来实现的。添加第二个环形阵列以填充第二个环中的另外六个元件。

在这个示例文件中,父物体被保留为数组的中心元件。如前所述,父物体无需绘制或被射线考虑;这些属性与阵列元件无关。
构建螺旋阵列
与圆形和六边形阵列不同,螺旋阵列通过将Mode 设置为 1来定义。之后,我们必须为Beta参数设置一个非零值,以定义径向坐标随弧角的增量。对于总弧角(由 Delta 定义)的每一度,阵列元件将移动 Beta 值。这种螺旋也称为阿基米德螺旋。打开 OpticStudio 示例文件“ {Zemax}\Samples\Non-sequential\Geometry Creation\Ring Array Example 2- Spiral of Archimedes.zmx ”即可查看示例。

请注意,Beta = 5E-3 ,这意味着每旋转一度弧角,元件的径向位置将增加5 µm。请记住,该值单位为透镜单位/度,较大的beta值会导致阵列尺寸变得非常大。在本文件中,我们通过设置Delta = 600°来实现螺旋线旋转超过一圈。
构建蝇眼阵列
与螺旋阵列类似,蝇眼阵列使用模式 1定义。阵列元件垂直于一个假想的球面定义。打开示例文件“ {Zemax}\Samples\Non-sequential\Geometry Creation\Ring Array Example 1- Fly's Eye Array.zmx ”。该系统模拟了垂直于假想球面的重叠透镜。
