GUI 指南
从开始菜单打开 LensBench(先进主页),或双击 .lens 文件直接打开它;命令行里 lb gui my.lens 同样。安装见安装。
布局

各区域的位置:
┌ LensBench 文件 ↶ ↷ │ 主页 │ my.lens ● × │ + ● AI(MCP)·Claude 在线 反馈问题 ? ⚙ ┐
├ 镜头 分析 优化 复核 交付 │ ✦ ┤
│ ⊕ ⊖ ☰ ≡ ≡+ │ V 🔒 │ △ ⇄ │ ✓ ⊣ ▦ │ AI │
│ 编辑 ▾ 变量 ▾ 玻璃 ▾ 检查 ▾ │ │
├ 浏览器 ──────┬ 分析视图:布局 / 3D / 点列图 / MTF / …(30 页)────────┬ 右侧栏 ────────────────────┤
│ Cooke Triplet│ │ AI 参数 优化 终端 诊断 历史…│
│ 系统设置 │ │ (启动开着 AI 页) │
│ 面(8) 👁 │ │ │
│ 优化 │ ⌂ ▦ ⬡ │ ▤ ⧉ ⇪ ⚙ ← 浮动导航条 │ │
│ 验收(0) │ │ │
├ 系统设置 ────┼ 镜头数据:LDE 表格 ⇄ DSL 页签 ───────────────────────┤ │
│ 名称 孔径 … │ 表格 │ 镜头 评价函数 验收 报告编排 │ │
├──────────────┴──────────────────────────────────────────────────────┴────────────────────────────┤
│ › 输入命令,如 set 3 R=-21.5 EFFL 50.02 F/5.00 BFL TOTR │
│ ⏮ ◀ ▶ ⏭ ✎ ✎ Σ ⟳ … ← 改动时间线(AI 紫 / 手改绿 / 命令行灰) │
└──────────────────────────────────────────────────────────────────────────────────────────────────┘| 位置 | 是什么 |
|---|---|
| 顶栏 | 顶栏就是窗口的标题栏:空白处按住拖动窗口、双击最大化 / 还原,右端是最小化、最大化、关闭(偏好设置里可换回系统标题栏)。上面有文件菜单(新建、打开、最近打开、保存 / 另存为、关闭当前设计、导入导出 Zemax、素材包;「编辑」「分析」「优化与复核」三个子菜单——没有单独的菜单栏,立即重算、切分析页、优化、签核也在这里;主页、偏好设置、退出)、撤销重做、主页与文档标签(每个设计一个,未保存的带 ●,× 关闭,Ctrl+W)、+ 从模板新建;右侧是连到同一镜头的 AI 在线状态、反馈问题、帮助菜单「?」(键盘快捷键…、检查更新…、关于:版本、引擎构建号、第三方软件声明)、偏好设置、版本号 |
| 功能区 | 上面一排页:镜头(改处方)/ 分析(切分析页、出图)/ 优化(评价函数、变量、局部 / 全局优化)/ 复核(改动、验收、签核)/ 交付(编排、素材包、导出 Zemax),下面是这一页的分组图标按钮,组名带 ▾,点开列出本组全部动作(带文字)。切到「优化」页时底部跟着切到「评价函数」页签 |
| 浏览器(左) | .lens 的大纲:系统设置、面(玻璃、光阑、面型)、优化(变量、默认评价函数、let、op)、验收、视图、交付。单击一项 = 文本跳到那一行(面还会在表格、布局、3D 里选中);👁 在 3D 里隐藏 / 显示那片透镜;右键有该项的常用动作(改这个面、在后面插入面、删除、设为变量、删除这条操作数 / 规格……) |
| 系统设置(左下) | 名称、孔径、视场、波长、玻璃库、光线瞄准,改了就是改那一条系统语句 |
| 分析视图(中) | 30 页分析(见下面「分析」),进设计界面默认先显示 3D 画布(偏好设置里可改成 2D 布局;3D 是可选组件,没装时改成 2D 布局,见安装)。底部的浮动导航条:⌂ 适应、▦ 网格(3D 页是地面网格)、⧉ 复制出版图、⇪ 导出出版图、⚙ 本图选项、▤ 数字页;3D 页另有视角、剖面、测距和「更多」(隐藏所选、全部显示、截图、转台、glTF) |
| 右侧栏 | 页签从左到右:AI(启动就开着它:内置对话与协作,见「AI」)、参数(带「…」的按钮点开的参数表单,边填边预览,见「参数」)、优化(选算法、看 MF 曲线、应用结果,见「评价函数与优化」)、终端、诊断(有错误时带数目)、历史(见「版本历史」)、验收;可以拖宽窄,右上 × 收起(脚本与它们的输出在左边浏览器底下,见「脚本和产物」) |
| 镜头数据(下) | 页签条最前面是 表格(LDE),后面是 .lens 文本的四个页签:镜头 / 评价函数 / 验收 / 报告编排(见「文本编辑器」);别处切到某个文本页签(Ctrl+M、点诊断跳到某行)时表格让开 |
| 命令行(底) | 直接敲命令,写法与 lb 命令行相同(见「命令行」);右边常驻签核状态、组态选择(只在多组态设计时出现,见「多重结构」)与 EFFL / F# / BFL / TOTR |
| 时间线(最底) | 改动日志按时间排成一串图标(见「改动时间线」) |
| AI(功能区右端) | 一个按钮(Ctrl+Shift+A),只占功能区这一行:打开 / 收起右侧的 AI 页(见「AI」) |
表格、文本、浏览器、系统设置是同一段 .lens 文本的几个视图:任何一处修改,其余几处立即同步。 撤销 / 重做(Ctrl+Z / Ctrl+Y 或 Ctrl+Shift+Z)对它们都有效,因为它们共用会话的撤销栈。
主题默认深色,偏好设置里可换浅色(重启后生效)。导出的出版图始终是白底,与界面主题无关。
主页与多个设计
主页(顶栏最左的「主页」标签):从模板新建(单透镜、Cooke 三片式、空白)、打开、导入 Zemax、打开随软件带的参照设计(打开的是 一份副本:随软件带的那份不改,保存时选位置,默认在「文档\LensBench」)、 最近打开的文件、文档。不带文件启动时先进主页。

