环形阵列(Array Ring)



这个物体是相同物体的集合,基于单个父物体以环形或弧形排列。每个阵列元件与父物体的功能相同,就像一个父物体的副本放在每个阵列位置上。相比于通过复制父物体到每个元件位置所创建的等价系统,环形阵列物体一般追迹速度更快,内存利用效率更高。环形阵列物体由以下参数定义:

参数# 描述 面名称 面#
1 父物体#。在NSC编辑器中,父物体必须在阵列物体之前。 NA NA
2 模式编号。 NA NA
3 阵列元件数,N。 NA NA
4 环形或参考球面的半径R,以镜头单位表示。 NA NA
5-9 参数α、β、γ、δ和ε。当这些参数是角度时,单位为度。 NA NA

父物体可以是任意的物体类型,除了光源、探测器以外。如果勾选了父物体的"物体作为探测器(Object Is A Detector)"复选框,则在阵列元件中将忽略这一属性。要创建光源阵列,请参阅"物体属性(Object Properties)"中的"光源(Sources)"设置。

原则上,阵列元件的个数可以是任何数量,但是非常大的阵列可能需要大量的计算时间或计算机内存去完成光线追迹或渲染。

阵列元件以环形(或弧形)方式排列。可以通过两种方法定义阵列元件的位置,即通过模式标记进行定义。模式0可在平面上创建环形物体。模式1可在参考球面上创建环形物体。下述是用于放置每个阵列元件的两种模式:

模式0(Mode 0):此模式的草图基于示例文件"Zemax\Samples\Non-sequential\Geometry Creation\Ring Array Example 2- Spiral of Archimedes.ZMX"

先将父物体放在环形阵列的顶点。



其次按α角度绕阵列的局部+Z轴旋转物体。



然后按距离R沿阵列局部+X轴移动物体。



最后按γ角度绕阵列局部Z轴旋转物体。这是阵列中第一个元件的位置。

请注意,下图展示了35度的γ值,而示例文件"Ring Array Example 2- Spiral of Archimedes.ZMX"的γ值为0度。区别只是为了进行演示。



后续阵列元件按角度δ/N沿Z轴进一步旋转。阵列元件"k"的角位置由以下公式给出:θ = γ + k* ẟ /N。其中,k是0至N-1之间的值。对于一个完整的环,δ为360度。模式0也可以用来形成阿基米德螺旋线(Spiral of Archimedes),其中将R替换为R + k* β * ẟ /N,其中β为镜头单位/度。ε值也可以用来定义k* ẟ /N每经过360度时R的步长的变化,以镜头单位表示。通常,当β或ε不为零时,光线追迹的速度将非常慢,因为阵列的对称性已被破坏。

模式1(Mode 1):此模式的草图基于示例文件"Zemax\Samples\Non-sequential\Geometry Creation\Ring Array Example 1- Fly's Eye Array.ZMX"

先将父物体放在环形阵列的顶点。



其次按α角度绕阵列的局部+Z轴旋转物体。



然后按β角度沿与阵列局部Y轴平行的轴旋转物体,即在局部+Z方向按R距离移动物体,使阵列元件的局部Z点朝向半径为R的球面中心(或远离中心,如果半径R为负数)。此处使用的角度β的符号规约是该β角度始终为正,并且物体始终朝向局部+X轴旋转,无论半径R是正还是负。





最后按γ角度绕阵列局部Z轴旋转物体。这是阵列中第一个元件的位置(k = 0)。

请注意,下图展示了30度的γ值,而示例文件"Ring Array Example 1- Fly's Eye Array.ZMX"的γ值为0度。区别只是为了进行演示。



后续阵列元件按角度δ/N沿Z轴进一步旋转。

阵列中各个元件的位置可以用以下等式进行计算:

对于两种模式,要形成一个完整的环形,δ应为360。较小的δ值将形成物体的弧形阵列。较大的δ值可能会导致元件叠加,从而创建无效的几何形状。γ角度是指绕Z轴从环形和弧形的起点开始"计数"。

环形阵列物体的大部分属性可以用父物体定义。例外是可以使用"光线忽略此物体(Rays Ignore This Object)"和"不绘制物体(Do Not Draw Object)"设置来区分环形阵列物体和父物体。所有其它属性,包括表面定义、材料、膜层、散射、衍射或渐变折射率属性,与父物体的定义相同,阵列物体的设置将会被忽略。如果不需要父物体,可使用父物体上的"光线忽略这个物体"和"不绘制物体"设置(参阅"类型选项卡(Type tab)"和"绘制选项卡(Draw tab)")完成操作。即使不绘制父物体或不追迹光线,阵列物体仍然会被创建并被光线追迹。注意,光线到达一个阵列物体时将报告到达的父物体编号,而不是阵列物体编号。因此,当用ZRD文件、优化操作数或者过滤字符串时,用来参考光线数据的物体编号应该是父物体编号。

在其它物体内部或外部嵌套阵列物体时,可应用常用嵌套规则。有关更多信息请参阅"嵌套物体(Nesting volumes)"。但是,在NSC编辑器中放置的是父物体,而不是阵列物体,这就决定了该如何使用嵌套规则。具体而言,如果将某阵列物体嵌套到另一个外部物体的内部,则在编辑器中,父物体必须在此外部物体之后。

下一部分: