设计就是一段文本:为什么 .lens 是 AI 原生的地基

在 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 写错牌号会直接报错,而不是悄悄换成别的材料。


「设计就是一段文本」在你的实际工作里还能带来什么?有什么顾虑?欢迎在下面聊。