每个设计一个文档标签,各有自己的撤销历史;切标签就切设计。新建的设计还没存盘,保存时选位置。 关闭有未保存修改的设计(或退出)时会逐个问要不要保存。
功能区
| 页 | 分组 |
|---|---|
| 镜头 | 编辑(插入面、删除面、系统设置、规范化、插入语句)/ 变量 / 玻璃(查玻璃、玻璃替换)/ 检查(check、近轴量、处方表) |
| 分析 | 页面 / 几何 / 像质 / 像差各页 / 出图 |
| 优化 | 评价函数(打开评价函数页签、默认评价函数、加操作数、插入语句)/ 变量 / 优化(局部、全局、停止) |
| 复核 | 改动(版本历史、并入磁盘上的改动、版本对比)/ 验收(验收、加规格、逐条验收)/ 签核 |
| 交付 | 编排(动作与报告的对比评估、热分析、镜片重量、材料数据)/ 素材包(导出、是否过期、核对报告数字)/ 导出(Zemax、出图、导出当前图) |
改设计、出结果的按钮都对应一条命令(与命令行、MCP 同一张表),其余按钮是切到某一页或某个面板;悬停看说明和快捷键。
参数(右侧「参数」页,边填边预览)
带参数的命令——功能区里带「…」的按钮、浏览器右键、命令面板(Ctrl+K)里选的——都在右侧「参数」页里填;没有命令在填时这一页只有一行说明。 会修改设计的命令边填边预览:停一下就在当前设计上试算(不改设计),显示 diff、EFFL / BFL / FNO / TOTR 的变化,并叠出应用后的样子 (3D 画布上是琥珀色线,别的页切到「布局」页叠灰色虚线;只改评价函数、验收这类布局上看不出区别的不叠);点「应用」才真正写入 (可撤销、记进改动日志,与 AI 走同一条路),「取消」什么都不改。
参数名写中文(悬停看说明和命令行里的写法),打开时预填选中的面;必填项没填完时不预览,只说还差哪几项;某一项填错了,离开输入框后 在它下面说怎么改。还没有预览时,下面列这条命令的例子(底部命令行的写法),点一下填进表单。
命令行
窗口底部的命令行(Ctrl+L 跳过去)与终端同一个解析器,写法与 lb 命令行相同,省略文件参数,作用在当前设计上:
set 3 R=-25 --dry-run
insert 2 R=-200 T=1 glass=SCHOTT:F2
spot --rings 8
help solve输入时按命令名补全,↑/↓ 翻历史。结果的首行显示在命令行旁边,完整输出在右侧「终端」页;出错或输出较长时自动切到终端页。 Ctrl+K 按名字或说明搜全部命令。
改动时间线
窗口最底一行把改动日志按时间排成一串图标:下边缘的颜色是来源——紫色 = AI(经 MCP 或内置对话)、绿色 = 手改(界面)、 灰色 = 命令行;撤销了、或没存盘就关掉的改动淡显。镜头存过盘才有改动日志。单击一个图标选中这一条:命令行旁边写出是谁、几点、做了什么, 右侧「历史」页跟着选中;◀ ▶ 逐条前后看,⏮ 跳到第一条,⏭ 回到当前;双击在「历史」页里看这一条(要回到那一版在那里点,先预览)。 右端的「历史 N」按钮打开历史页。
AI(功能区右端的「AI」,Ctrl+Shift+A)
右侧「AI」页顶上分「对话 | 协作」两页。
对话:内置的 LensBench AI。要登录 optic.chat 账号(在浏览器里登录,密码不经过 LensBench;每个账号每天有免费额度), 没登录时页面上有登录卡。AI 在草稿上改、在草稿上算:它调了哪些工具、算出的点列和 MTF 小图都写在对话里;改动先进下面的「AI 的草稿」卡—— 改前改后的关键指标、diff,「对比」把草稿的样子叠在设计上,「按草稿看分析」让分析页按草稿算——你点「接受草稿」才进设计 (可撤销,改动日志里记成 AI),「放弃」什么都不改。连不上服务时说明原因,点「重试」再发一遍。

