4、系统建模入门:在Code V和Zemax中分别建立单透镜、双胶合透镜等简单系统,对比初始参数输入、波长/视场/孔径设置的方法差异

光学设计软件的学习路径中,系统建模是第一道门槛。无论是Code V还是Zemax(现为Ansys Zemax OpticStudio),其核心目标都是将光学设计意图转化为可计算的数值模型。然而,两款软件在交互哲学上存在显著差异:Code V更偏向命令行与脚本驱动,强调精确控制与批量处理;Zemax则更依赖图形化界面与向导式操作,强调直观反馈与快速迭代。本章将以单透镜和双胶合透镜为对象,逐步拆解两款软件在初始参数输入、波长/视场/孔径设置上的具体操作差异,帮助读者建立跨平台迁移能力。

Code V vs Zemax 系统建模流程对比 Code V 建模路径 1. 命令行输入 > S1 Y 0 0 0 10 5 BK7 2. 波长/视场/孔径 WAVL 0.486 0.588 0.656 3. 系统参数 DIM M / SYS 0.5 / FOV 0 10 20 4. 执行与检查 GO / LIS / SPS 5. 优化准备 AUT / 设置变量与约束 Zemax 建模路径 1. 系统选项 System Explorer → 孔径/单位 2. 波长设置 Wavelength → 选择F,d,C 3. 视场设置 Field → 角度/物高 4. 镜头数据 Lens Data Editor → 输入面参数 5. 优化准备 Merit Function → 变量设置 核心差异:Code V 以命令行为中心,Zemax 以数据表为中心

上图从宏观流程上展示了两款软件建模路径的差异。Code V的建模过程如同“对话式编程”,每一步都需要通过命令行明确告知系统;而Zemax则更像“表格填写”,用户在预设的编辑器中逐项输入。这种差异不仅影响操作习惯,更决定了后续优化策略和自动化程度的实现方式。下面我们将从单透镜建模开始,逐步深入。

4.1 单透镜建模:从零开始的第一步

核心原理:单透镜是最简单的光学系统,仅包含两个折射面(前后表面)和一个光阑面。建模的核心在于正确输入曲率半径、厚度、玻璃材料以及系统的基本参数(波长、视场、孔径)。两款软件虽然界面不同,但底层光学追迹原理一致,均基于近轴光学和Snell定律。

操作流程对比:

步骤Code V 操作Zemax 操作
1. 新建系统命令行输入 NEW 或使用菜单 File→NewFile→New,选择“Sequential”模式
2. 输入面参数使用 S1 命令定义表面,如 S1 Y 0 0 0 10 5 BK7 表示第1面为球面,曲率半径10mm,厚度5mm,材料BK7在Lens Data Editor中,依次填写Surface 1的Radius=10, Thickness=5, Material=BK7
3. 设置光阑使用 STO 命令指定光阑面,如 STO 1在Surface Type列选择“Stop”或右键设置光阑面
4. 定义像面使用 IMG 命令,如 IMG 3 指定第3面为像面在最后一行Surface Type选择“Image”
5. 保存WRI filename.lenCtrl+S 保存为 .zmx 文件

案例拆解:假设我们需要设计一个焦距为50mm的单透镜,工作波段为可见光(F,d,C),视场角±10°,入瞳直径10mm。在Code V中,我们首先通过 DIM M 设置单位为毫米,然后输入 S1 Y 0 0 0 50 3 BK7 创建前表面,再输入 S2 Y 0 0 0 -50 0 创建后表面(厚度为0表示紧贴像面)。接着设置 WAVL 0.486 0.588 0.656 定义三个波长,FOV 0 10 20 定义视场(0°、10°、20°),SYS 0.5 设置入瞳半径5mm。最后执行 GO 进行光线追迹,查看 LIS 列表输出像差数据。

