如何在PyZDDE中建立倾斜镜的模型?

2024-06-16 11:28:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图将球面像差建模为光学系统中反射镜倾斜角度的函数。我使用光学工作室为模型和PyZDDE与它通信。我认为这很简单;我将设置一个倾斜角度列表,然后在它们上循环更改相关曲面参数并调用zGetZernike()

for i in range(len(angle)):
    ln.zSetSurfaceParameter(n, 54, angle[i])
    ln.zSetSurfaceParameter(n, 64, -angle[i])
    ln.zGetZernike()
    print(Zern[1])

但是,这没用。在

我得到了相同的Zernike系数,与角度无关。我试着给ln.zPushLens(1)和{}打电话,但都没用。服务器端的更改看起来没有更新。 我还尝试在镜像曲面前后引入坐标断开,并更改这些曲面的角度,但这也不起作用。在

我缺了什么?我能做些什么来让它成功?在

我也想改变波长,但那似乎也不管用。我调用ln.zSetPrimaryWave(N),其中N是波数,但是服务器总是使用Optics Studio中设置的第一个波长。在

有没有办法改变计算Zernike系数的波长?在


Tags: 函数建模角度光学球面ln曲面波长
2条回答

请将参数编号3和4(而不是54和64)与函数zSetSurfaceParameter()一起使用。在

代码SDAT_TILT_X_BEFORE(54)和SDAT_TILT_X_AFTER(64)分别与函数zSetSurfaceData()一起使用,该函数为主Zemax/OpticStudio应用程序中的指定曲面在Surface Properties >> Tilt/Decenter选项卡中设置适当的字段。在

请注意,如果使用的是坐标断开符,则需要使用参数3和4(与函数zSetSurfaceParameter())一起使用。此外,如果曲面类型是倾斜的,则可以使用参数编号1和2。在

我不知道为什么函数zSetPrimaryWave()不适合您。我刚刚在OpticStudio中测试了这个函数,它按预期工作。在

谨致问候, 英得拉尼尔。在

结果表明,使用zSetSurfaceParameter()直接从表面属性改变倾斜和偏心度是行不通的。我必须使用两个坐标断开,一个在镜像曲面前面,一个在它后面,并使用zSetSurfaceParameter()设置这些曲面的倾斜和偏心。我选择在第二个曲面上设置拾取解算,该解算将恢复镜像后面的几何体,并且只更改第一个曲面上的倾斜和偏心。x倾斜和y倾斜的参数编号相应地为3和4,如Optics Studio手册中所述。对于调试来说,在每次更改参数(zPushLens(1))之后,将镜头推到镜头编辑器中确实很有帮助。还应考虑将中间配置保存为Zemax设计文件。然而,对于实际计算来说,这些都是不必要的。此外,Optics Studio在Zernike计算设置中使用第一个波长。我不得不用zSetWave()改变波长。感谢Indranil和ZEMAX技术支持,在此过程中提供了宝贵的建议和指导。在

相关问题 更多 >