Zemax新功能-复合表面实现自由曲面公差分析

2022年11月2日 Ansys发布了 最新的 Ansys Zemax OpticStudio 2022 R2.02 和 OpticStudio 22.3增加了复合表面(Composite Surface),这里做个简要介绍。


可用版本:Zemax OpticStudio 22.3版本(专业/高级订阅)或Ansys Zemax OpticStudio(专业/高级/企业)2022 R2.02版本

先看结论:复合表面是将多个面叠加到一起成为一个面。这样在一个基础表面上可以增加多个其他表面的矢高分布,可以实现一些新的建模和自由曲面公差分析等。

 

以下部分内容译自Zemax官方知识库,转载注明出处。点击底部“阅读原文”和此链接 实现自由曲面公差分析—Zemax22.3的复合表面是什么?查看光学课堂原文。

设置

如下,需要将2 3 面叠加到4面上。



首先,设置面2为叠加矢高的面,打开属性面板,点Composite页,勾选 Add sag to the next surface



任何数量的表面都可以加在一起,这些表面被称为 “复合附加面(Composite Add-on)”,或简称 “附加面(Add-on)”。附加面的矢高将被添加到下一个附加面,最后总的矢高将被添加到镜头数据编辑器(LDE)中的后一个普通表面,它被称为 “复合基面(Composite Base)”,或简称为 “基面(Base)”。
然后,基面轮廓将是所有附加面轮廓的总和,再加上它自己的轮廓。Add-On和Base的总和被称为 “Composite Stack”。

如图2所示,附加物行的颜色是浅黄色,而基础行的颜色是亮黄色。



不能为复合附加面设置材料和镀膜,因为它只提供矢高。它的材料和镀膜属性在基面上设置。同时,附加面的孔径跟随基面。

简而言之,就是将附加面和基面堆(Stacking)在了一起,在光线追踪中,光线与总的矢高追迹,复合附加面并不直接参与光线追迹。

layout 绘制也是总的矢高,不仅仅显示基面的矢高。



复合面layout


附加面禁用后的基面layout

支持的表面

  • Biconic

  • Biconic Zernike

  • Chebyshev Polynomial

  • Even Asphere

  • Extended Asphere

  • Extended Odd Asphere

  • Extended Polynomial

  • Grid Sag

  • Irregular

  • Odd Asphere

  • Odd Cosine

  • Off-Axis Conic Freeform

  • Periodic

  • Polynomial

  • Q-Type Asphere

  • Q-Type Freeform

  • Standard

  • Superconic

  • Tilted

  • Toroidal

  • Zernike Fringe Sag

  • Zernike Standard Sag

  • Zernike Annular Standard Sag



其他功能

单个禁用附加面




在编辑器整体禁用附加面



在编辑器整体激活附加面



在附加面上可以右键,可以显示/隐藏/删除附加面。



矢高图Sag map

矢高图也增加对附加面控制的功能。

面3,面4为附件面,面5为基面。默认矢高是逐个累加的。即选中后面的面自动加上了前面的面。

面3



面3+面4(选中面4)



面3+面4+面5(选中面5)




如果想查看单独的矢高,需要选中 “Remove Composite Sag”,或 “Remove Base Sag

面4(选中面4,勾选去除Composite Sag)



面5(选中面5,勾选去除Composite Sag)



面3 + 面4(选中面5,勾选去除Base Sag)




离轴孔径支持(off-axis apertures )


如果您在附加表面的复合选项卡中点击 “设置倾斜/衰减器以跟随基础表面的光圈(Set Tilt/Decenter to follow Base surface aperture) “按钮,附加表面将自动以基础表面的离轴孔径为中心。
按下该按钮,OpticStudio会自动填写复合选项卡中的倾斜和偏心,使所有附加面的堆与基面的离轴孔径坐标系位置重合,方向一致。

请注意,复合堆的倾斜/中心 只能在最靠近基座表面的附加表面上看到,在那里使用了 “设置倾斜/中心以跟随基座表面的孔径 “按钮。所有其他附加表面的数值将是灰色的,自动跟随这个附加面。

如果用户手动改变了偏心值,点击”更新倾斜 “按钮(如图11所示)可以用来自动填充倾斜值,使附加面的方向与基面在指定的偏心处一致。

公差操作数TIRR, TEXI, and TEZI

以前,操作数TIRR, TEXI , TEZI 只能用在特定面型上。




