在 LensBench 里,一个镜头的全部状态就是一段 .lens 文本:
title "Cooke Triplet"
aperture EPD 10
field angle 0, 14, 20
wave F, d*, C
surf OBJ T=inf
surf 1 R=22.01359 T=3.25896 glass=SCHOTT:N-SK16
surf 2 R=-435.76044 T=6.00755
surf 3 R=-22.21328 T=0.99997 glass=SCHOTT:F2
surf 4 stop R=20.29192 T=4.75041
surf 5 R=79.6836 T=2.95208 glass=SCHOTT:N-SK16
surf 6 R=-18.39533 T=solve(marginal_height, 0)
surf IMA
var R1..R6
表格(LDE)、文本、命令三者实时同步:你在表格里改一个半径,文本里只变那一个数;AI 用命令改,也只动那一个数,注释和排版原样保留。
为什么这对 AI 重要
- AI 读得懂、写得出。 专有格式的工程文件,AI 只能隔着接口去摸;一段文本,它能完整读进上下文,也能直接写出一个补丁。
- 改动天然可审阅。 AI 的每次修改都是一段 diff,和代码评审一样,看得见到底改了哪几个数。
- 能放进 git、能发给同事。 版本对比、回滚、分享,都不需要专门的工具。
- 写错了有兜底。 语法写错时,诊断会给出错误码、行列位置和修法建议——AI 看得懂,通常能自己改对。
说 Zemax 的话
面号 OBJ=0…IMA,glass 写的是面后介质,长度 mm、波长 µm、点列图 µm,操作数用 Zemax 的名字(EFFL、TOTR……)。对你来说是熟悉的口径;对 AI 来说,大模型学过的大量 Zemax 知识可以直接用上,不必重新学一套词汇。和 Zemax 口径不同的地方都在内核里换算,并有回归测试守着。
玻璃只做精确匹配
牌号按「厂商:牌号」精确匹配,绝不模糊替换成另一块玻璃;同名的牌号有多家厂商时,会提示你写全。AI 写错牌号会直接报错,而不是悄悄换成别的材料。
「设计就是一段文本」在你的实际工作里还能带来什么?有什么顾虑?欢迎在下面聊。