设计一个陀飞轮腕表
引言
这延续了我之前的文章《别向机芯展示世界——让它自己写一个》:机芯不应被直接“展示”给外界,而应由它自行书写。这一次,我记录的是将这个“写出来的世界”施加了一点压力的过程。
主题是一个带陀飞轮的机械腕表。我使用 Autodesk Fusion 和自己的 MCP 服务器 Fusion4AI,连续三天三夜让 Claude 运行,使其几乎自动地设计出该腕表,尺寸和公差均符合真实标准。
陀飞轮是一种将游丝和擒纵机构置于笼内,并以每分钟一次旋转来抵消位置误差的装置……这个解释可能难以理解,建议查阅详细说明。AI系统从开源机芯 OM10 的公开参数中获取了游丝规格以及齿轮传动的齿数信息。
1. 所打造的部件
•部件:137个零件,103种类型(包括表壳)
•重量:总计72.49克;机芯(含表盘和指针)19.40克
•规格:1分钟陀飞轮,3.5赫兹,48小时动力储存,42毫米表壳直径
•尺寸精度:与设计值之间的最大偏差为0.26微米(标准为1微米)。例外是两个齿轮的齿形为三维曲面(上链冠轮和手动设置齿),其偏差为2.6–2.8微米
表背侧6点钟位置旋转的机构为陀飞轮机匣。表盘上雕刻有狐狸图案(深度0.05毫米)。
2. 我做了什么,AI又做了什么
我的总工作时间不到三分钟。我几乎只做了三件事:
- 说:“目前,我们先做一个陀飞轮作为基准。”
- 对AI提出的建议,回答“推荐的就可以了”。
- 指令一名维护人员修复AI发现的Fusion4AI漏洞。
此外,我还指定了动力储备时间和选择了狐狸设计,但每次都是对AI提供的选项简单地回复“推荐的”。
其余所有工作均由AI完成。它自行将任务划分为三个角色:
设计:用Python进行计算并输出规格参数
•计算齿轮齿形、零件强度和平衡性
•使用AI从头编写于Python中的有限元分析程序,验证主板和桥接等板状部件的强度
•让计算程序直接输出尺寸规格。手工复制计算结果容易引入输入错误
•建模:一个子代理读取规格参数,并仅使用Fusion4AI提供的操作(如创建圆柱体、钻孔、测量距离等)在Fusion中构建零件
•评分:读取Fusion中成品零件的横截面,并将其与规格进行比较。每个横截面包含数千个点,因此由程序完成对比,仅将结果传递给AI。
设计计算(如案例、表盘、螺丝、绕线等)由最多五个子代理并行执行。由于Fusion API的限制,只能有一个代理运行Fusion。单次建模操作耗时从十几分钟到两个小时半不等。
3. AI出错的原因
AI犯了多次错误,有趣的是,这些错误总是出现在相同的情境中:当同一设计用不同方法重新检查时,两个结果不一致。以下是三个例子。
拉起冠部时,杠杆会切入凹槽
当拉动冠部时,用于切换齿轮啮合的杠杆(即连杆和调节杠杆)会旋转。AI将杠杆末端设计为平板状,因此在旋转过程中,杠杆会倾斜并切入配合凹槽的内壁。
静态状态下测量的间隙表显示无任何问题,但当AI在移动杠杆时重新计算,却出现了干涉现象。静态几何与运动中的几何存在差异。
在Fusion4AI中,您可以将零件的运动(即绕哪个轴以及从何处旋转到何处)及其与其他相关零件的相对比例输入到模型中。该工具会逐步执行所编写的运动,并检查是否存在碰撞。AI将王冠拉伸运动写入模型后,也让工具进行检查。结果,工具返回了相同的零件对,在相同的位置和相同的干涉体积下。此外,还返回了一对未被AI计算包含的零件。经调查发现,问题在于齿向的错位,而遗漏这一情况的是AI的计算。因此,AI发出设计变更建议,将杠杆末端修剪以避免干涉。
桥接部件在冲击下发生偏转
AI采用承受5000G冲击作为强度标准(ISO 1413标准中的冲击测试对应约5000G)。然而,支撑第三轮的桥接部件并未纳入各零件的强度计算之中。当另一个子代理程序对主板和桥梁共同进行有限元分析时(该分析程序也由AI用Python编写),发现三轮桥在5000 G的载荷下发生1.4毫米的挠度,且轴心脱离了其宝石。原本在部件计算中缺失的桥梁,在整体装配分析中却出现了。该桥梁被完全移除,并由邻近桥梁延伸出的臂取代,以支撑第三轮。
计算结果与模型质心不一致
当为各部件分配材料时,Fusion会输出重量和质心。根据计算,笼子的质心应位于中心位置,但在Fusion中偏移了0.49微米。计算结果与模型数据存在差异。将Fusion侧的各部件重量与计算结果对比后,发现AI的计算存在错误:它忘记将固定螺旋弹簧的部件(即螺柱座)中的凹槽纳入计算。
这三个问题都无法通过AI重新阅读自身计算结果来发现。AI自身的计算结果在它看来是正确的。只要以两种方式保持相同的设计,就能找出其中的差异。根据论文的表述:当书面约束与设计不一致时,书面世界会让行为者察觉到。
4. Fusion4AI的检测模块也存在错误
有时,负责验证规格的检测模块本身也会出错。
Fusion4AI的首个版本通过零件重叠体积来判断碰撞。由于齿轮尺寸较小,即使存在25微米的干涉,重叠体积也未达到检测阈值,系统判定为“无碰撞”。
对于螺旋弹簧,Fusion4AI的横截面读取工具显示“形状与设计偏差3.4微米”。AI认为这是Fusion建模方式导致的异常情况。但问题根源在于Fusion4AI自身。Fusion4AI使用Fusion的草图功能追踪零件的切割表面,并以这些线条上的点作为测量值。草图线通过曲线近似切割表面,虽然足够精确用于设计,但该功能并非用于毫米级测量。在Fusion4AI修复后,返回的测量点已参考零件真实表面,此时偏差最大仅为0.063微米。
在这两种情况下,AI都报告了问题,而我进行了修正。在三天内,AI共提交了18份错误报告和51份改进建议。每次修复问题时,AI都会重新生成该漏洞,并在确认修复后继续前进。它还保留了错误的判断,而不是将其删除,并将这些判断积累为经验知识。
5. 剩下的只有加工。
擒纵机构停止并前进,摆轮来回摆动。这些运动无法用“N倍另一个部分”这样的固定比例来描述,因此未在Fusion4AI中进行检查;而是通过Python计算由AI验证。三维齿面的2.6–2.8微米误差,在更多横截面的情况下应可控制在1微米以内。目前仅剩对细节运动的检查工作,预计可通过微调解决。
剩下的就是动手制作了。我打算找个时间用数控铣床试试切割。
6. 摘要
将复杂机器的设计交由人工智能来完成,让我明白了一件事:当然,除了AI的智能之外,还需要一种机制,让AI能够发现自身的错误。这次起作用的机制有以下三点:
•不要让AI通过手动操作复制计算结果,而是让程序自动生成设计参数。
•用另一种方法(如CAD检查、独立分析)再次验证设计结果。计算结果与模型结果对比,静态几何与动态几何对比。错误往往出现在两者不一致的地方。
•只有在对已知答案的案例进行验证后,才信任这些检查工具。检查环节本身也可能会出错。
总结
我想把它做成更贴合手腕的表背形状,并将厚度减半。一旦你造好一个,经验就会积累起来,所以下一个应该不会太费劲……至少我希望如此。我的总工作时间不到三分钟。
本文编译自hackster.io





