3. 版本控制核心概念
Zemax 文件,说白了就是 .zmx 后缀的那个文件。很多新手设计师觉得它就是个“存一下、打开用”的东西,没什么好讲究的。但我做了这么多年光学设计,见过太多因为文件混乱导致的惨案——改错版本、找不到原始结构、甚至把客户给的参考文件直接覆盖了原稿。
嗯,这一章我们就来聊聊,怎么把 .zmx 文件管得清清楚楚。
3.1 文件保存规范:别让“版本”变成“废纸”
我个人习惯,每个设计项目至少保留三个层级的文件版本:
- 原始稿(Raw):从专利或初始计算直接导入的 .zmx,不做任何优化,只做结构确认。
- 迭代稿(Iter):每次重大优化或结构调整后另存为,文件名带日期或序号。
- 交付稿(Final):最终确认可生产的版本,文件名带“_Final”或“_Release”。
我在项目中遇到过最头疼的情况:一个同事把“最终版”改了又改,文件名全是“最终版_v3_final_真的最终版.zmx”。你想想看,这种文件谁敢用?
我的命名规则建议:
例如:
项目代号_镜头类型_版本号_日期.zmx例如:
PROJ_A_Telephoto_v2.1_20250315.zmx
3.2 结构树命名规范:让每个面都有“身份证”
打开 Zemax 的结构树,如果看到一堆“面 1、面 2、面 3……”,我基本可以判断这个设计师还没入门。结构树命名,说白了就是给每个光学面一个清晰的身份标签。
| 面序号 | 推荐命名 | 说明 |
|---|---|---|
| 0 | OBJ | 物面,固定命名 |
| 1 | L1_S1 | 第一片透镜的第一个面 |
| 2 | L1_S2 | 第一片透镜的第二个面 |
| 3 | STO | 光阑面,固定命名 |
| 4 | L2_S1 | 第二片透镜的第一个面 |
| 5 | L2_S2 | 第二片透镜的第二个面 |
| … | … | … |
| N | IMA | 像面,固定命名 |
为什么要这么干?有一次我接手一个老项目,结构树里全是“面 5、面 6、面 7”,我根本分不清哪个是胶合面、哪个是空气间隔。后来我花了整整一天,对着图纸一个一个核对。从那以后,我给自己定了个规矩:每个面命名不超过 8 个字符,但必须能一眼看出它属于哪片透镜。
核心原则:
- 物面、像面、光阑面使用固定命名(OBJ、IMA、STO)
- 透镜面使用“透镜编号_面序号”格式(L1_S1、L2_S2)
- 非球面、衍射面等特殊面在命名后加后缀(如 L3_S1_Aspheric)
- 物面、像面、光阑面使用固定命名(OBJ、IMA、STO)
- 透镜面使用“透镜编号_面序号”格式(L1_S1、L2_S2)
- 非球面、衍射面等特殊面在命名后加后缀(如 L3_S1_Aspheric)
3.3 注释规范:写给未来的自己看
Zemax 的注释功能,很多人根本不用。但我告诉你,注释是设计文件里最值钱的部分。为什么?因为三个月后你再看自己的文件,大概率会忘记当初为什么选这个曲率、为什么用这个玻璃。
我一般在以下位置加注释:
- 评价函数编辑器:每个操作数后面加注释,说明这个约束的目的。比如“TOTR 控制总长不超过 120mm”。
- 多重结构编辑器:每个结构组加注释,说明对应的工作条件。比如“Zoom Position 1: Wide Angle”。
- 镜头数据编辑器:在关键面(如非球面、胶合面)的“注释”列写清楚材料牌号或特殊工艺要求。
我曾经踩过的坑:
有一次优化一个变焦镜头,我在多重结构里加了 5 个变焦位置,但没写注释。两周后回来继续优化,完全想不起每个位置对应什么焦距。最后只能重新测量一遍,白白浪费了半天时间。从那以后,我强制自己在每个结构组的第一行写注释。
有一次优化一个变焦镜头,我在多重结构里加了 5 个变焦位置,但没写注释。两周后回来继续优化,完全想不起每个位置对应什么焦距。最后只能重新测量一遍,白白浪费了半天时间。从那以后,我强制自己在每个结构组的第一行写注释。
3.4 知识结构图:Zemax 文件规范全景
下面这张图,是我自己总结的 Zemax 文件规范核心框架。你可以把它打印出来贴在工位上。
3.5 避坑指南:我踩过的那些雷
最后,分享几个我亲身经历过的教训:
- 不要用中文路径和文件名:Zemax 对中文支持不稳定,我曾经因为文件名带中文导致宏脚本读取失败,排查了整整一上午。
- 保存前检查“单位”和“波长”:有一次我保存文件时用的是毫米,同事打开时默认是英寸,结果整个镜头尺寸全错了。现在我在文件注释第一行就写“单位:mm”。
- 定期清理临时文件:Zemax 会自动生成 .ZDA、.CFG 等临时文件。我习惯每周五下班前清理一次,保持工作目录清爽。
我的小习惯:
每次保存 .zmx 文件前,按 Ctrl+Shift+S 另存为一个新版本。这样即使改错了,也能随时回退到上一个版本。别问我怎么知道的——问就是血的教训。
每次保存 .zmx 文件前,按 Ctrl+Shift+S 另存为一个新版本。这样即使改错了,也能随时回退到上一个版本。别问我怎么知道的——问就是血的教训。