在Zemax中,同样的系统通过System Explorer设置入瞳直径10mm,Wavelength选择F,d,C(0.486, 0.588, 0.656μm),Field设置角度0°、10°、20°。然后在Lens Data Editor中,Surface 1的Radius=50, Thickness=3, Material=BK7;Surface 2的Radius=-50, Thickness=0。点击“Update”按钮即可看到3D光路图。

经验提醒:Code V中 S1 Y 0 0 0 50 3 BK7 的语法含义为:S1(表面序号)、Y(球面类型)、0 0 0(偏心与倾斜)、50(曲率半径)、3(厚度)、BK7(材料)。初学者常混淆曲率半径的正负号约定——Code V中正半径表示球心在表面右侧,Zemax中则相反。务必在建模前确认符号规则。

4.2 双胶合透镜建模:多面协同与材料组合

核心原理:双胶合透镜由两个不同材料的透镜通过胶合面连接,通常用于消色差。建模时需要定义三个折射面(前表面、胶合面、后表面),其中胶合面两侧材料不同。两款软件均支持胶合面定义,但操作细节存在差异。

操作流程对比:

  1. Code V 流程:使用 S1 Y 0 0 0 20 5 N-BK7 定义第一片前表面,S2 Y 0 0 0 -15 3 N-SF5 定义胶合面(注意厚度为第一片透镜的中心厚度),S3 Y 0 0 0 -50 0 定义第二片后表面。胶合面自动识别为两个表面之间的接触面。
  2. Zemax 流程:在Lens Data Editor中,Surface 1 Radius=20, Thickness=5, Material=N-BK7;Surface 2 Radius=-15, Thickness=3, Material=N-SF5;Surface 3 Radius=-50, Thickness=0。Zemax会自动将Surface 2识别为胶合面,因为其前后材料不同。

关键差异点:Code V中胶合面不需要特殊标记,只要相邻表面厚度为0或材料不同即可;Zemax则要求胶合面两侧材料必须不同,否则会报错。此外,Code V允许通过 MER 命令合并两个表面为胶合面,而Zemax通过“Semi-Diameter”列控制通光口径。

参数项Code V 输入方式Zemax 输入方式
波长设置WAVL 0.486 0.588 0.656 或使用 WAVL FDC 快捷命令System Explorer→Wavelength→选择“F,d,C”预设
视场设置FOV 0 10 20 定义角度视场;FOV 0 5 10 定义物高视场System Explorer→Field→选择“Angle”或“Object Height”
孔径设置SYS 0.5 设置入瞳半径;SYS 0.25 设置F/#System Explorer→Aperture→选择“Entrance Pupil Diameter”或“Image Space F/#”
单位设置DIM M 切换为毫米;DIM I 切换为英寸System Explorer→Units→选择“Millimeters”

案例拆解:设计一个焦距100mm的双胶合消色差透镜,工作波段486-656nm,视场±5°,入瞳直径20mm。在Code V中,我们使用 DIM M 设置毫米单位,WAVL FDC 快速定义F,d,C波长,FOV 0 5 10 定义三个视场,SYS 0.5 设置入瞳半径10mm。然后输入表面数据:S1 Y 0 0 0 60 4 N-BK7,S2 Y 0 0 0 -40 2.5 N-SF5,S3 Y 0 0 0 -100 0。执行 GO 后,通过 AXI 查看轴向像差,LON 查看横向像差。

在Zemax中,同样设置入瞳直径20mm,波长选择F,d,C,视场角度0°、5°、10°。Lens Data Editor中依次输入:Surface 1 Radius=60, Thickness=4, Material=N-BK7;Surface 2 Radius=-40, Thickness=2.5, Material=N-SF5;Surface 3 Radius=-100, Thickness=0。点击“Update”后,通过“Analysis→Aberrations→Seidel Diagram”查看赛德尔像差系数。

