第2章:Zemax公差分析界面——公差数据编辑器(TDE)的布局与基本操作

好,我们直接进入正题。上一章我们聊了公差分析到底在干什么,这一章,咱们就打开Zemax,看看那个最核心的界面——公差数据编辑器(TDE)

我第一次打开TDE的时候,说实话,有点懵。满屏的表格,一堆看不懂的缩写。但别怕,这东西用熟了,你会发现它其实很「规矩」。说白了,它就是一张巨大的电子表格,你往里面填「哪个零件会偏多少」,Zemax就帮你算「像质会变多差」。

2.1 如何打开TDE?

操作很简单,就两步:

  1. 在Zemax主菜单栏,点击 Tolerance
  2. 在下拉菜单里,选择 Tolerance Data Editor

快捷键是 Ctrl + Shift + T。我个人习惯用快捷键,因为做公差分析时,要反复在LDE(镜头数据编辑器)和TDE之间切换,用鼠标点来点去太慢了。

小提示: 如果你发现TDE是灰色的点不了,别慌。先检查一下你的LDE里有没有镜头数据。空文件是没法做公差分析的。

2.2 TDE的布局:一张「命令表」

TDE的界面,看起来就是一个多列的表格。每一行,代表一个公差操作数。什么是操作数?你可以把它理解成一条「命令」。比如:「第3面的曲率半径,允许有±0.1mm的误差」。

表格的主要列有:

列名 含义 我的一点经验
Type 公差操作数的类型。比如TTHI(厚度)、TFRN(曲率半径)、TIRR(不规则度)等。 这是最关键的列。选错类型,分析结果就全错了。我见过有人把TTHI和TFRN搞混,结果公差分析出来,系统说「你的镜片厚度偏差对像质没影响」,那肯定不对。
Int1 / Int2 操作数作用的表面编号。比如Int1=3,Int2=4,表示这个公差作用于第3面和第4面之间。 注意,有些操作数只需要一个面(比如曲率半径TFRN),有些需要两个面(比如厚度TTHI)。填错了Zemax会报错。
Min / Max 公差的下限和上限。单位取决于操作数类型,可能是毫米、光圈数、度等。 这里有个坑:Min和Max是相对于名义值的偏差。比如名义厚度是10mm,你设Min=-0.1,Max=+0.1,那实际厚度会在9.9到10.1之间变化。
Scale 缩放因子。一般用默认值1就行。 嗯,这个我很少改,除非在做一些特殊的蒙特卡洛模拟。
核心要点: TDE的每一行,就是一条「如果...那么...」的规则。Zemax会逐条读取这些规则,然后去扰动你的镜头模型。

2.3 基本操作:增、删、改、查

操作TDE,跟操作Excel差不多。但有几个细节,我建议你注意一下。

2.3.1 插入公差操作数

在TDE里,右键点击行号,选择 Insert Tolerance。或者用快捷键 Insert 键。我个人喜欢用快捷键,因为要插入几十条公差时,鼠标点起来太累。

2.3.2 删除公差操作数

选中一行或多行,按 Delete 键。或者右键选择 Delete Tolerance(s)

警告: 删除操作不可撤销!我年轻时吃过这个亏,辛辛苦苦设了50条公差,手一抖全删了,还没法Ctrl+Z。所以,建议你经常保存ZMX文件,或者把TDE的内容导出备份。

2.3.3 修改操作数参数

直接双击单元格,输入新值就行。跟Excel一样。

2.3.4 快速填充(这个很实用)

如果你要对多个表面设置相同的公差,比如所有面的曲率半径公差都是±0.05mm,你可以:

  1. 先在第一行设好Type、Min、Max。
  2. 选中这个单元格,按 Ctrl + C 复制。
  3. 选中下面要填充的单元格,按 Ctrl + V 粘贴。

Zemax会自动帮你调整Int1、Int2的编号。这个功能我几乎每次都用,能省下大量时间。

2.4 常用的公差操作数一览

TDE里操作数很多,但常用的就那几个。我列个表,你记一下:

操作数 全称 作用对象 典型应用场景
TTHI Thickness Tolerance 两个面之间的轴向距离 镜片厚度、空气间隔的偏差
TFRN Radius Tolerance 单个面的曲率半径 镜片加工时的曲率误差
TIRR Irregularity Tolerance 单个面的不规则度 镜片面形的不规则偏差(光圈数)
TEDX / TEDY Element Decenter X/Y 整个镜组的偏心 镜片装配时的偏心误差
TETX / TETY Element Tilt X/Y 整个镜组的倾斜 镜片装配时的倾斜误差
TIND Index Tolerance 材料的折射率 玻璃批次间的折射率波动
TABB Abbe Number Tolerance 材料的阿贝数 玻璃色散特性的偏差
我的习惯: 在做初始公差分析时,我一般只设TTHI、TFRN、TIRR、TEDX/Y、TETX/Y这五类。TIND和TABB通常影响较小,我会在后期优化时再考虑。别一开始就把所有参数都塞进去,那样分析结果会很难解读。

2.5 一个简单的实操示例

假设你有一个双胶合透镜,表面编号是1、2、3。你想设置以下公差:

  • 表面1的曲率半径:±0.05mm
  • 表面2的曲率半径:±0.05mm
  • 表面3的曲率半径:±0.05mm
  • 表面1到表面2的厚度:±0.1mm
  • 表面2到表面3的厚度:±0.1mm

在TDE里,你应该这样填:

Type    Int1    Int2    Min     Max
TFRN    1       0       -0.05   0.05
TFRN    2       0       -0.05   0.05
TFRN    3       0       -0.05   0.05
TTHI    1       2       -0.1    0.1
TTHI    2       3       -0.1    0.1

注意,TFRN的Int2填0,表示只作用于单个面。TTHI的Int1和Int2分别填起始面和终止面。

避坑指南: 我曾经在做一个投影镜头时,把TTHI的Int1和Int2填反了。结果公差分析显示「厚度偏差对像质毫无影响」,我查了半天才发现,原来Zemax把厚度公差加到了空气里,而不是镜片里。所以,填完一定要检查一遍Int1和Int2的顺序。

2.6 保存与加载TDE数据

TDE里的数据,是保存在ZMX文件里的。但如果你想单独保存一份公差设置,或者在不同项目间复用,可以这样做:

  • 导出: 在TDE里右键,选择 Save Tolerance Data,保存为.TDF文件。
  • 导入: 右键选择 Load Tolerance Data,加载之前保存的.TDF文件。

这个功能很实用。比如你公司有标准的公差等级(比如「精密级」、「普通级」),你可以提前做好几个.TDF模板,每次新项目直接加载,省去重复输入的麻烦。

好了,关于TDE的布局和基本操作,就讲这么多。下一章,我们会真正开始跑一次公差分析,看看结果怎么解读。记住,TDE只是工具,真正值钱的是你往里面填什么、为什么这么填。我们下章见。