现在,由于复合曲面的出现,任何可以成为复合基面的曲面类型都可以使用这三个操作数来做公差。(注意,TIRR、TEXI和TEZI的扩展能力不包括对离轴孔的支持)。

对于使用的表面类型,TIRR操作数将被展开为不规则复合表面。TEXI操作数将被展开为Zernike Fringe Sag复合曲面。而TEZI操作数将被展开为Zernike Standard Sag复合面

我们将以下面的手机设计案例(图13)为例。



公差数据编辑器(TDE)为手机镜头的表面3和4增加了TEZI操作数。以前,Q型非球面类型不能直接用EZI,但现在不仅可以,还可以使用其他公差功能,如图14所示。



运行公差并保存蒙特卡洛文件





打开一个Monte Carlo文件来验证并更好地理解操作数是如何给表面增加不规则性公差的。如图16所示,Q型非球面表面添加了一个附加表面,该表面带有TDE中指定的Zernike Standard Sag的扰动。



译者注:回归本质,是将公差叠加了基面,从物理本质上来说更合理,实际值就是标准值加上公差。以往做非球面公差分析需要做自定义面型,只是代码上实现了矢高累加的过程。

API 控制
为复合曲面增加了两个新的API命令,IsCompositeSurface和SetOffAxisTiltAndDecenter()。


IsCompositeSurface用于该参数的设置和获取值。SetOffAxisTiltAndDecenter()根据离轴表面孔径中心的基础复合表面法向量的计算来填充表面属性。

下面是一个Python的代码片段供你参考。

TheSystem = TheApplication.PrimarySystem;TheLDE = TheSystem.LDE
# Get Surface j InformationCompositeTest = TheLDE.GetSurfaceAt(j)
# Check “Composite Surface:Add sag to the next surface”CompositeTest.CompositeData.IsCompositeSurface=1
# Press “Set Tilt/Decenter to follow Base surface aperture” buttonCompositeTest.CompositeData.SetOffAxisTiltAndDecenter()# Extract Composite Surface Tilt/Decenter valueCompositeTiltX=CompositeTest.TiltDecenterData.BeforeSurfaceTiltXCompositeTiltY=CompositeTest.TiltDecenterData.BeforeSurfaceTiltYCompositeTiltZ=CompositeTest.TiltDecenterData.BeforeSurfaceTiltZCompositDecenterX=CompositeTest.TiltDecenterData.BeforeSurfaceDecenterXCompositDecenterY=CompositeTest.TiltDecenterData.BeforeSurfaceDecenterY# Change the Tilt/Decenter values manuallyCompositeTest.TiltDecenterData.BeforeSurfaceTiltX = 0CompositeTest.TiltDecenterData.BeforeSurfaceDecenterY = 0

ZPL 支持

同样ZPL宏也增加了控制命令

COMPOSITEON( surface number ) - keyword
COMPOSITEOFF( surface number ) - keyword
COMPOSITEOFFAXISAPERTUREON ( surface number ) – keyword
ISCS(surface number) -> returns 1|0 - numeric function
[ISCS() returns 0 when the surface is not composite surface and returns 1 if the surface is composite surface.]


样例代码:

! Uncheck the composite surface checkboxPRINT "Turn off composite surface j"
COMPOSITEOFF jA = ISCS(j)! ISCS () return 0 if it's not composite surf., return 1 if it's composite surf.
IF (A < 0.5)    PRINT " ==> Composite surface flag is OFF"ELSE    PRINT " ==> Composite surface flag is ON"ENDIF   
! Check the composite surface checkbox
PRINT "Turn on composite surface j"   COMPOSITEON jA = ISCS(j)IF (A > 0.5)    PRINT " ==> Composite surface flag is ON"ELSE    PRINT " ==> Composite surface flag is OFF"ENDIF   
! Press the "Set Tilt/Decenter to follow Base surface aperture" buttonPRINT "Set Tilt/Decenter to follow Base surface aperture"
COMPOSITEOFFAXISAPERTUREON jPRINT " ==> Click Tilt/Decenter to follow Base surface aperture button"





总结:

复合表面将多个表面合到一起进行分析,计算。同时官方例子里面展示了公差分析的底层也是用复合表面。

虽然这个功能以前用其他手段也可以实现,但是从易用性上来说算是一个比较大的改进。

 

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注