我在浏览器中构建了一个 CAD 编辑器,然后教会了 LLM 如何使用它
我在浏览器中构建了一个 CAD 编辑器。然后,我把它交给了 AI。
成果在一次演示中显现了出来。我问应用程序:“这里有多少扇门和窗户?”
AI 进行了计数,然后补充道:“注意:D3 仅 300mm 宽。可能是一个误检的门。需要我检查一下吗?”
AI 是正确的。我的数据流水线将一段几何图形变成了一扇仅 30 厘米宽的门。没有人注意到这一点,但模型发现了一扇比鞋盒还窄的门,并标记了它。
这个项目需要解决巨大的技术障碍:
• 解析极其难以处理的 DWG 文件。 • 从数千条随机线条中重建建筑模型。 • 使用 HTML5 Canvas 从零开始构建 2D CAD 编辑器。 • 将 Claude 作为智能体 (agent) 并连接到一组工具。
系统工作原理如下:
- 上传:将 DWG 文件拖入浏览器。
- 处理:后台任务转换文件并提取几何图形。它会识别墙壁、门、窗户和房间。
- 查看:你将获得一个 3D 查看器和一个具有吸附功能和撤销历史记录的完整 2D 编辑器。
- 编辑:通过聊天面板告诉 AI 智能体进行更改。
AI 不仅仅是聊天。它使用工具来编辑数据库。如果你说“在最长的墙上加一扇窗户”,AI 会识别出那面墙并放置开口。
开发过程中的关键经验:
• 永远不要信任文件头。DWG 文件经常在单位上“撒谎”。我学会了忽略文件头,通过查看实际的坐标数值来确定比例。 • 使用单一的写入路径。UI、导入流水线和 AI 都使用相同的验证路径。这确保了 AI 不会创建出不符合逻辑的几何图形。 • 为 AI 提供撤销机制。当 AI 进行编辑时,系统会将整个操作折叠为一个单一的撤销步骤。如果 AI 犯了错,只需按下 Ctrl+Z 即可撤销所有更改。 • 使用拓扑规则,而非数学阈值。最初我尝试通过面积来寻找房间,但这在 L 形建筑上失效了。后来我改用拓扑规则:在连通排列中,最大的面始终是外部,保留其他所有部分。
难点不在于 AI,而在于将无意义的线条转化为真实的建筑数据。由于基础非常扎实,AI 功能仅用了几天时间就完成了。
Source: https://dev.to/arif/i-built-a-cad-editor-in-the-browser-then-taught-an-llm-to-use-it-1l92
Optional learning community: https://t.me/GyaanSetuAi
