当 AI 遇到没有 API 的专业软件:TechWiz 实践
当 AI 遇到没有 API 的专业软件:TechWiz Polar 实践
一次真实的尝试:让 AI 协助学习、操作和整理一个冷门、老派、几乎没有公开 API 的光学仿真软件。这篇文章不只讲结果,更讲方法——哪些路走通了,哪些地方翻了车,以及从中提炼出的可复用经验。
1. 背景:冷门专业 GUI 软件的真实困境
很多工程和科研领域都有一类专业软件:功能强大,用户群不大,交互方式停留在 Windows 98 时代的美学水准。按钮、表格、下拉框、弹窗、多窗口 Viewer,一应俱全;但想用脚本控制它,或者让外部程序读取它的状态——没有公开 API,没有 CLI,没有插件系统,甚至连参数文件的格式都没有写进文档。
这次遇到的软件是 TechWiz Polar,由韩国 Sanayi System 公司开发,是 TechWiz LCD 1D 产品线中的偏振分析模块。它主要用于液晶光学、偏振态仿真和视角透过率分析,在显示面板和光学膜设计领域有一定使用基础。公开的教程和社区资源极其有限——搜索引擎能找到的,多半是几篇零散的韩国论坛帖子和一份 PDF 手册。
学习过程中需要完成若干仿真实验:半波片对线偏振、圆偏振、椭圆偏振的作用,四分之一波片在不同入射角下的偏振态变化,以及两个正交偏振片之间加入 A 玻片、C 玻片、双轴玻片后的视角特性分析。这些操作本身不算复杂,真正让人头疼的是另一件事:参数散落在多个界面和对话框里,结果图需要一张张手动截图,教学资料、已有样例、软件文档、个人操作经验还需要统一整理成可复现的文档。
这就引出了一个很实际的问题——
没有 API 的专业软件,AI 到底能不能帮上忙?如果能,帮到什么程度?
2. 为什么这不是普通自动化
先说结论:没有 API 的专业软件不是不能被 AI 协助,只是协助的成本比有 API 的软件高出一个量级。
如果你用 Python 做过数据分析,调用一个库的流程大概是这样的:
读取参数 → 调 API → 得到结果 → 画图
干净、确定、可复现。但 TechWiz Polar 的实际操作路径是:
打开软件 → 在表格里修改层结构 → 双击每一层编辑参数
→ 在输入框里填厚度、角度、波长 → 点击 Run
→ 等待仿真结束 → 打开 Viewer → 切换到正确的结果标签
→ 截图 → 判断图片是否完整、参数是否正确
这对 AI 来说意味着完全不同的挑战。每一步都涉及 GUI 交互,而 GUI 交互充满了不确定性:窗口可能被遮挡,弹窗可能在意料之外的时刻出现,老式输入框可能不接受程序化的值设置,截图可能因为 MDI 子窗口层叠而缺一块。它不像调用函数那样"输入确定则输出确定",更像是在模拟一个新手用户的所有笨拙操作。
但更关键的难点还不在 GUI 本身。TechWiz Polar 的真正挑战在于:GUI 操作必须和偏振光学知识对齐。 软件里的每一个输入框看起来只是一个数字,但这个数字的物理含义如果搞错了,你可以得到一张"看起来像结果图"的图片,解释却完全不对。
举个例子:TechWiz Polar 的主界面右下角有 Theta 和 Phi 两个参数,乍一看和材料层编辑页里的 Theta、Phi、Psi 长得一模一样。但前者是观察角扫描范围——告诉软件你想看哪些视角下的透过率;后者是材料光轴方向——定义双轴材料三根折射率主轴在空间中的取向。如果混淆了这两组参数,整篇实验报告的前提就是错的。
因此,单纯让 AI “自动点点点” 是行不通的。AI 需要同时理解界面操作和物理含义,才能真正发挥作用。
3. TechWiz Polar 案例:偏振态、视角图和参数误读
为了让讨论更具体,这里用一个完整的案例来说明。
双轴玻片视角仿真的目标是搭建这样一个光学系统:
入射光 → 第一片偏振片(Pol_Ideal) → 双轴补偿膜(TAC_DU_Normal) → 第二片正交偏振片(Pol_Ideal) → 出射光
然后观察不同视角下的透过率分布。
双轴材料的判断标准是三个主折射率互不相等:Nx ≠ Ny ≠ Nz。这和 A 玻片、C 玻片不同——A/C 玻片通常是单轴材料,只有一个特殊光轴方向;而双轴材料在 X、Y、Z 三个方向的折射率都可能不同,因此能同时影响面内和斜视角方向的相位补偿。
推荐使用 TAC_DU_Normal 作为双轴材料。在 550 nm 附近,它的三个主折射率分别约为 Nx ≈ 1.50122、Ny ≈ 1.50067、Nz ≈ 1.49812,三者不相等,且在材料库中差异相对明显,适合用来展示双轴效应。

