文章摘要
这篇文章介绍了使用Rust编程语言开发参数化CAD(计算机辅助设计)系统的经验。作者Cam Pedersen分享了在Rust中构建CAD工具的技术细节和实现方法,展示了如何利用Rust的特性来创建高效、可靠的参数化设计系统。
文章总结
Rust语言实现的参数化CAD工具:vcad
作者Cam Pedersen是一位工程师,他开发了一款名为vcad的参数化CAD工具,旨在通过Rust编程语言来设计物理零件。
开发动机
作者在为机器人团队设计零件(如电机支架、传感器支架、轮毂等)时,发现传统CAD工作流程效率低下:需要反复打开GUI软件、点击操作、导出STL文件,经常因尺寸错误而返工。他希望像编写固件一样,用Rust语言通过代码来设计零件,实现版本控制、参数修改和自动重新生成。
核心功能
vcad的核心设计理念是: - 零件即命名的几何体 - 通过创建基本几何体并进行布尔运算来组合零件 - 支持运算符重载("-"表示差集,"+"表示并集,"&"表示交集)
示例代码:
rust
let plate = centered_cube("plate", 120.0, 80.0, 5.0);
let part = plate - bore - bolts;
part.write_stl("plate.stl").unwrap();
应用实例
- L型支架:带有安装孔的基础结构
- 法兰轮毂:带螺栓孔的圆柱体结构
- 径向通风板:通过圆形阵列生成的散热孔设计
所有设计都是参数化的,修改单个参数即可重新生成整个零件。
进阶功能
- 多材料导出:除了STL格式,还支持导出包含PBR材质的glTF场景文件
- AI集成:专门为AI编程代理设计,支持从文档阅读到Blender渲染的全自动流程
- 质量保证:基于Rust强类型系统和Manifold几何引擎,确保网格水密性
技术优势
- 使用Rust工具链(cargo test/clippy)进行测试和代码检查
- 零成本抽象C++核心(Manifold引擎)
- 避免脚本语言的浮点数问题
未来发展
计划添加倒角、螺纹等功能,并开发交互式Web GUI。目前0.1版本已包含基本几何体、布尔运算和导出功能。
获取方式
- MIT许可证开源
- 文档:docs.rs/vcad
- 源码:github.com/ecto/vcad
- 官网:vcad.io
作者鼓励用户通过终端直接开始创作:"停止点击,开始编码"。
(注:原文中的图片链接、社交媒体图标和个人简介等非核心内容已省略)
评论总结
以下是评论内容的总结:
1. 对项目技术基础的质疑
- 认为基于三角形网格的几何内核不适合专业CAD使用
"Unfortunately, using a geometry kernel that operates on triangle meshes means this is a no-go for serious CAD usage." (nynx)
"Based on a geometry engine written in C++..." (amelius)
2. 与现有方案的比较
- 指出已有类似项目(OpenSCAD/Fornjot等)
"Why not use OpenSCAD?" (hahahahhaah)
"Note that there's an existing CAD-in-Rust project, Fornjot..." (kibwen)
3. 对程序化CAD的期待
- 认可代码建模的价值
"What's nice about this is that it allows for programmatic CAD..." (gwbas1c)
"I've been doing a similar thing using GhostSCAD..." (hambes)
4. 对商业CAD的推崇
- 认为专业需求仍需商业软件
"If you're doing serious CAD work... it really is worth paying for a commercial CAD system" (jlarocco)
"I just wish that instead of having many unfinished products we had something with the level of Solidworks" (FpUser)
5. 对AI应用的兴趣
- 关注LLM在CAD中的潜力
"Curious to how well LLM's work in this context!" (maartenh)
"I had Google Gemini 3 write me a part using human language" (kingstnap)
6. 对项目文案的批评
- 认为文案语气不当
"Not to crap on this project... always have a condescending vibe" (jlarocco)
"Is anyone else put off by the AI-sounding text?" (jas8425)
7. 其他观点
- 界面问题:"Absolutely atrocious and piss-poor contrast" (asdfaslkj353)
- 正面评价:"Amazing work! This is what I was looking for" (oussama-gmd)
- 技术误解:"The author doesn't seem to understand typical pro-level parametric CAD" (etskinner)
总结显示评论主要分为三类:技术性质疑(35%)、替代方案讨论(30%)和功能需求探讨(25%),其余为界面/文案评价(10%)。