诊断码
每条诊断都带稳定的码,编辑器标红、CLI 输出、MCP 返回里都一样。前缀 E- 错误(阻止构建/编辑),W- 警告(能算但可疑),I- 提示(已自动处理)。
| 码 | 含义 | 怎么处理 |
|---|---|---|
E-ACTION-ARG | action 步骤的参数写错 | set <面号> key=value …(面号要在设计里,参数同 surf 行);system "<系统语句>";refocus 不带参数;optimize [cycles=N]。 |
E-ACTION-STEP | action 的步骤不认识或缺少 | 写成 action <动作名> <步骤> [参数 …],一行一步;步骤:set system refocus optimize(见 docs/reference/lens-dsl.md 的 action 一节)。 |
E-AGF-FILE | AGF 文件不存在 | agf 的路径相对镜头文件所在目录;未保存的镜头相对当前目录。 |
E-ANALYSIS | 这项分析在这个系统上算不了 | 常见原因:有的视场光线追不到像面(孔径 / 视场过大、渐晕)、折转或倾斜系统没有近轴量(波前、MTF、Strehl 等基于出瞳的分析也就没有),实际像高视场求解不收敛。看消息里的原因;lb check 看诊断,点列图、光扇等实际光线分析通常照常可用。 |
E-APERTURE | 孔径设置不完整 | aperture float 需要在光阑面写 semi=。 |
E-ARG | 位置参数不对 | 数量或写法不符合该语句的语法,见 lb help <语句名>。 |
E-ASPH | 非球面项与面型不符 | aN 需要 type=evenasph(只许偶次)或 type=oddasph。 |
E-CALL | 不认识的函数 | 该列只接受数字、solve(...) 或 pickup(...)。 |
E-CB | 坐标断点写法不对 | dx/dy/tx/ty/tz/order 只用于 type=coordbreak;坐标断点面不能有半径、玻璃、solve,不能是物面/像面/光阑。 |
E-COMP | 补偿器写法不对 | 写法同 var:comp T6 R5 K3(只支持 R / T / K),面要存在;不补偿写 comp none。 |
E-DUP | 重复 | 同一参数或单次语句写了两次。 |
E-EDIT | 编辑无法执行 | 看消息说明,如删除光阑面、插在像面之后等。 |
E-EQ | 多余的等号 | 等号前缺参数名;参数写成 key=value,如 R=25(等号两侧的空格可有可无)。 |
E-EXPR | 表达式写法不对或用了不允许的东西 | 表达式认数字、向量 [0 0.5 1]、区间 0:0.25:1、行名(op 的 name=)、+ - * / ^(也认 ** .* ./ .^)、数学与归约函数(abs sqrt sin cos … max min sum mean rms std …)、操作数调用(EFFL()、RSCE(ring=3, Hy=0:0.5:1),参数名照操作数参考);不能有字符串、属性、下标、其他函数。完整写法见 docs/optimization.md「表达式」。 |
E-EXPR-LIMIT | 表达式超出资源上限 | 防止别人分享的文件用表达式耗光 CPU / 内存:不超过 400 字符、括号不超过 12 层、不超过 160 个节点;乘方的指数必须是 ±16 以内的数字(x^2 可以,2^2^2 要加括号,x^y 不行);数字绝对值不超过 1e12;向量不超过 1001 个元素、展开后的操作数求值不超过 512 次(后两条在求值时检查)。 |
E-FIELD-TYPE | 视场类型冲突 | 所有 field 行类型必须一致;物在无穷远时只能用 angle。 |
E-GLASS | 玻璃写法或牌号不对 | 用 lb glass <关键词> 搜索牌号;同名多厂商写成 厂商:牌号。 |
E-GLASS-FILE | 材料文件不存在 | 路径相对于内置材料库 data-nk/,如 main/CaF2/Malitson.yml。 |
E-GLASS-MODEL-RANGE | 波长超出模型玻璃色散模型的范围 | model(nd, vd, polynomial) 只在 0.38–0.75 µm 有定义,引擎在范围外算不出折射率:去掉第三个参数改用默认的 buchdahl,或换用覆盖该波段的牌号。 |
E-GLASS-VENDOR | 玻璃厂商不认识 | 可用厂商见 lb glass 的输出(SCHOTT / OHARA / CDGM / HOYA / HIKARI / SUMITA …)。 |
E-HEAD | 语句名不认识 | 行首必须是 title / units / aperture / field / wave / catalogs / ray_aim / surf / var 之一。 |
E-IMA | 像面写了不该写的参数 | 像面不能有厚度、玻璃、solve。 |
E-KERNEL | 引擎构建失败 | 通常是几何不可行(光线无法通过、全反射、视场/孔径过大),看消息里的异常。 |
E-KEY | 参数名不认识 | 看提示里的近似名;surf 可用 R C T glass k semi type comment aN。 |
E-KWARG | key= 后缺值 | 写成 key=value,如 T=5。 |
E-LET | let 写法不对 | 写成 let 名 = 表达式;名字以字母或下划线开头,不能与函数(max、sin…)、常数 pi、操作数(EFFL…)或 op 行的 name= 重名,也不能重复定义。表达式能引用 op 行的 name= 和别的 let,写在前后都行(按依赖求值)。 |
E-LET-CYCLE | let 循环引用 | let 按依赖求值、写在哪里都行,但不能互相依赖成环(a 用到 b、b 又用到 a,或 a 用到自己)。诊断里列出环上的名字与行号(箭头 = 用到):把其中一个改成不引用其余的(直接写数或操作数),或删掉多余的那一个。 |
E-LICENSE | 没有有效的登录凭证,计算被拦下 | lb login(浏览器登录)或在桌面端登录 optic.chat 账号,登录后自动领取 7 天的登录凭证;已登录但凭证过期了:联网后 lb license --refresh。本机时钟往回拨过也会这样,校准系统时间后再验证。消息说「这个版本已到期」时登录也没用:每个版本有到期日(lb license 可看),到 https://optic.chat/download/ 下载新版。只拦计算,改文本、保存、帮助照常;不会算出错的数。 |
E-MC-CONFIG | 没写组态数或组态不存在 | mc 行前面加一行 config <组态数>;命令里与 op 行 config= 的组态号在 1 到组态数之间。 |
E-MC-COUNT | mc 的值个数与组态数不同 | 每个组态一个值,用逗号分开,第一个是组态 1。 |
E-MC-DUP | mc 行重复 | 同一个参数只写一行 mc。 |
E-MC-REF | mc 的引用写法不对 | 写法同 var:R4 / T4 / K4,其他面参数写 参数@面号(glass@6、semi@3、a4@5、tx@4);视场 field@2 / field_x@2 / field_w@2,波长 wave@1 / wave_w@1;aperture;weight。 |
E-MC-SOLVE | mc 控制的参数有 solve / pickup | 两者只能留一个:把 solve / pickup 写成数值,或去掉这行 mc。 |
E-MC-TARGET | mc 控制的对象不存在或不适用 | 面号 / 视场 / 波长序号要存在;参数要适用于该面型(如 tx 只用于坐标断点、a4 要非球面);像面没有厚度和面后介质;物面只能控制物距 T0。 |
E-MC-VAR | mc 控制的参数不能这样当变量 | mc 控制的 R / T / K / aN 标 var 时,每个组态的值各是一个变量(变焦间隔);其他参数与 mc 控制玻璃的面的 nd@ / vd@ 不支持,去掉 var 或去掉这行 mc。 |
E-OP | 操作数不认识或缺失 | op 后写 Zemax 操作数名,如 EFFL / TOTR / MNCT / RSCE;全部见 docs/reference/operands.md。 |
E-OP-CMP | 不等式写法不对 | 只支持 <= 与 >=(边界本身算满足),后面跟数值,如 op TOTR <= 62。 |
E-PACK-ITEM | pack 的素材条目不认识 | 条目是表(prescription paraxial verify manufacturing)、图型(同 view)或 conclusions;见 docs/reference/lens-dsl.md 的 pack 一节,按提示里最接近的名字改。 |
E-PAREN | 括号不配对 | 检查 solve(...) / pickup(...) / (x, y) 的括号。 |
E-PATH-ROOT | 路径在项目根目录之外 | MCP 服务器只读写项目根目录(启动时的目录或 --root 指定)里的文件,按解析 ..、符号链接、目录联接之后的真实位置判断。改用项目内的路径(相对路径以项目根为基准);确实要用别处的文件,把它复制进项目目录,或用 --root 指定更大的项目根目录后重启服务器。 |
E-PICKUP | pickup 不合法 | 源面必须存在且不是自己:R=pickup(2, scale=-1)。 |
E-RANGE | 数值超出合理范围 | 如 R=0、负的权重、≥90° 的视场角。 |
E-REPORT-ITEM | report 的评估项不认识或缺少 | 写成 report <报告名> <评估项> [选项=值 …],一行一项;评估项:optics thermal weight material verify manufacturing tolerance(见 docs/reference/lens-dsl.md 的 report 一节)。 |
E-REPORT-KEY | report 评估项的选项不认识 | 每种评估项的选项见参考(如 thermal 的 temp= steps= ref= housing= pres= freq=);按提示里最接近的名字改,或删掉。 |
E-SOLVE | solve 不合法 | solve 种类必须挂在对应的列上:厚度列 marginal_height / chief_height / focus,曲率列 marginal_angle / chief_angle / fnum。 |
E-SPEC-BOUND | spec 缺少或写错界限 | 写 min=、max=,或 target= 加 tol=(tol 可写绝对值带单位,或百分比如 1%)。 |
E-SPEC-CONFIG | spec 的组态号不存在 | config= 的组态号在 1 到 config 语句写的组态数之间;每个组态都验写 config=all,在当前组态上验就不写 config=(单组态设计不用写)。 |
E-SPEC-KEY | spec 的参数不认识或不适用 | min / max / target+tol 是界限;freq / field / dir 只用于像质类规格(见参考)。 |
E-SPEC-KIND | spec 的规格种类不认识 | 种类:efl fno bfl ttl imh cra mtf spot_rms distortion lateral_color focal_shift。 |
E-STOP | 光阑设置不对 | 只能有一个光阑面,且不能是物面/像面。 |
E-STR | 字符串未闭合 | 双引号字符串缺少结尾的 "。 |
E-SURF-APERTURE | 表面口径写法不对 | surf 的 aperture= 取 circular(max) / circular(min, max) / obscuration(max) / obscuration(min, max) / rectangular(x 半宽, y 半宽) / float,口径偏心写 dx= dy=;半径为正且 min < max(Zemax 顺序:Min Radius, Max Radius);物面与坐标断点面不能有口径。 |
E-SURF-COUNT | 面太少 | 至少要有 surf OBJ 和 surf IMA。 |
E-SURF-ID | 面号写法不对 | surf 后写数字、OBJ、STO 或 IMA。 |
E-SURF-NUM | 面号与位置不符 | 面号就是位置(OBJ=0)。插入/删除面请用 lb insert / lb delete,会自动重编号。 |
E-SURF-PARAM | 参数与面型不符 | rx 只用于 type=toroidal(旋转半径),f 只用于 type=paraxial(理想薄透镜焦距),tanx / tany 只用于 type=tilted(倾斜平面);理想薄透镜要写 f=,不能有 R / k / 非球面系数 / MIRROR;倾斜平面不能有 R / k / 非球面系数 / solve;m / norm / pN 只用于 type=binary2(衍射面),写了相位项 pN 就要写归一化半径 norm=,pN 只有偶数幂次(p2 p4 …),衍射面暂不支持 MIRROR;lines 只用于 type=grating(衍射光栅要写线密度 lines=1200/mm,基底只能是标准面)。 |
E-TELECENTRIC | 物方远心的前提不满足 | aperture … telecentric 要求物距有限、视场不是角度(用 object_height 或像高类)、孔径用 NA,如 aperture NA 0.1 telecentric。 |
E-TIER | 这项功能要更高的档位 | 免费版只做学习与评估(非商业):交付类(素材包 pack、报告核对 check_report、签核 signoff、导出 zmx export_zmx)与公差的蒙特卡洛、自定补偿器从个人基础版起有,编排(action_run、report_run)从个人高级版起有。在 optic.chat 购买个人版,付款后 lb license --refresh(或重新登录)即生效;新设备第一次登录有 7 天全功能试用。只拦这一项,设计照常能打开、编辑、做单步分析;不会算出错的数。lb license 看现在的档位。 |
E-TOL | tol 写法不对 | 写成 tol <种类> <面号 / 范围> <±公差 或 下限..上限>,有量纲的写单位:tol radius 1..6 ±2fr、tol thick 3 ±0.02mm、tol tilt 1..2 ±0.02deg;另有 tol criterion rms_spot / rms_wave / mtf(MTF 要写频率并带单位:tol criterion mtf freq=30/mm,可加 field= dir= min=)与 tol test_wave 0.6328um。种类见 lb help tol。 |
E-TOL-ABBE | 阿贝数公差在这块材料上没有定义 | 阿贝数按 d、F、C 线定义;红外材料(锗、硅等)在 d 线没有折射率,tol abbe 在它上面不适用(公差分析把这项列进「跳过」)。红外材料的公差用 tol index。 |
E-TOL-TARGET | 公差作用的面不存在或不适用 | 面号在 1 到像面前一面之间;坐标断点没有半径与厚度公差以外的意义,倾斜平面 / 理想薄透镜没有半径;元件写成面号范围 a..b。 |
E-TUPLE | 元组里有 key=value | 元组只能放位置值,如 (3, 20)。 |
E-TYPE | 取值类型不对 | 该处需要数字(或字符串),看提示里的期望类型。 |
E-UNIT | 单位不认识或不允许 | 长度:mm um nm cm m in;角度:deg rad arcmin arcsec;波长:um nm。无量纲量不能带单位。 |
E-UNIT-REQUIRED | 数值必须写单位 | 有量纲的规格 / 视图数值不默认补单位,避免 mm 与 µm 混淆:写成 10um、2%、13deg、50/mm。 |
E-UNSUPPORTED | 暂不支持 | 该功能尚未实现,见 docs/roadmap.md。 |
E-VALUE | 取值不在可选范围 | 看提示里的可选值。 |
E-VAR | 变量引用不对 | 写成 R3 / T6 / K2 / a4@5 / p2@3(衍射面相位项)/ R1..R6;挂了 solve/pickup 的格子不能再当变量。 |
E-VAR-BOUND | 变量上下界写法不对 | 写成 var R1 in 10..100(引用或范围后跟 in 下界..上界);下界要小于上界;半径的界两端要同号(跨过 0 时曲率不连续),要允许正负翻转就不给界。 |
E-VIEW-KEY | view 的选项不认识 | 每种图型的选项见 docs/reference/lens-dsl.md 的 view 一节。 |
E-VIEW-KIND | view 的图型不认识 | 图型列表见 docs/reference/lens-dsl.md 的 view 一节(lb help view);按提示里最接近的名字改。 |
E-WAVE-PRIMARY | 主波长不唯一 | 只能有一个波长带 *。 |
E-ZMX-FIELD | zmx 视场类型不支持 | 目前支持角度、物高、近轴像高、实际像高。 |
E-ZMX-NSC | Zemax 非序列模式的文件 | LensBench 只做序列光学;非序列(NSC)模式的 zmx 里,设计在非序列元件编辑器里,序列数据只是占位。在 Zemax 里另存为序列模式的设计再导入。 |
E-ZMX-SURF | zmx 面数不足 | 文件里少于两个面;一个面都没有时多半是给错了文件(.lens、Zemax 的 .ZDA 窗口设置),要导入的是 Zemax 存的 .zmx。 |
E-ZMX-SYNTAX | zmx 行无法解析 | 文件可能损坏或是新版格式,请反馈样例。 |
E-ZMX-TYPE | zmx 面型不支持 | 目前支持 STANDARD / EVENASPH / ODDASPHE / TOROIDAL / PARAXIAL / TILTSURF / BINARY_2 / DGRATING / XOSPHERE / COORDBRK;用户自定义面型(USERSURF,DLL)无法导入。 |
E-ZMX-UNIT | zmx 单位不支持 | 支持 MM / CM / IN / M(导入时换算成 mm)。 |
W-AGF-FORMULA | AGF 色散公式不支持 | 支持 Zemax 公式 1–13;该玻璃被跳过。 |
W-AGF-SYNTAX | AGF 行无法解析 | 文件可能损坏或格式较新,该行被跳过。 |
W-ASPH-A2 | 非球面 a2 与曲率重复 | r² 项 a2 与 R 重复:近轴量(EFFL、BFL、近轴 solve、Seidel)只按 R 计算,实际光线含 a2,两者对不上。曲率写在 R 里、去掉 a2。 |
W-CATALOG | catalogs 里有未知厂商 | 该厂商不会被查找。 |
W-CLEARANCE | 相邻镜片穿模 | 两面之间的空气间隔在 1.02 × 较大半口径处为负,镜片或镜框会相撞:加大这段间隔,或减小曲率 / 口径。 |
W-EDGE-THICK | 负边厚 / 负中心厚 | 透镜在较大半口径处边厚为负(或中心厚为负),无法加工:加厚透镜,或减小曲率 / 口径。 |
W-GLASS-RANGE | 波长超出玻璃数据范围 | 折射率将按边界外推,红外/紫外请换数据覆盖该波段的材料。 |
W-MC-BASE | mc 的组态 1 与设计里写的值不同 | surf / field / wave / aperture 行上的值就是组态 1 的;计算按 mc 的值,把两处改成一样即可消除警告。 |
W-PACK-DUP | pack 条目重复 | 同一条目写了多次(可能在不同的 pack 行),只导出一次;删掉重复的即可。 |
W-RAY-PROBE | 探测光线追不到像面 | check 对每个视场追主光线与四条边缘光线(主波长):主光线追不到像面(全反射、没打到面、口径挡住)或某视场四条边缘光线全部追不过去时警告,并指出在哪一面失效。查孔径 / 视场是否过大、曲率与厚度(含反射镜之后的厚度符号)是否让光线无法通过。 |
W-REPORT-DUP | report 评估项重复 | 同一份报告里同一评估项、同样的选项写了两次,只算一次;删掉重复的那行。要比较不同选项(如两种镜筒材料)就把选项写得不一样。 |
W-THICK-SIGN | 厚度符号与传播方向不符 | Zemax 约定:奇数次反射之后光沿 −z 走、厚度为负,偶数次之后为正(如卡塞格林第二面镜之后又为正)。符号写反时下一个面放到了光线的背后,光线追不过去。改成相反数;0 不查。 |
W-VAR-DUP | 变量重复 | 同一变量写了两次,已忽略重复项。 |
W-VIEW-DUP | view 选项重复 | 同一图型的同一选项写了多次,后写的覆盖前面的。 |
W-WAVE-RANGE | 波长不在常见范围 | 0.1–30 µm 之外,多半是单位写错(nm 请写 550nm)。 |
W-ZMX-APERTURE | zmx 表面口径类型不支持 | 椭圆口径 / 矩形遮拦 / 十字支架 / 用户口径等暂不支持,已忽略:这些面不挡光,渐晕可能与 Zemax 不同。支持圆形口径、圆形遮拦、矩形口径、浮动口径与口径偏心。 |
W-ZMX-BINARY | zmx 衍射面参数不完整 | 衍射面有相位项但归一化半径(Extra Data 2)不是正数,相位项已丢掉:在 Zemax 里给 Norm Radius 填一个正数再导出。 |
W-ZMX-DPGF | 模型玻璃的 ΔPgF 被忽略 | .lens 的 model(nd, vd) 不含部分色散偏差 ΔPgF,二级光谱会与 Zemax 略有不同;需要时改用厂商牌号。 |
W-ZMX-FIELDS | zmx 视场列不完整 | FTYP 声明的视场多于 YFLN 给出的值,只导入给出的那些;核对视场设置。 |
W-ZMX-GCAT | 玻璃厂商不在 GCAT | Zemax 可能找不到该玻璃,把厂商加进 catalogs。 |
W-ZMX-GEOM | zmx 偏心/倾斜不支持 | 已忽略,几何可能与 Zemax 不一致(物面的偏心 / 倾斜,以及 SCBD 之外的旧写法)。 |
W-ZMX-GLASS | 材料无法写入 zmx | file(...) 材料没有 zmx 对应写法,已按空气导出。 |
W-ZMX-IGNORED | zmx 指令未解析 | 该指令被忽略,检查导入结果。 |
W-ZMX-SOLVE | zmx solve 重算对不上 | 导入的曲率 solve 在 LensBench 里重算出的半径与 Zemax 存的数值不一致(两边对这种 solve 的约定不同,或 Zemax 文件存的是旧值),已按 Zemax 的数值固化,几何与文件一致。要保留 solve 就用 set 重新设置并核对;若确认是约定差异,请把文件交给开发者核实。 |
W-ZMX-STOP | 光阑从坐标断点挪到了实际面 | Zemax 文件把光阑标在坐标断点上,.lens 的坐标断点不能当光阑,挪到了后面第一个实际面;两者之间有厚度时光阑位置变了,核对入瞳位置。 |
I-APERTURE-DEFAULT | 默认孔径 | 没写 aperture,默认 EPD 10。 |
I-FIELD-DEFAULT | 默认视场 | 没写 field,默认轴上一个视场。 |
I-GLASS-AGF | 玻璃取自 AGF | 该牌号来自 agf 语句加载的 Zemax 玻璃库(优先于内置库)。 |
I-GLASS-AMBIGUOUS | 牌号多厂商同名 | 按 catalogs 顺序取了第一个;写成 厂商:牌号 可钉死。 |
I-GLASS-BUILTIN | 取自内置晶体 / 塑料库 | 公有领域数据(文献见提示),与 Zemax MISC / INFRARED 的值可能略有差异;要与 Zemax 逐位一致请用 agf 语句加载同一份目录。 |
I-GLASS-NO-THERMAL | 材料没有热色散数据 | 热分析里这块材料的 dn/dT 按 0 算,只计空气折射率随温度、气压的变化;要算准就换成厂商目录里带热色散系数的牌号,或用带 TD 行的 AGF。 |
I-GLASS-ZEMAX-DIR | 本机有 Zemax 玻璃库 | 有玻璃找不到时提示本机 Zemax 的 Glasscat 目录;加一行 agf "<目录>" 就能用它的全部厂商目录(含停产牌号,按 catalogs 顺序查找)。不会自动加载。 |
I-GRATING-PARAXIAL | 近轴量不计光栅偏折 | 衍射光栅的偏折是常量,不进近轴(线性)模型:EFFL、F 数、入瞳出瞳、近轴 solve 与 Seidel 按 0 级(只有基底)算;点列、光扇、MTF 等实际光线分析按所写的衍射级次。光谱仪各波长的像点位置用 ray 或点列图看。 |
I-NO-PARAXIAL | 没有一阶模型 | 引擎建不了这个系统的标量一阶模型(常见原因:偏心或倾斜的有焦度面、视场角接近 90°),消息里写了是哪一种:EFFL、F/#、Seidel 等近轴量不可用,点列图、光扇、MTF 等实际光线分析照常;半口径用实际光线计算。 |
I-OP-COLOR-SIGN | AXCL / LACL 按 Zemax 取「波长 2 − 波长 1」 | 与 Zemax 相同:AXCL 是 w2 的像点减 w1 的像点(沿传播方向),LACL 是 w2 的主光线像高减 w1 的。2026-10-17 以前是 w1 − w2:当时写的非零目标值、不等式要反号(如 AXCL <= 0.01 改成 >= -0.01),或者把 w1、w2 对调。目标是 0 的等式不用改。 |
I-OP-SEIDEL-W | Seidel 操作数按 Zemax 的波像差系数计 | SPHA / COMA / ASTI / FCUR / DIST 与 Zemax 相同:W040 = S_I/8、W131 = S_II/2、W222 = S_III/2、W220 = S_IV/4、W311 = S_V/2(主波长的波长数),DIST 面号 0 是百分比畸变(最大视场)。2026-10-17 以前这几个操作数按 S/λ 算:当时写的目标值要换算——SPHA 除以 8,COMA、ASTI 除以 2,FCUR 除以 4;DIST 面号 0 的目标改写成百分比畸变。目标是 0 的不用改(权重的相对比例会变)。 |
I-RAY-PROBE | 部分边缘光线追不到像面 | 主光线能到像面,但有边缘光线在途中失效(全反射、没打到面或被口径挡住)。大视场、大孔径系统常见;若不是有意的渐晕,查孔径 / 视场大小与表面口径。 |
I-STOP-DEFAULT | 默认光阑 | 没写 stop,默认第 1 面为光阑。 |
I-TELECENTRIC-AIM | 物方远心时光线瞄准不起作用 | 与 Zemax 一致:主光线按平行于光轴发出,ray_aim 被忽略;删掉 ray_aim 行即可。 |
I-WAVE-DEFAULT | 默认波长 | 没写 wave,默认 d 线 0.5876 µm。 |
I-ZMX-BINARY | zmx 衍射面 / 光栅按约定补全 | 旧版 zmx 不写衍射级次(Binary 2 的 Par 0),按 1 级导入;衍射级次是 0 的面相位不起作用,按偶次非球面导入;线密度是 0 的衍射光栅按标准面导入。要用别的级次,导入后改 m=。 |
I-ZMX-FROZEN | solve 已固化导出 | 曲率的角度 / F 数 solve、±1 倍的曲率 pickup 与厚度 pickup 原样写进 zmx;其余 solve(厚度 solve、二次曲面上的,反射镜之后的角度 solve,其他倍数或带偏移的曲率 pickup)在 zmx 里的写法未核实,写的是当前数值,需要的话在 Zemax 中重设 solve。 |
I-ZMX-GLASS-AGF | 玻璃在给定的 AGF 目录里找不到 | 读取时按 GCAT 顺序在调用方给的 AGF 目录与内置晶体 / 塑料库里精确查找;构建时还会查引擎自带数据。真找不到就补那个厂商的 AGF,或在文件里换牌号。 |
I-ZMX-GLASSCAT | 导入时改用本机 Zemax 玻璃库 | zmx 里的牌号在自带材料库里找不到(多是停产牌号),本机 Zemax 的 Glasscat 里按文件声明的 catalogs 能找到,import-zmx 在 .lens 里加了一行 agf 指向它(明写在文本里,精确匹配)。换机器时把路径改成那台机器的 Glasscat;不想用就删掉这一行、换成现行牌号。 |
I-ZMX-IGNORED | zmx 面指令未解析 | 一个文件合成一条:列出没解析的指令、次数与面号。多是界面、公差、热分析或非序列的数据,不影响几何与分析;VPAR 是 .lens 里不能当变量的参数(托里克面系数、焦距等)上的变量标记。 |
I-ZMX-MCE | Zemax 多重结构的导入导出说明 | 列出导入了几个组态、几行,以及没导入的行(按操作数计数)与原因;Zemax 里的变量 / pickup / 热分析联动的单元格按 Zemax 算好的数值导入。 |
I-ZMX-MERIT | zmx 内嵌的评价函数 | 老版本 zmx 内嵌 Zemax 的评价函数(MFE):支持的操作数按 Int1 / Int2 / Data 的含义换成 op 行,优化向导生成的默认评价函数整块换成一行 default(类型、参考、环数、臂数取自它的注释);第 2 个及以后组态的行、多重结构操作数、还不支持的操作数不导入,消息里按名字计数列出。lb merit 看导入结果。 |
I-ZMX-MIL | MIL 编号玻璃按模型玻璃导入 | zmx 里 6 位数字的玻璃(如 517642)是 MIL 编号:前三位 n_d − 1、后三位 V_d × 10。导入成 model(n_d, V_d);Zemax 也只按这两个数近似色散,可见光里约 0.001,两边的近似公式不完全相同。要精确就换成厂商牌号。 |
I-ZMX-MODEL | 模型玻璃的色散模型写不进 zmx | zmx 的模型玻璃只有 nd、vd,Zemax 用自己的公式算色散;model(…, polynomial) 导出后色散会与 LensBench 略有不同。 |
I-ZMX-RAIM | 实际光线瞄准(Real)按 robust 导入 | LensBench 的 real / robust 光阑大小按近轴定,相当于 Zemax 的 Paraxial;Zemax 的 Real 按实际边缘光线定,暂无对应写法。光阑像差大的系统(广角、大孔径)与 Zemax 对数时先在 Zemax 里改成 Paraxial。 |
I-ZMX-SOLVE | zmx solve 按数值导入 | LensBench 还不支持的曲率 solve(法向、齐明、元件光焦度、同心、ZPL 宏等)只导入了当前数值;需要的话导入后用 set 设置等效的 solve 或 pickup。 |
I-ZMX-TILT | zmx 单面偏心倾斜已展开成坐标断点 | Zemax 的 Surface Properties › Tilt/Decenter(zmx 的 SCBD 行):面前的变换成为本面之前的坐标断点、面后的变换成为本面之后的坐标断点(本面厚度移到它上面),几何相同;面号随之后移,pickup 与变量的面号已跟着改。 |
I-ZMX-TOL | Zemax 公差的导入导出说明 | 列出导入 / 导出了几行公差、补偿器,以及没导入的行(按操作数计数)与原因;判据不在 zmx 里(Zemax 存在公差设置里),导入后按默认 rms_spot。 |
I-ZMX-UNIT | zmx 单位已换算 | 镜头单位不是 mm,长度、口径、非球面系数已换算成 mm。 |
I-ZMX-VAR | 变量标记部分导出 | 曲率、厚度、二次曲面、非球面系数与衍射面相位项的变量写进 zmx(CURV / VDSZ / VCON / VPAR / XDAT),但不带上下界(Zemax 的变量没有上下界,用操作数约束);模型玻璃的 nd / vd 变量没有写,在 Zemax 里手动设。 |