反过来,如果材料页只显示 Ne 和 No(非寻常光折射率和寻常光折射率),那是单轴材料的特征,不适合作为双轴膜的证据。
设置好材料后,主界面的层结构如下:
| 层号 | 材料 | 作用 |
|---|---|---|
| No.1 | Pol_Ideal |
第一片偏振片 |
| No.2 | TAC_DU_Normal |
双轴补偿膜 |
| No.3 | Pol_Ideal |
第二片正交偏振片 |
两片 Pol_Ideal 需要正交设置——两者的 Phi 相差 90°。中间层先设 Thickness = 5 μm,Theta = 0,Phi = 0,Psi = 0。右下角视角扫描设为 Wavelength = 550,Theta = [0;5;90],Phi = [0;5;360]。
这里再次强调一个容易混淆的地方:右下角的 Theta/Phi 是观察角扫描,表示你想计算哪些入射角度下的透过率;而材料层 Edit Layer 里的 Theta/Phi/Psi 是材料光轴方向参数,定义双轴材料内部三根主轴在空间中的取向。两组参数名字相似,物理含义完全不同。
4. 工作流:资料收集、截图分析、参数验证、结果整理
整个实践过程中,我们逐渐摸索出一套工作流。它不是一开始就设计好的,而是在反复踩坑之后沉淀下来的。
第一步:集中收集资料。 把官方文档、教学课件、录屏转录文本、已有作业样例、自己操作的截图全部放到同一个目录。这里有一个关键细节:AI 不应该直接相信语音转录的内容。专业名词的语音识别错误率很高——“Poincare"可能被识别成"Pony care”,“retardance"可能变成"retardants”。AI 需要结合软件界面截图和已有作业进行交叉验证,而不是把转录文本当成权威来源。
第二步:建立操作备忘录。 把已经确认的操作写成长期可复用的文档。我们最终沉淀出了几份不同用途的文件:操作备忘录(记录波片参数、偏振片角度规则、Viewer 分析方法)、Computer Use 踩坑记录(记录截图格式、MDI 子窗口、输入框问题)、图文操作教程(面向第一次使用的同学,带标注截图)。这些文档不是"写完交差"的产物,而是后续 AI 和人继续接手时的外部记忆——它能避免反复踩同一个坑。
第三步:截图分析与参数核对。 用户在软件里操作时,会不断发送截图。AI 根据截图判断当前在哪个模块、当前材料是不是对的、层结构是否合理、角度和厚度和波长是否设置正确、当前结果图应该看 Poincare Sphere 还是 Transmittance。这个环节里 AI 的作用不是替人理解实验,而是帮助检查参数、发现错误、减少重复劳动。
第四步:必要时使用 Computer Use。 通过 Windows Computer Use,AI 可以识别 TechWiz Polar 窗口、点击按钮、输入参数、运行仿真、切换 Viewer 并截图。但这里有一整套工程经验,下一节会详细展开。
第五步:生成可交付材料。 同一批资料需要面向不同读者做不同表达:给自己看的操作备忘录、给同伴看的图文教程、给审阅者看的技术说明、给公开平台看的技术博客。教程要细致到每一步截图,作业要简洁到只留关键图和结论,博客则要讲清楚方法论和可复用经验。
AI 在这个工作流里的角色,不是替人理解实验,而是帮助整理资料、检查参数、减少重复劳动、形成可复现流程。 真正需要人来掌握的——为什么要用这个材料、为什么看这张图、参数改变对应什么物理意义、结果是否合理——这些判断仍然需要人来做。
5. Computer Use 实战:能做什么,哪里会翻车
Windows Computer Use 是这次实践中最有技术含量的部分。它让 AI 可以像人一样"看屏幕、点按钮、输入参数",理论上可以操作任何 GUI 软件。实际体验是:可用,但必须遵循严格的节奏。
5.1 核心节奏:截图 → 判断 → 小步操作 → 截图验证
这是我们从反复实践中总结出的最重要的一条规则。
1. 抓取当前窗口截图
2. AI 判断当前状态:在哪个界面?有没有弹窗?参数是否正确?
3. 执行一小组动作(比如点击一个输入框,修改一个值)
4. 再次截图验证:值是否真的写进去了?有没有触发意外弹窗?
5. 必要时修正
这个节奏看起来慢,但它比"一路连续点击然后祈祷参数都生效"要可靠得多。原因在于 TechWiz Polar 是老式 GUI 软件,很多交互行为不符合现代软件的预期:输入框可能在视觉上显示了新值,但内部状态没有更新;点击可能被另一个层叠窗口拦截;仿真完成后 Viewer 可能打开在主窗口后面,看不到。
5.2 已验证的 Computer Use 能力
在我们的实践中,Computer Use 已经可以完成以下操作:
识别正在运行的 TechWiz Polar 窗口,抓取主窗口和 Viewer 窗口的截图,点击菜单、按钮、表格行、标签页和输入框,在主界面和 Poincare Sphere Viewer 之间切换窗口,输入厚度、光轴角度、Jones 参数等数值,运行仿真并处理"文件已存在,是否覆盖"的确认弹窗。
一个实际跑通过的例子:将 deltaND_0.1 设置为半波片——Thickness = 2.75 μm,删除多余的 Pol_Ideal 只保留单层波片,分别设置线偏振、圆偏振、椭圆偏振三种入射光,运行仿真并打开 Poincare Sphere Viewer 截图。
不论是OpenAI的Codex,还是阿里的QoderWork,Computer Use都可以很好地解决这些问题。
5.3 不能盲目连续点击
这值得单独拿出来说。TechWiz Polar 的部分输入框是老式控件,Computer Use 可以在 accessibility tree 中看到它们,但 set_value(直接设值)可能失败,或者元素索引在界面刷新后失效。
更可靠的方式是模拟真人操作:
点击输入框 → Ctrl+A 全选 → 输入新值 → Tab 或点击其它位置确认
而不是:
set_value("2.75") // 看起来执行成功,但值可能没有真正写入
如果跳过了"截图验证"这一步,你可能一路操作下去都觉得参数设对了,直到最后跑出来的结果图和预期不符,才发现中间某一步的值根本没改成功。
5.4 输出文件覆盖弹窗
运行仿真时,如果输出路径仍为软件默认的 untitled.tpl,软件会弹出确认对话框:"untitled.tpl" already exists. Do you want to replace it?。这个弹窗本身不难处理——点击"是"就行。但如果 AI 没有预期到这个弹窗,它可能会把弹窗误认为错误提示,或者忽略弹窗导致仿真卡住。
5.5 Viewer 遮挡和 MDI 子窗口截图缺边
仿真完成后,如果勾选了 Launch New Viewer,Viewer 会打开,但可能被主窗口挡住。此时需要在窗口列表里找到 Polar Viewer.lib,选择标题包含 Transmittance 或 Poincare Sphere 的子窗口,激活后再截图。
更棘手的是,TechWiz Polar Viewer 使用的是老式 MDI(多文档界面) 子窗口。Transmittance、Poincare Sphere 等结果会在 Viewer 内部以子窗口形式层叠显示。如果子窗口被拖到左侧或被其他子窗口遮住,直接截整个桌面很容易得到一张左边缺一截或标签被裁掉的图。
解决方法是:优先对标题为 untitled - Transmittance 或 untitled - [Poincare Sphere] 的独立 Viewer 窗口单独截图,而不是截整个桌面上的视觉残影。在本次双轴玻片教程制作中,Psi=45 的第一张草稿图左侧被裁掉,后来改用独立 Viewer 窗口截图后才得到可用素材。
6. 双轴玻片视角仿真:一个具体案例
回到案例本身。搭建好三层结构(正交偏振片夹双轴膜)后,运行仿真,打开 Viewer 切换到 Transmittance,得到下面这张视角透过率分布图:
读图时关注三个地方:
第一,中心是否接近全暗。中心代表正视角(viewing angle = 0°)。两个偏振片正交时,即使中间加了双轴膜,中心通常仍接近消光。这是合理的——正视角下光沿膜法线方向传播,双轴膜的面内各向异性对正视角影响有限。
第二,边缘是否出现亮区。图中大视角区域出现明显的四瓣状漏光,这说明斜视角下偏振态和相位延迟发生了变化,双轴膜开始发挥补偿作用。
第三,色标最大值。这组结果的最大透过率约为 0.024,说明漏光幅度本身不大,但分布模式清晰地反映了双轴膜对斜视角偏振态的影响。
一句话总结:双轴膜没有像 A 玻片那样让正视角中心明显变亮,而是主要改变斜视角下的相位补偿,使大角度方向出现四瓣状漏光分布。
6.1 Poincare Sphere 的辅助角色
如果题目关注的是"视角",主图应该用 Transmittance。但如果需要解释偏振态为什么会变化,可以补一张 Poincare Sphere。
Poincare 球展示的是偏振态在 Stokes 空间中的演化——入射点在哪里、出射点在哪里、相对 S1/S2/S3 轴如何变化。它不是视角题的主结果图,但可以帮助说明为什么第二片正交偏振片后仍然会在某些方向出现漏光。
6.2 Phi 和 Psi 的对比:负结果也有价值
双轴材料有三个光轴方向参数:Theta(主轴倾角)、Phi(面内方位角)、Psi(内部主轴自转角)。这三个角度的物理含义不同,但初学时很容易混淆。
为了展示它们的区别,我们做了一组单变量对比实验:
| 对比组 | 参数 |
|---|---|
| 基准 | Thickness=5 μm, Phi=0, Psi=0 |
| 改 Phi | Thickness=5 μm, Phi=45, Psi=0 |
| 改 Psi | Thickness=5 μm, Phi=0, Psi=45 |
结果出乎意料——Phi=45, Psi=0 和 Phi=0, Psi=45 两组的 Transmittance 图变化很小,仍然保持类似的四瓣状漏光分布。