协作:AI 在你自己的客户端里(Claude Code、Claude Desktop、Cursor、Cherry Studio、Trae……)经 MCP 操作镜头,你在软件里看着它做, 不用账号。协作页管四件事:
- 谁在线:连到同一镜头的 AI 客户端、它几秒前调用了哪个工具(顶栏右侧和 AI 按钮上也有提示)。
- 连接你的 AI 客户端:选客户端,「复制配置」或「写入配置文件」(即
lb mcp-config,先备份原文件),按说明重启客户端。 项目根目录取当前镜头所在的文件夹。 - AI 的改动:改动日志里来自 AI 的条目,点一条在「历史」页里看;「在历史页复核」带上 AI 筛选。
- 交给 AI 的活:诊断并优化、Zemax 对账、整理报告素材——复制带当前文件路径的提示词,贴进你的 AI 客户端 (客户端支持 MCP prompts 时也可以直接在客户端里选同名模板)。
与磁盘同步(AI 和你同时改一个文件)
AI 的 MCP 服务器、桌面端、命令行是各自独立的程序,通过磁盘上的 .lens 和旁边 .lensbench/ 里的改动日志互相看见:
- 别人(AI、另一个窗口、外部编辑器)存了盘:你这边没有未保存的修改时,桌面端直接载入新版本(可撤销),命令行旁边说明是谁改的; 有未保存的修改时,分析视图上方出现同步横幅:「合并…」把对方的改动并进来(先给 diff;两边改的不是同一行时自动合上, 同一行冲突时让你选取磁盘上的还是你的),或「稍后」。
- 保存不会静默覆盖别人的改动:文件在你载入后被别人存过时,保存被拦下,横幅给出「合并…」或「仍然覆盖」。
- 磁盘上的文件被删除或改名:横幅提示「保存」(重新写出当前设计)或「稍后」。
- 你的手改也记进改动日志(AI 下一次调用工具时就知道你改了什么):表格、系统设置、命令都按命令记; 文本编辑器里打字按停顿(默认 4 秒,偏好设置可改)合成一条「手改」;撤销、重做、应用优化结果也都记。
命令行与 MCP 里同样的检查:save 被拦下时用 merge_disk(可先 --dry-run)把磁盘上的改动并进来。
偏好设置与自动保存
顶栏 ⚙(Ctrl+,):主题(深色 / 浅色)、启动时的主视图(3D 画布 / 2D 布局)、界面字号(主题与字号立即生效)、打开文件时也先显示主页、 打字停顿多久记一条手改、是否写在线心跳(让连到同一镜头的 AI 知道桌面端开着)、自动保存恢复副本的间隔、 是否自动检查更新与更新通道(正式版 / 测试版,见下面「更新」)。下面几行是会影响计算的用户级设置,如优化时 MTF 取样上限 (MTF / Strehl 操作数用,默认 256)——与命令行 lb settings、AI(MCP)读同一个文件;只想这一次不同,在命令行里给 optimize --mtf-sampling 512,见评价函数与优化。改了设计总在后台重算分析。
恢复副本:没保存的修改每隔几分钟写一份到镜头旁边的 .lensbench/recovery/(不动你的 .lens 文件); 下次打开同一文件时如果副本和文件不一样,分析视图上方的横幅提示「恢复」或「丢弃」。没存过盘的新设计不写副本。
帮助「?」› 键盘快捷键… 列出全部快捷键(常用的:Ctrl+N 新建单透镜、Ctrl+O 打开、Ctrl+S 保存、Ctrl+Shift+S 另存为、Ctrl+K 搜索命令、Ctrl+L 命令行、Ctrl+M 评价函数、Ctrl+Shift+M 加操作数、Ctrl+Shift+I 插入语句、Ctrl+Shift+O 局部优化);「?」› 检查更新… 见下面「更新」;「?」› 购买 / 升级… 见下面「付费档」;「?」› 关于 是版本、引擎构建号、登录凭证(档位、还剩多久)与第三方软件声明。主页上从「?」进;打开设计后在命令面板(Ctrl+K)里搜「快捷键」「更新」「关于」也能打开。
登录:用 optic.chat 账号(与 AI 页同一个,免费版也要登录);登录凭证联网时自动续。启动时或保存之后凭证无效会盖上登录页(从源码运行时不强制)——在浏览器里登录或填邮箱密码,登录上了自动回到原处;正在跑的优化、分析不打断,等下一次启动或保存。凭证剩不到 24 小时时状态栏提示一次。这个版本停用了、或者这个安装包到期了(登录也没用),不管强制没强制都会盖上同一页,换成「下载新版」「检查更新」;快到期(剩不到 7 天)、或已停用但凭证还没到期时,状态栏各提示一次。关于页写着档位(试用到哪天)、凭证还剩多久、这个版本用到哪天。
付费档:报告素材包、报告数字核对、签核、导出 Zemax 从个人基础版起有,编排的执行从个人高级版起有(名单与命令行、MCP 同一份)。档位不够时这些按钮与菜单项带一把小锁、标着「个人基础版起」;点了不执行,弹一个说明:这是哪一档的功能、那一档有什么、你现在是什么档,没登录时给「登录,开 7 天全功能试用」(新设备第一次登录即开,每个账号、每台设备各一次),登录了给「去购买」(浏览器里打开购买页)与「我已付款,刷新」。公差的蒙特卡洛、自定补偿器这类一条命令里只有一部分收费的不标锁,用到时同样弹这个说明。「?」› 购买 / 升级… 与关于页的「购买 / 升级…」随时打开它。从源码运行时不标锁、不拦。
LDE 表格
| 显示 | 含义 |
|---|---|
22.01359 V(黄底) | 优化变量 |
42.4374 S(蓝字) | solve,显示求解后的有效值;悬停看表达式 |
-50 P | pickup |
5 U | 固定半口径 |
4 STO(蓝底行) | 光阑面 |
model(1.62, 36) V(nd/vd) | 模型玻璃的 nd / vd 是优化变量 |
- 双击、Enter / F2 或直接打字编辑;方向键在格子间移动,Enter 写入后往下一行,Esc 放弃。编辑框里是这一格在文本里的原样写法, 所以可以直接输入
solve(marginal_height, 0)、pickup(2, scale=-1)、SCHOTT:N-BK7。 - 几百个面的设计照样顺:表头贴在顶上,只画看得见的几行;方向键走出可见区域、在 3D / 浏览器 / 文本里选了别的面时,表格滚到那一行。
- solve / pickup 的格改成一个数时先问要不要去掉 solve(「固定为 …」/「保留 solve」);改 solve 里的参数不问。
- 改一格 = 一次
set命令 = 一次最小文本编辑:文本里只有那一个值变化,注释和对齐都保留。 - 输入非法值(如不存在的牌号)会被拒绝,原值不变,命令行旁边显示原因。
- 右键菜单:在前/后插入面、删除面、设为光阑、设为/取消变量(模型玻璃的 nd / vd 也能设为变量)、常用 solve(近轴焦点、最佳焦点; 别的 solve 与 pickup 在「插入语句」窗口里挑种类、填目标,面号和列先填好)、把 solve 固定为当前值、对这个面加操作数(打开「加操作数」窗口,面号先填好)。
- 玻璃格悬停显示解析成的「厂商:牌号」。坐标断点行的偏心 / 倾斜参数显示在注释列,在文本里改。
- 快捷键:Ctrl+I 在当前面后插入,Ctrl+Shift+D 删除当前面。
文本编辑器
底部的文本分四个页签,都是同一份 .lens 文本按语句分出来的几行,在哪个页签改都只改那几行:
| 页签 | 哪些行 |
|---|---|
| 镜头 | title units aperture field wave surf var config mc 等其余全部语句(含写错、认不出的行) |
| 评价函数 | op let default;页签顶上是优化工具条(见「评价函数与优化」) |
| 验收 | spec |
| 报告编排 | view(每种图的选项)、pack(素材包里放什么、按什么顺序)、action / report(要试的改动与改完要看的评估项,见编排) |
- 空行和只有注释的行跟着它下面那条语句走(文件末尾的跟着上面那条),所以写在一组语句前面的注释和这组语句在同一个页签。
- 行号是整份文件的行号:诊断、跳转、浏览器、命令行里说的第几行,就是页签左边显示的那个数。
- 在页签里加的新行,插在文件里它在页签中上面那一行之后;加在页签最上面的,插在这一类的第一行之前;页签原来是空的,就加在文件末尾(前面空一行)。改动不改行数时(只改了内容),各行原地替换。 写了别类的语句(比如在评价函数页签里写了
surf)也照写进文件,离开这个页签后它出现在该在的页签里。 - 双击诊断、在浏览器里点一行、在布局 / 3D 里点一个面,都会切到那一行所在的页签。切页签本身不改文件。
- 有错误的页签标题带错误数,如「评价函数(1 错)」。
- 语法高亮;左侧行号,有错误的行号标红。
- 诊断:错误红色、警告黄色、提示蓝色波浪线,悬停显示错误码、说明和"你是不是想写……"。 右侧「诊断」页列出全部诊断,双击跳到对应位置。
- 智能提示(Ctrl+Space,或输入
=、(后自动弹出;op行名字后打空格也弹出):- 补全每一项带说明:行首补语句名(带一句说明);
op后补操作数名,写着类别、说明与单位,按中文说明、Zemax 名也搜得到 (打「入射」找到 RAID);surf行补参数名;glass=后补全部牌号(厂商:牌号)与MIRROR、model(、ideal(;type=后补面型;solve(后补 solve 种类;wave行补谱线名;var行补 R / T 引用;view行先补图型、再补这种图的选项。 op行名字后面:先补位置参数(面号,带玻璃 / STO),再补还没写的参数名(Hy=wave=…,带类型、默认值、含义)、target=/>=/<=与weight=;补了wave=接着补这个设计的波长(序号、λ、主波长),Hy=Hx=补视场,surf=补面。- 参数提示:光标在
op行上时,行上方浮出这个操作数的参数表,正在写的那个高亮,下面是它的类型、默认值与含义,再下面是操作数的说明、 单位与 Zemax 名;别的语句给写法。 - 悬停一行:
op行显示操作数的全部说明与参数(评价函数页另有当前值与贡献),别的语句显示说明、写法与例子。
- 补全每一项带说明:行首补语句名(带一句说明);
- 插入语句窗口(Ctrl+Shift+I;页签条右边的「+ 插入语句…」、功能区的「插入语句…」,按当前页签先选一种):左边是能插的语句—— 变量
var、Solve、Pickup、中间量let、验收规格spec、视图view——右边是这一种的表单:面号从这个设计里挑;solve 按种类 (近轴焦点、F 数、边缘光线高度 / 角度……)填目标,挂在 R 还是 T 跟着种类走;规格先挑种类,再选界限(不大于 / 不小于 / 在…之间 / 目标 ± 公差),只写数时自动补单位(长度 mm 或 µm、角度 deg、百分比 %),多组态设计还可以选在哪个组态上验(每个组态 / 组态 k);视图的表单是这种图现在的选项(开关、下拉、数字), 只写改了的。下面是写进文本的样子;停手片刻就在后台预览(不改设计):diff、动了的 EFFL / BFL / F# / TOTR,改镜头的在布局上叠虚影; 写不进去时说原因。「插入」= 一次对应的命令(vary/set/let-set/spec-add/view-set,可撤销)。功能区与浏览器的 「设为变量…」「加验收规格…」、分析页的「本图选项」、表格右键的「Solve…」「Pickup…」也打开它(相关的字段先填好)。 - 打字停顿约 0.35 秒后整段提交给会话(撤销一步);停顿更久(默认 4 秒)时这一段记成改动日志里的一条「手改」。
分析
改了设计就在后台重算,不卡界面;只算最新一版文本,过期结果丢弃。近轴量、3D 场景随每次修改一起回来(打字时 3D 几乎实时跟手); 分析页只算当前看的那一页(另一个后台线程,慢的分析不挡编辑),评价函数页的 MF 在那一页开着时算。
在算的页写「正在算「PSF」… 已算 N s」并数着走;有的页第一次要算十几秒(PSF、图像仿真),切到别的页不会打断它,算完回来就有。 某种分析在这个设计上算不了(如偏心系统没有近轴出瞳)时,只在那一页左下角写原因,其余页照常。 文本改了而新结果还没回来时,各页右上角挂黄色「过期」牌子,旧图留在原处便于对比。 每种分析按分析键(模型 + 该分析的取样参数)缓存:改一个 view 的取样选项只让那一页过期、只重算那一种; 改名称、注释、对齐或纯显示选项(如点列方框边长)什么都不重算。

| 页 | 内容与操作 |
|---|---|
| 布局 | YZ 截面,按实际光线半口径画;镜片填色(两面口径不同时按 Zemax 画法平延成台阶),每视场一种颜色。滚轮缩放、拖动平移、双击适应窗口;悬停显示该面 R / T / 玻璃 / 半口径 / 边厚,单击选中该面(见下方联动)。相邻镜片穿模或边厚为负时相关的面标红并在左下角列出 |
| 3D | 默认的启动主视图(偏好设置可改成 2D 布局)。深色渐变底、镜头下方的地面网格、右上角的坐标轴(点哪个轴就沿哪个轴看);每片透镜一种玻璃色,半透明(深度剥离,前后关系正确),带轮廓线与高光;反射镜银灰、光阑画圈、像面上画 3:2 传感器矩形(内接于最大像高圆);被挡的光线画到挡它的面为止;镜片边缘画 45° 保护倒角(宽 min(0.3 mm, 边缘半径 3 %),在通光口径之外,只是显示)。鼠标:左键点选面(联动表格与文本)、右键拖动旋转、中键平移、滚轮朝光标缩放(画布左上角有提示)。底部浮动导航条:适应(缩放到全部可见)、等轴测、YZ / XZ(YZ 与 2D 布局同向:z 向右、y 向上),切视角时缓缓转过去;后面四个按钮切显示模式——实体 + 线框(默认)、半透明实体(不描棱线,看光线穿过镜片)、不透明实体(实心,看外形与装配,玻璃里的光线被挡住)、仅线框(只画按玻璃色描的棱与口径圈),选的那档下次打开照旧。浏览器里每片透镜行末的 👁 在 3D 里隐藏 / 显示它。命令预览、优化结果、AI 草稿点「对比」时,改后的样子用琥珀色线叠在 3D 上 |
| 点列图 | 每视场一个子图,各波长分色,坐标相对主光线(像面局部坐标,µm);所有子图同一比例、联动缩放;标题给各波长 RMS,悬停看单点坐标 |
| 点密度 | 每视场一格,几十万条光线落点的能量密度伪彩(平方根刻度),同一方框、联动缩放,白色虚线是艾里圆;左上角「对数」按钮看弱的弥散(只改显示),悬停读相对密度 |
| 包围能量 | 各视场一条曲线 + 衍射极限点线,圆点标 80 % 能量半径;拖动竖线,标题读出该半径上各视场的包围能量 |
| 相对照度 | 相对照度(实线)、透过的光瞳占比(虚线)、cos⁴θ 参考(点线)随视场;标题给最低值与有效 F 数 |
| MTF 随视场 | 几个频率上子午(实线)/ 弧矢(虚线)MTF 随视场;频率、视场点数与取样用「选项…」写成 view mtf_vs_field;标题印取样,取样不足时红字提示 |
| 离焦 MTF | 一个频率上各视场 MTF 随像面离焦,顶端三角标最佳焦面(空心 = 在扫描范围外),标题列出各视场最佳焦面 |
| 网格畸变 | 理想网格虚线、实际网格实线,格点按畸变着色(桶形蓝、枕形红);左上角「放大 ×10」看小畸变的形状(只改显示),悬停读格点畸变 |
| 图像仿真 | 理想像与仿真像并排、联动缩放;默认看相对视场 0.7 附近一小块的西门子星(像差的模糊与彩边),「选项…」里可换整个视场、换测试图 |
| 近轴 | EFFL、BFL、F/#、入瞳/出瞳、总长等(Zemax System Data 口径);偏心/倾斜系统显示"不可用" |
| RMS 表 | 各视场 × 各波长 RMS、复色 RMS / GEO |
| 光扇 | 每视场一行:左子午(vs PY)、右弧矢(vs PX),各波长分色,纵轴全部联动;悬停曲线上的点,布局与点列图同步高亮这条光线(见「联动」) |
| MTF | 子午实线、弧矢虚线、衍射极限点线;拖动竖线,标题实时读出该频率下各视场的 T / S 值;标题印取样(默认自动,view mtf sampling=256 固定),取样不足时红字提示 |
| 场曲畸变 | 左场曲(T 实线 / S 虚线,各波长),右畸变(%),纵轴联动 |
| 纵向像差 | 轴上子午光线与光轴的交点相对像面(mm)vs 归一化光瞳,各波长 |
| 垂轴色差 | 各波长主光线像高相对主波长(µm)vs 视场;点线为最短 − 最长波长,虚线为 ±艾里半径 |
| 色焦移 | 近轴焦点随波长的移动(µm),浅色带为衍射极限焦深 4λF#²,圆点为系统波长 |
| 离焦点列 | 行 = 视场、列 = 像面前后的离焦位置,方框同一比例,标题给复色 RMS |
| Seidel | 逐面 S1–S5、C1–C2 与总和的柱状图(固定色序,悬停读数);数字页另有波像差系数 |
| 足迹 | 各视场光束在某个面上的落点(本面局部坐标)+ 光束轮廓 + 通光半口径虚线圆;view footprint surface=all 每面一格 |
| 波前 | 光瞳上的 OPD 伪彩(蓝 ↔ 红、零为中性灰,色标对称)+ 干涉图;标题给 RMS / P-V,悬停读该点 OPD(λ);view wavefront field=3 换视场 |
| PSF | FFT PSF 伪彩(相对衍射极限峰值,峰值 = Strehl)+ 过峰值的 x / y 剖面与衍射极限艾里点线;左上角「对数」按钮切换对数刻度(只改显示),悬停读强度;view psf field=3 换视场;标题印取样,取样不足时红字提示 |
| 玻璃图 | nd–vd 图:目录牌号小点、本设计的玻璃大点并标牌号;模型玻璃画成菱形、虚线连到最近的目录玻璃;悬停读「厂商:牌号 nd vd」(换玻璃时看附近有哪些);view glass_map catalogs=all |
| 矢高表 | 上:矢高与最佳拟合球;下:相对 BFS 的偏离(µm),两图横轴联动;标题给 BFS 半径、最大偏离与斜率;view sag surface=3 |
| 全视场像质 | 二维视场上的复色 RMS 热图(浅 = 好、深 = 差),视场圆、已定义的视场、最差处;悬停读数;view field_map area=sensor |
| RMS 随视场 | 各波长细线、复色粗线、衍射极限点线;标题给复色最大值与位置;view rms_field data=wavefront ref=chief |
| Zernike | Zernike 系数柱状图(正负分色,不画 Z1),标题给 RMS / P-V(对质心)与拟合残差;悬停读「Z 序号、名称、系数」;view zernike field=3 kind=standard |
| 惠更斯 MTF | 同 MTF 页的画法,由像面上的惠更斯 PSF 求;切到该页才算;view huygens_mtf sampling=64 |
| 惠更斯 PSF | 同 PSF 页的画法,像素在实际像面上(倾斜 / 弯曲像面时与 FFT PSF 不同);比 FFT 慢,切到该页才算;view huygens_psf field=3 sampling=64 |
光扇 / MTF / 场曲畸变 / 纵向像差 / 垂轴色差 / 色焦移 / 离焦点列 / Seidel / 足迹 / 矢高表 / 玻璃图 / RMS 随视场 / 全视场像质 / 波前 / Zernike / PSF / 惠更斯 PSF / 惠更斯 MTF / 点密度 / 包围能量 / 相对照度 / MTF 随视场 / 离焦 MTF / 网格畸变 / 图像仿真 / 3D 切到该页时才计算。 标签按类别排(几何与光线、一阶量与像差、色差与玻璃、衍射与像质、照度与仿真);标签栏左端「页面」菜单按同样的分组直接跳到某一页。
命令行右侧常驻 EFFL / F# / BFL / TOTR。
视图底部的浮动导航条作用于当前页:
| 按钮 | 作用 |
|---|---|
| ⌂ 适应 | 缩放到全部可见(3D 页缩放到镜头与光线,不算地面网格) |
| ▦ 网格 | 坐标图加网格(切页后照样有);3D 页没有这个按钮 |
| ⬡ 3D 视角 | 等轴 / YZ / XZ(只在 3D 页,切视角时缓缓转过去;也可以直接点画布右上角坐标轴的某个轴) |
| 显示模式(四个按钮) | 只在 3D 页:实体 + 线框 / 半透明实体 / 不透明实体 / 仅线框,当前那档亮着,下次打开照旧(见上面分析页表格里的「3D」) |
| ▤ 数字页 | 切到同一份数据的表格,Ctrl+C 复制选区(制表符分隔,可粘贴进 Excel / Word) |
| ⧉ 复制图(Ctrl+Shift+C) | 带图框的出版图放进剪贴板,同时有位图与 SVG(Word 2016 起可直接粘贴 SVG) |
| ⇪ 导出(Ctrl+E) | 出版图存成 PNG(300 dpi)/ SVG / PDF(嵌入字体),走 lb plot 同一条管线并登记证据 |
| ⚙ 本图选项 | 「插入语句」窗口的视图表单:这种图现在的取样 / 显示选项,只写改了的,插入后成为 .lens 里的 view 语句(等价于 lb view-set) |
图框信息块里的证据 id 与 lb plot 给出的相同(模型哈希 + 引擎 + 取样参数),lb evidence <id> 可以复查。
要写报告时用「文件 › 导出报告素材包…」:选一个目录,后台导出图、数字页、处方 / 一阶量 / 验收 / 可制造性表、确定性结论和清单 (十来秒,界面照常可用),完成后可直接打开文件夹;设计改了用「文件 › 素材包是否过期…」查哪些要重新导出。详见 报告素材包。 近轴量与 3D 跟着每次修改几十毫秒回来;各分析页的耗时随设计和取样而定(大视场镜头的相对照度、PSF、图像仿真可能要几秒到十几秒)。
装夹检查
相邻的实体面(玻璃界面、反射镜、光阑)之间:
- 空气间隔在 1.02 × 较大半口径处为负 → 穿模(
W-CLEARANCE); - 透镜在较大半口径处边厚为负、或中心厚为负 →
W-EDGE-THICK。
警告出现在右侧「诊断」页,波浪线标在那一面的 T= 上;反射后的负厚度按传播方向折算,轴上为负的空气间隔(虚光阑等建模手法)不报。 命令行 lb check / lb layout 给出同样的结果。
多重结构
设计里写了 config / mc 行(变焦、多组态,见 .lens 指南「多重结构」一节)时,命令行右侧出现组态选择框(单组态设计不显示):
- 各分析页都在选中的组态上算;换组态后各页先标「过期」再重算。命令行里同样的事用
--config k。 - 评价函数页签的 MF 标「MF(组态 k)」,是当前组态的值;
op行可以用config=k只算某个组态,多组态联合优化。 - 验收页只给判定、不给证据 id(要证据用
lb verify --config k)。 - 布局可以把各组态上下排开:
view layout configs=all。
验收(右侧「验收」页,Ctrl+Shift+V)
列出 .lens 里每条 spec 的值、界限、过 / 不过与来源(与 lb verify 同一份判定:固定的规范取样独立复算,不读 view)。 「添加规格…」= lb spec-add,「删除所选」= lb spec-delete,「重新验收」立即复算;也可以在底部「验收」页签里直接写 spec 行。有 spec 时,MTF(三角标记)、点列图(RMS 着色)、 场曲畸变(畸变界限线)、垂轴色差、色焦移上也画出规格,颜色与这里的结论一致。

- 数从哪来:选中一条,表格下方写出它的来源分析与取样(规范取样就是对应命令的默认取样,比如点列 RMS 来自 「点列图,6 环,参考主光线,复色」=
lb spot)、对应的 Zemax 操作数和证据 id。点「来源」格或双击这一行, 分析视图切到算出它的分析页(那一页按view选项取样,数字可能与验收略有差别)。 - 证据 id:整张验收表一个,与终端里跑
lb verify得到的相同,并已登记进会话(终端lb evidence <id>查得到); 「复制证据 id」放进剪贴板,写报告时引用。 - 多组态设计:按组态分组(
spec … config=all在每个组态上各判一次、config=k只在组态 k 上判,不写 = 当前组态),每组一行表头写 这个组态的结论和它那份证据 id(「复制」放进剪贴板),顶上一句按判定次数说(几条规格、几个组态、共几次判定),顶上的证据是总的那一份; 与lb verify列出的各组态证据 id 相同。 - 可制造性:表格下方列出装夹违例(穿模、负边厚)与透镜边厚小于 0.5 mm 的提醒(没有 spec 也照样列);点一条, 在表格、布局与文本里选中对应的面。只是提醒,不算未过,也不影响
lb verify --strict。
联动
布局 / 3D 里点一个面 ⇄ LDE 表格选中该行 ⇄ 文本里该面的 surf 行浅色高亮(并滚到可见);在浏览器里点一个面效果相同。 反过来,在表格里选行、或把文本光标移到某个 surf 行,布局和 3D 里对应的面也会高亮。

跨图刷选:在光扇页把鼠标停在某条曲线上,这一点对应的那条光线(主波长;子午图是 Px = 0、Py = P,弧矢图是 Px = P、Py = 0) 同时在布局里画成橙色粗线、在点列图对应视场的子图里圈出它的落点,提示框给出 P 与像差值;鼠标离开就清除。 点列图以质心为参考(view spot ref=centroid)、布局开了 fold(压缩大间隔)或某页挂着「过期」时,那一页不画。
版本历史(右侧「历史」页,Ctrl+Shift+H)
AI(经 MCP 或内置对话)改设计、你在命令行或界面里用命令改,每一次都记在镜头旁边的改动日志里(.lensbench/,镜头要先存过盘)。 右侧「历史」页(时间线右端的「历史 N」、双击时间线上的一条也能打开)从上到下是:
- 标题:一共几条改动、当前设计是哪一版(「当前 = #5」;重新打开、没存的改动都丢了时是「当前 = #3 之前」)。右端「○ 叠这一版」: 打开后,选中或鼠标划过的那一版叠在当前设计上——3D 画布上是琥珀色线,别的页切到布局页叠灰色虚线;在列表、曲线或时间线上划过去, 看设计怎么一步步变过来的
- 筛选与搜索:按来源(全部 / AI / 界面 / 命令行,带条数)筛,搜索说明、命令或
#序号 - 指标演变曲线:EFFL、F#、BFL、TOTR 随版本的变化,当前那一版顶上有小三角;鼠标划过看那一版的数
- 列表:按天分组,每天上面一行「今天」「昨天」「10-16 周五」和条数,点它收起 / 展开那一天;一行一条——序号、命令、说明、 时刻(几小时内写「几分钟前」)、谁改的、关键指标的变化;当前那一版标「当前」。撤销了、或没存盘就关掉的改动淡显, 标「没在设计里」(日志里还在,可以找回)
- 选中那条的详情:时间、说明、参数、改前改后的指标、着色的 diff(增行绿、删行红),和三个动作:
- 「⟲ 回到改动前…」「回到改动后…」:整段文本换成那一版,先在右侧「参数」页预览 diff,点「应用」才写入;可撤销,并作为新的一条记进日志。 双击列表里的一条 = 回到那一版之后(同样先预览)
- 「与当前对比」:那一版与当前并排比较一阶量、处方差异(只列变了的面与参数)和像质(各视场复色 RMS、同一频率的子午 / 弧矢 MTF、 最大畸变),变好绿、变差红——即
lb compare(命令行里任意两版都能比:当前、磁盘上的版本、日志里的快照、别的 .lens 文件)。 之后又改了设计时,结果标「当前又改了 · 重新对比」

日志文件变了(比如 AI 在另一个程序里刚改过这个镜头)列表约 2 秒内自动跟上,右下角弹出「设计被改了」的卡片,点「查看改动」直接看那一条。
签核(功能区「复核」页 › 签核;lb signoff):把磁盘上的这一版标记为「已复核」,记下复核人(默认系统用户名)、时间、备注、 模型哈希与验收结论。签过的设计在命令行一栏右侧常驻签核牌子:绿色「已签核」;之后只改了名称 / 注释 / 格式显示「已签核(改过注释等)」; 光学改了显示琥珀色「签核已失效」;点牌子打开右侧「验收」页。有没保存的修改时不能签(签的是磁盘上的那一版)。签核只给人:MCP 里没有这个工具, AI 只能用 signoff_status 查。导出的报告素材包会写明对应的版本有没有签核。
经命令的改动(表格、系统设置、命令)都记;文本页签里打字按停顿合成一条「手改」,撤销、重做、应用优化结果也记(见「与磁盘同步」)。
评价函数与优化(Ctrl+M)
评价函数就是 .lens 里的 op / let / default 行,在底部的「评价函数」页签里直接写(Ctrl+M、功能区切到「优化」页都会打开它)。 评价函数只在这一处改。

- 每行行尾标出当前值与贡献百分比;贡献超过一半的那行底色突出并标「▲ 过半」。
default行标出它展开成几行、合计贡献多少;let行标出值或失败原因。文本改了而新结果还没回来时,旧值变灰、工具条上的 MF 标「过期」。 - 页签顶上的工具条:评价函数值 MF、「默认评价函数…」(在右侧「参数」页里按 Zemax 优化向导填,边填边预览,写成一行
default)、 「加操作数…」、 「优化…」「停止」;下面一行是进度,或者为什么现在不能优化 (还没有评价函数、还没有变量、文本有错误——这时「优化…」是灰的)。 - 还没有评价函数时页签里是一句说明,写一行
op(Ctrl+Space 补全操作数)或点「默认评价函数…」。 - 加操作数窗口(Ctrl+Shift+M;工具条与功能区的「加操作数…」、浏览器与命令面板里的 op_add 都打开它;表格右键「对这个面加操作数…」 先填好面号):左边搜索框 + 按类别排的全部操作数,打名字、中文说明或 Zemax 名都能找(↑↓ 选、Enter 确定);右边是这个操作数的 说明、单位与按规格生成的参数表——面号、波长从这个设计里挑,Hx / Hy 可从视场里挑,空着就是默认值(默认值写在框里)——再选目标 (等于 / 不小于 / 不大于)与权重。下面是拼出来的那一行
op …和现在的值(停手约 0.3 秒后在后台算,与评价函数里那一行同一个数; 不小于 / 不大于时标「✓ 满足」或「✗ 越界」);参数写错时直接说哪里错(如「RAID 没有参数 'Hz'」),「加入」是灰的。 「加入」= 一次op_add(可撤销),窗口关掉,新行出现在评价函数页签里。 - 「优化」页(右侧栏第三个页签):工具条的「优化…」、功能区的「局部优化」(Ctrl+Shift+O)/「全局优化」、命令面板里的 optimize 都切到这一页(功能区的两个按钮预选对应的算法)。先选算法——局部(阻尼最小二乘,从当前设计出发找最近的极小,收敛了就停; 可设最多迭代轮数)或全局(hammer,反复随机扰动再局部优化,跑满时长;30 秒到 4 小时的快捷选项,也可自定义,最长 24 小时)—— 点「开始」。不能优化时(没有评价函数、没有变量)页上写着原因,旁边就有「加默认评价函数…」「设为变量…」,点了切到「参数」页里填。
- 运行时页上是当前最好的 MF、起点 MF、降了多少、已用时间,和 MF 随时间下降的曲线(纵轴对数;悬停读出那一刻的 MF 与求值次数; 好一阵没再降时会写「已经 N 秒没再降」,可以考虑终止)。跑完后,准备(起工作进程、第一次求值)比优化本身长得多、下降的点都挤在 时间轴最后一小截时,横轴改按求值次数;只有起点和终点两个记录时画两个点、写「MF a → b」。「终止」保留目前最好的结果。 切到别的页签(或收起右侧栏)优化照常在后台跑,程序照常用——底部命令行一栏右侧有个小牌子显示进度,点它回到「优化」页; 跑着时页签上写「优化中」。
- 跑完在「优化」页里看结果:MF 前→后与曲线、EFFL/BFL/FNO/TOTR 的变化、diff(改了哪些数),布局页上叠着「改后」的虚影; 点「应用」才写入(可撤销,记进改动日志),「放弃」什么都不改。看不见「优化」页时跑完不会自己切过去,页签写「优化 ✓」、 小牌子换成「优化结果待确认」。优化期间如果你改了镜头,这次结果自动作废。同一时间只跑一个优化。
- 多组态设计的 MF 标「MF(组态 k)」,是当前组态的值(见「多重结构」)。
- 命令照样能用:
op-add/op-set/op-delete/let-set/default-merit(命令行、命令面板、浏览器右键)。

详见 评价函数与优化。
命令面板(Ctrl+K)
列出桌面端可用的全部命令(与 CLI、MCP 同一张注册表;后台任务、生成文档等少数命令只在命令行或 MCP 里),输入关键词过滤。选中后:带参数的命令进右侧「参数」页(边填边预览,见「参数」),没参数的直接执行。
终端
右侧「终端」页与底部命令行是同一个解析器,可以直接敲 lb 命令,省略文件参数,作用在当前会话上:
set 3 R=-25 --dry-run
insert 2 R=-200 T=1 glass=SCHOTT:F2
spot --rings 8
help solve
undo
clear↑/↓ 翻历史。
脚本和产物(浏览器底下)
脚本主要交给 AI 写:让它调 Lens 接口(见在 Python 里用 LensBench)做扫描、统计、自定义的图,结果写成文件; 你在这里看结果。浏览器最底下的「脚本和产物」一节列出设计文件旁边的两个目录:
| 目录 | 放什么 |
|---|---|
scripts/ | 脚本(.py) |
reports/ | 产物:命令出的图(plot 等默认就写在这里)、素材包、脚本的输出(png / csv / md……) |
- 新的在前;展开着时每 5 秒自己刷新(脚本、命令写了新文件就出现),行末 ⟳ 立即刷新。悬停看完整路径、大小、多久以前改的。
- 单击在「产物」窗口里看:图片(默认缩放到窗口里,可切原始大小)、表格(csv / tsv)、文本,脚本按 Python 着色。 svg、pdf 等程序里看不了的,点「用默认程序打开」。右键:用默认程序打开、在文件夹中显示、复制路径。
- 程序里还不能运行脚本:在你自己的 Python 里运行(
python scripts/xxx.py),或者让 AI 运行。设计没存过盘时这一节是空的。
反馈(顶栏「反馈问题」)
遇到问题时导出一个复现包(.lbfb,就是 lb feedback):版本、引擎构建号、操作系统、你的描述、最近的命令与结果 (报错首行、诊断码;崩溃时的异常与调用栈)。设计文件默认不带,勾选「附设计文件(仅用于复现,修复后删除)」才带; 勾选「附当前窗口截图」时把主窗口画面一并放进包里(截图可能露出设计内容,同样默认不带;命令行是 --screenshot 图片)。 不联网:导出成文件,发给谁由你决定。收到的人用 lb feedback-replay x.lbfb 无界面重放,判定复现 / 不复现 (拿包里的设计,把在这一版设计上失败或崩溃过的命令按原参数再跑一遍)。
更新(? › 检查更新…)
启动后十秒左右自动检查一次有没有新版本(每天最多一次;偏好设置里可关,关掉后启动时不再自动查更新;从源码运行时也不自动检查)。 有新版本时分析视图上方出现「更新」横幅:更新…(看更新说明、下载、安装)、稍后、跳过这个版本(自动检查不再提示这一版, 更新的版本照常提示;标明「必须的更新」的版本没有这个按钮)。停在主页时等进了设计界面再显示;点横幅上的按钮之前,换设计也一直挂着。 自动检查失败(断网、服务器不通)或已是最新时不打扰。检查和下载都在后台跑,网络慢或断网时照常打字、改设计。 下载到一半就退出了程序,没下完的文件在下次检查更新时清掉。
帮助「?」› 检查更新… 随时手动检查(主页上也能点;命令面板、命令行里的 update 也走这里):已是最新、检查失败 (连不上、签名校验不通过……)都会弹窗说明;有新版本时直接打开更新窗口,跳过的版本也照常显示。
更新窗口:版本、日期、大小与更新说明。点 下载 才下载(进度条;关掉窗口即取消),下载完核对大小与 SHA-256,不符就删掉、不安装; 没下成时按钮变成 重新下载,旁边写着原因。通过后按钮变成 安装:安装要退出程序——有没保存的设计时先列出来问你 (放弃修改并安装 / 取消;要留着修改就先取消、保存了再装),选「取消」就不更新、程序照常开着(安装包留在本机, ? › 检查更新… 可以再装);没有没保存的设计或选了放弃,才运行安装包并退出,装完自动重新打开。安装包没起来(没同意管理员权限、 启动前复核不过)时弹窗说明,程序照常开着。从源码运行时只报告、不下载(源码用 git pull 更新)。 检查更新只向 optic.chat 发 GET 请求,带软件版本号,不带设计、使用数据和机器信息。 更新通道在偏好设置里选;从测试版改回正式版不会降级——装着的测试版照用,等出了比它新的正式版才提示更新。 命令行同一件事是 lb update(--download 下载并校验,--channel beta 测试版通道)。
文档(F1)
应用内浏览使用文档(安装、五分钟上手、GUI 与优化指南、出图、报告素材包、DSL / 命令 / 诊断码 / 操作数参考、Zemax 对照、验证),默认打开 DSL 参考,文档间链接可点击。