我已经学会了使用 LOADLENS 读取我之前保存好的镜头,但接下来遇到另一个问题:
我只想改几个面参数,难道每次都要手动点或者另存一个模型?
具体来说:我要模拟其中一个镜头发生了偏心、旋转、倾斜。
在zemax官网上搜索,找到了SURP函数:

SURP 是 SETSURFACEPROPERTY 的简写:
SURP surface, code, value1, value2
用于修改指定面的任意属性(曲率、厚度、玻璃、非球面参数、倾斜等)
! 曲率(注意不是半径)
SURP 3, CURV, 0.02
! 厚度
SURP 3, THIC, 5
! 材料
SURP 5, GLAS, "BK7"
! 圆锥系数
SURP 4, CONI, -1
! 第11面,第4个参数,7.3
SURP 11, PARM, 7.3, 4
SURP 2, TYPE, "ABCD"
! 倾斜
SURP 5, BTX, 2
SURP 5, BTY, 1
! 偏心
SURP 5, BDX, 0.1
SURP 5, BDY, -0.2
SURP 3, SDIA, 10
SURP 4, COAT, "AR"
SURP 6, TYPE, "USERSURF"
SURP 6, SDLL, "my_surface.dll"
最重要:SURP 不会自动生效!一定要UPDATE
SURP的其它CODE需要参考说明书,见参考链接!
其中rottemp、tilttemp和distemp是待传递的数值,方便遍历的时候修改。
参考链接:https://ansyshelp.ansys.com/public/account/secured?returnurl=//Views/Secured/Zemax/v251/en/OpticStudio_User_Guide/OpticStudio_Help/topics/SETSURFACEPROPERTY_SURP.html?q=SURP