核心用法
build123d-cad 是一套基于 Python 的参数化三维 CAD 建模解决方案,通过代码驱动的方式生成工业级机械零件。用户通过编写 Python 脚本定义几何体,利用 BuildPart 上下文管理器构建实体,最终导出为标准 CAD 格式(STEP 用于工程协作,STL 用于 3D 打印)。
主要功能模块
| 命令 | 用途 |
|------|------|
| `cad_generate.py` | 导出 STEP/STL/SVG 文件 |
| `cad_measure.py` | 测量尺寸、体积、质心、面/边数量 |
| `cad_section.py` | 生成 2D 剖面 SVG 用于间隙检查 |
| `cad_api.py` | 输出 build123d API 速查表 |
| `cad_validate.py` | **干涉检测、最小间隙验证、运动体积碰撞检测** |
关键特性:装配体验证
cad_validate.py 支持三种验证模式:
- Static: 布尔交集检测零件间硬干涉
- Clearance: 检查最小间隙是否低于阈值
- Sweep: 模拟旋转部件的运动轨迹,检测扫掠体积碰撞
典型工作流
1. 调用 cad_api.py 查询 API
2. 编写参数化脚本(所有尺寸变量化)
3. cad_measure.py 验证几何
4. 多零件装配必须运行 `cad_validate.py --mode full`
5. cad_generate.py 导出最终文件
显著优点
- 完全参数化:修改尺寸即重新生成,适合迭代设计
- 工业级精度:基于 OpenCASCADE 内核,支持复杂曲面
- 验证闭环:内置干涉检测填补纯生成工具的空白
- 版本可控:Python 脚本易于 Git 管理,优于二进制 CAD 文件
- 自动化友好:命令行接口适合 CI/CD 集成
潜在缺点与局限性
| 局限 | 说明 |
|------|------|
| 学习曲线陡峭 | 需掌握 Python + build123d API,无图形界面反馈 |
| 实时预览缺失 | 无法交互式旋转查看,依赖导出后外部软件验证 |
| 复杂装配效率 | 大型装配体脚本编写繁琐,无约束求解器 |
| 材料属性简化 | 仅支持基于密度的质量估算,无有限元分析 |
| swept volume 性能 | 密集角度步进的旋转扫掠可能计算缓慢 |
适合人群
- 硬件工程师:设计外壳、支架、安装结构件
- 创客/极客:开源硬件项目的参数化零件库
- 自动化团队:需要将 CAD 生成集成到数据管道
- 教育场景:教授参数化设计与编程思维结合
常规风险
1. 干涉漏检风险:sweep 模式的角度步进过大可能遗漏碰撞,建议关键部件用 1-5° 步进
2. 单位混淆:所有尺寸强制为毫米,英制项目需手动转换
3. Python 环境依赖:uv 管理的虚拟环境若损坏需重新初始化
4. STEP 兼容性问题:复杂布尔运算可能导致其他 CAD 软件导入失败,建议保留原始脚本
5. 运动仿真简化:仅支持绕轴旋转扫掠,不包含动力学或柔性体变形