概述
这篇文章介绍了:
如何在非序列模式下创建离轴抛物镜
如何在非序列中定义孔径来遮挡光线。本文中使用狭缝孔径作为示例。
使用用户自定义孔径
在OpticStudio序列模式中,所有元件以表面的方式进行定义,并且每个表面的孔径可以在表面属性 (Surface Properties) 中的孔径 (Aperture) 选项卡中进行定义。许多常用的孔径类型已经内置在软件中,其中包括矩形、圆形、椭圆形和浮动孔径。
在非序列模式中,光学元件是以物体的方式进行定义。因此,定义表面时使用的孔径的概念不再适用。然而,在非序列中一些物体仍然支持进行孔径定义。
在非序列中,一些物体支持使用用户自定义孔径 (User Defined Aperture, UDA)。开启该功能需要在对应物体的物体属性中的类型 (Type) 选项卡中勾选“用户自定义孔径 (User Defined Aperture)”:
当勾选该选项时,您可以在文件下拉菜单中,选择相应的用户自定义孔径文件。并且您可以对该孔径设置相应的UDA缩放 (Scale),或直接点击“编辑孔径文件 (Edit Aperture File)”按钮。
用户自定义孔径可以在多种情况下使用,其中最常见的情况是定义非球面表面的离轴部分。例如,如果想定义抛物反射镜的一块离轴矩形区域,我们可以通过在圆锥系数为-1的标准表面上添加用户自定义孔径来实现。
在孔径文件中,定义矩形首先要定义矩形中心的XY坐标,该坐标为相对物体顶点的局部坐标值。其语法为:
REC cx cy xhw yhw angle nx ny
其中cx和cy表示矩形中心的XY坐标,xhw和yhw表示矩形的在X方向和Y方向的宽度。Angle参数用来表示顺时针的旋转角度,以度为单位。nx和ny(可选择性输入)用来表示最终形成的表面由多少个部分组成。
以下是一段创建矩形孔径的示例:
REC 0 10 3 3 0 50 50
将该孔径定义在抛物面上(圆锥系数为-1的标准面物体),最终得到的离轴抛物镜如下所示:
有关创建UDA完整信息请参考帮助系统中的“User defined apertures and obscurations”一节。
创建狭缝孔径
在序列模式中,任何被孔径遮挡的光线都将停止继续追迹。在非序列光线追迹中,光线入射到孔径之外的地方并不直接停止追迹。在三维空间中,没有与目标物体接触的光线有可能会入射到另一个物体上。那么我们应该如何设置孔径以使被孔径遮挡的光线停止光线追迹或被吸收呢?
本例使用到的技巧是利用OpticStudio的嵌套规则。如果光线入射到多个物体重叠的三维空间时,OpticStudio将使用非序列元件编辑器中物体序号最大的物体的物体属性来定义重叠区域的属性。
因此,我们可以使用两个矩形物体嵌套在一起,组成一个只允许光线从中间矩形区域穿过的矩形孔径物体。其中第一个矩形物体的材料设为吸收,第二个矩形物体的材料设为空气。在该组合体的中间矩形区域为空气,周围的矩形区域为吸收材料:
考虑到嵌套规则,在非序列元件编辑器中,内部矩形区域的空气需要在外部矩形区域之后进行定义,并且外部矩形物体的材料类型为ABSORB(吸收)。
从光源发出的光线入射到中心矩形(物体编号3)时将直接穿过并进入探测器中,入射到外部矩形(物体编号2)的光线将被吸收。
本例使用矩形物体创建了一个矩形的狭缝孔径,我们也可以使用相同的方法,利用自定义的物体形状来创建用户自定义的孔径。您只需要将中心矩形物体的物体类型更改为标准面,选择用户自定义孔径,并将其与另一个属性为吸收的物体嵌套即可。
小结
用户自定义孔径可以放置在一部分非序列物体上,它可以用来创建离轴抛物镜等。光线追迹到所定义孔径之外时将停止追迹。这篇文章介绍了在非序列模式中实现这一目标的几种方法。