实战技巧:Code V的 WAVL FDC 命令会自动加载F,d,C三条谱线,而Zemax的预设波长表同样包含这些标准谱线。但Code V支持更灵活的波长权重设置,例如 WAVL 0.486 1 0.588 1 0.656 1 可自定义权重;Zemax则在Wavelength Editor中直接修改Weight列。

4.3 波长、视场、孔径设置的深层差异

核心原理:波长、视场、孔径是光学系统的三大基本参数,它们决定了系统的成像范围、分辨率和光通量。两款软件在参数定义上遵循相同的光学原理,但交互逻辑和默认值存在差异。

判断方法:

  • 波长:Code V使用 WAVL 命令,支持任意数量的波长,且可设置权重;Zemax在Wavelength Editor中操作,同样支持多波长和权重,但界面更直观。
  • 视场:Code V的 FOV 命令支持角度、物高、像高三种模式,通过 FOV TYPE 切换;Zemax在Field Editor中选择“Angle”、“Object Height”或“Paraxial Image Height”。
  • 孔径:Code V的 SYS 命令可设置入瞳直径、F/#、数值孔径(NA)等;Zemax在System Explorer的Aperture选项卡中提供相同选项,但默认使用“Entrance Pupil Diameter”。

案例拆解:假设我们需要比较两款软件在设置“远心物方”系统时的差异。在Code V中,使用 SYS 0.0 0.0 1.0 设置物方远心(入瞳位于无穷远);Zemax中则在System Explorer→Aperture→Aperture Type中选择“Object Space NA”,并设置数值孔径值。这种差异反映了Code V更偏向于通过数值参数精确控制,而Zemax更倾向于通过类型选择简化操作。

风险提示:在Code V中,FOV 命令的默认单位是度(角度视场),如果输入 FOV 0 10 20 表示0°、10°、20°;但在Zemax中,Field Editor的默认单位也是度,但若选择“Object Height”则需输入实际物高(如mm)。跨软件迁移时,务必检查视场类型是否一致,否则会导致系统缩放错误。

4.4 常见误区与总结复盘

核心原理:建模阶段的错误往往在优化阶段才暴露,导致返工。理解两款软件的默认设置和符号规则是避免误区的基础。

常见误区清单:

  1. 符号规则混淆:Code V中曲率半径正负号与Zemax相反(Code V正半径球心在右,Zemax正半径球心在左)。建议在建模前用 LIS 或3D视图验证光路方向。
  2. 厚度方向错误:Code V中厚度正负表示光线传播方向,Zemax中厚度必须为正(除非使用特殊面型)。
  3. 波长单位混淆:Code V默认波长单位为微米(μm),Zemax同样为微米,但部分旧版本可能使用纳米(nm)。
  4. 视场类型不匹配:角度视场与物高视场不能混用,否则系统缩放比例错误。
  5. 孔径类型误选:入瞳直径与F/#是不同定义,若误选会导致光阑位置错误。

总结复盘:通过本章的对比,我们可以提炼出以下核心要点:

维度Code V 特点Zemax 特点迁移建议
交互方式命令行为主,脚本友好GUI为主,数据表驱动Code V用户可学习Zemax的表格操作,Zemax用户可尝试Code V的宏命令
参数输入命令集中,适合批量修改分散在多个编辑器,适合单点修改复杂系统用Code V脚本,简单系统用Zemax GUI
波长设置WAVL 命令灵活Wavelength Editor直观两者均支持权重,但Code V的权重命令更简洁
视场设置FOV 命令支持多模式Field Editor类型选择注意角度与物高的转换关系
孔径设置SYS 命令参数丰富Aperture选项卡预设多确认入瞳直径与F/#的换算

在实际工程中,建议初学者先使用Zemax建立直观认知,再转向Code V学习精确控制。对于复杂系统(如变焦镜头、非球面系统),Code V的脚本能力能显著提升效率;而对于教学演示和快速验证,Zemax的图形化反馈更具优势。无论选择哪款软件,扎实理解光学原理和系统参数定义才是根本。