这不是坏结果,更不是操作错误。 它说明在当前材料参数和厚度组合下,Transmittance 输出对 Psi 这个角度参数不太敏感。Phi 和 Psi 的物理含义确实不同(一个改变膜在面内的旋转方向,一个改变双轴材料内部三根折射率主轴的摆放方式),但这不意味着改变它们就一定会在最终视角图上产生显著差异。
这类"负结果"在实验中其实很有价值。它提醒我们:技术报告不应该硬编"变化显著"来迎合预期。更诚实的表述是——在当前材料和厚度组合下,单独改变 Psi 对 Transmittance 分布影响不明显,说明该输出对这一角度参数不敏感。如果想要看到更强烈的差异,可以尝试更大厚度、更大折射率差的材料,或者扩大角度对比范围。
7. 踩坑清单:截图格式、MDI 子窗口、输入框、弹窗
把实践中踩过的坑集中整理一下,这些经验对任何需要用 Computer Use 操作老式 GUI 软件的人都适用。
截图格式不一定是 PNG。 Computer Use 返回的截图数据 URL 可能是 data:image/jpeg;base64,...,而不是 PNG。如果简单地只去掉 data:image/png;base64, 前缀后保存为 .png,会得到一个扩展名看起来对、但文件头损坏的图片。我们第一次批量保存截图时就踩了这个坑——文件夹里的 .png 文件看起来大小正常,但系统图像库无法读取。正确做法是:解析完整的 data URL,读取 MIME 类型,如果是 image/jpeg 就保存为 .jpg,保存后用图像库验证宽高。
MDI 子窗口截图缺边。 前面已经提过。TechWiz Polar Viewer 使用老式 MDI 界面,多个结果以子窗口形式层叠。直接截整个桌面容易出现图缺边、标签被裁掉的问题。解决方案是对目标子窗口单独截图。
老式输入框的 set_value 不可靠。 Computer Use 能通过 accessibility tree 识别到老式输入框,但直接 set_value 可能不会真正更新内部状态。更可靠的方式是模拟真人操作序列:点击输入框 → Ctrl+A → 输入新值 → Tab 确认。
覆盖弹窗和意外对话框。 运行仿真、保存文件、关闭项目时都可能弹出确认对话框。AI 需要提前预期这些弹窗,并在截图验证步骤中处理它们。如果 AI 没有预期到弹窗,可能会把弹窗误判为错误,或者在弹窗存在时继续操作主窗口导致操作失效。
坐标参考系问题。 Computer Use 的窗口点击坐标以当前目标窗口为基准。TechWiz 的 Edit Layer 对话框虽然会被截图成单独区域,但如果目标窗口仍是主窗口,坐标就要按主窗口来算。我们曾经直接用对话框截图里的坐标去点击 Thickness 输入框,结果没有命中——看起来执行成功了,参数却没有写进去。
先确认窗口状态,再操作。 有时软件主窗口、Viewer、弹窗、编辑对话框会同时存在。如果不先截图确认当前状态,就可能把参数输入到错误窗口。最终形成的固定流程是:
先看窗口状态 → 再操作 → 再截图验证
这听起来慢,但比错了以后重跑快得多。
8. AI 时代的软件接口反思:GUI、API、Agent Interface
这次实践让我想到一个更宏观的问题。
早期计算机主要通过命令行交互,后来 GUI 让普通人也能使用复杂功能。可到了 AI 时代,我们又开始希望软件能被"自然语言"和"脚本"控制。某种程度上,AI Agent 正在把软件的交互模式推回"可编程"的方向——只是这次的"编程语言"变成了自然语言指令和结构化 API 调用。
问题在于,中间有大量专业软件并没有为这个变化做好准备。它们没有 API,没有插件生态,甚至连参数导入导出都不够清晰。于是 AI 想要介入,只能像人一样看屏幕、点按钮、读结果。
某种意义上这很笨——2026 年了,我们还在用"截屏 → OCR → 坐标点击"这种原始方式操作专业软件。但另一种意义上这很现实——对于公司破产等得不到维护的旧版本软件,我们同样也接入到了AI能力。
未来更理想的专业软件,或许应该同时提供三层入口:
第一层:给普通用户的 GUI。 这是绝大多数人使用软件的方式,不需要改变。
第二层:给高级用户的脚本/API。 可以批量处理、参数化运行、与外部工具集成。很多专业软件在这一层就已经缺失了。
第三层:给 AI Agent 的结构化操作接口。 不是传统的 REST API,而是一组可以被程序化查询和操作的接口,带有可解释的状态反馈——比如"当前层结构是什么"、“仿真是否完成”、“结果数据在哪里”。
如果一个软件只有第一层,那么 AI 仍然可以帮忙——通过 Computer Use 看屏幕、操作 GUI。但代价是很多截图、坐标、弹窗和验证成本。这不是 AI 的问题,而是软件架构的问题。
9. 可复用方法论
如果你也遇到类似的冷门专业软件——没有 API、没有插件、只有一堆按钮和对话框——可以参考下面这套流程。它不局限于 TechWiz,也适用于很多科研、工程、仿真、测量类的桌面软件。
集中管理资料。 把官方文档、学习资料、已有样例、界面截图、参数文件全部放到同一个工作目录。不要让信息散落在聊天记录、邮件附件和本地各个文件夹里。
建立操作备忘录。 每完成一个验证过的步骤,就写进长期文档。这份文档的作用不是"交差",而是给未来的自己(或接手的人/AI)提供可靠参考。好的备忘录会记录:已确认的参数值、操作步骤、常见错误、以及"不要做什么"。
每次只改一个参数。 这是实验方法论的基本原则,但在 GUI 操作中尤其重要。因为如果同时改了三个参数,最后得到一张结果图,你无法判断变化来自哪个参数。截图时保留能证明参数设置正确的界面。
对 AI 操作保持验证。 不要把 Computer Use 的一次点击当成成功。每步操作后都截图确认。尤其是老式输入框,set_value 看起来成功了不代表值真的写进去了。
图片落盘后立刻验证。 保存截图后立即用图像库读取宽高,确认文件不是损坏的。这个步骤只需几秒钟,但能避免事后发现一整批截图全都不可用。
分层整理输出。 同一批资料面向不同读者做不同表达:自用笔记可以粗糙,教程需要细致到每步截图,作业需要简洁到只留关键图和结论,博客则需要讲清楚方法论和可复用经验。
接受负结果。 如果某组参数对比没有产生显著差异,如实记录。不要为了让报告好看而硬编"变化显著"。负结果本身就是有效信息。
10. 结语
没有 API 的软件并不是不能被 AI 协助,只是协助的成本更高。AI 需要先学会看界面、理解参数含义、建立持久记忆、验证每一步操作结果,再把经验沉淀为可复用的文档。
回顾整个过程,AI 在这次实践中做得最多的事情,不是"自动跑仿真",而是这些:帮我把散落在各处的信息整理成结构化文档,在截图里检查参数是否设置正确,提醒我哪些坑已经踩过不要再踩,把操作经验写成别人也能复现的教程。
而我自己做得最多的事情,是理解实验的物理意义、判断结果是否合理、决定哪些图值得保留。AI 不能替我做这些判断——它不知道"四瓣状漏光"在当前场景下意味着什么,也不知道为什么 Phi/Psi 对比变化不明显是一个值得记录的观察而非操作失误。
这次实践让我觉得,AI 在专业学习场景里的真实价值,不是"告诉你答案"或"替你操作软件",而是陪你一起把混乱的信息、截图、参数、错误和经验整理成一套别人也能复现的流程。最终沉淀下来的不只是几张结果图,而是一组可复用的文档体系:操作备忘录、踩坑记录、图文教程、作业版、博客版——它们共同构成了一个知识工作流。
这可能就是未来很多专业软件学习的真实形态:不是人被 AI 替代,而是人终于多了一个能陪自己啃冷门工具的搭档。
声明:本文是基于 TechWiz Polar 学习和教程整理的经验分享,不代表软件官方文档。TechWiz Polar 为 Sanayi System 公司产品,文中涉及的参数和操作仅供学习参考。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)