第01章:FreeCAD 项目全景与学习路线
1. FreeCAD 是什么
FreeCAD 是一个开源、跨平台、以参数化建模为核心的三维 CAD/CAE/CAM 平台。它的定位不是单一绘图软件,而是一个可扩展的工程建模系统:用户可以用草图、约束、特征、布尔运算和装配关系构建设计;开发者可以用 Python、C++、Qt 与 OpenCASCADE 扩展新的对象、命令、工作台和自动化流程。
结合 FreeCAD 官方仓库可以看到几个关键事实:
- 项目主页将 FreeCAD 定义为 “Your own 3D Parametric Modeler”,强调开源、参数化、面向现实对象设计。
- README 明确列出底层技术:OpenCASCADE 几何内核、Coin3D 三维场景、Python API、Qt 图形界面。
- 源码目录采用核心层与模块层分离:
src/App承载应用数据模型,src/Gui承载图形界面,src/Base提供基础设施,src/Mod收纳各工作台模块。 - 当前主线通过 CMake 组织构建,顶层
CMakeLists.txt要求 CMake 3.22.0 及以上,并根据选项启用 GUI、FEM、BIM、VR、测试等能力。
因此,学习 FreeCAD 应同时理解三个层面:
- 用户层:如何建模、约束、出图、装配、导入导出、加工、仿真。
- 参数化层:文档对象、属性、表达式、依赖图、重计算、命名稳定性。
- 开发层:Python 脚本、宏、工作台、命令、FeaturePython、自定义视图、C++ 模块。
2. FreeCAD 的适用场景
FreeCAD 适用于多种工程任务:
- 机械设计:零件建模、孔/倒角/圆角/筋板/螺纹表达、工程图。
- 产品原型:参数化外壳、结构件、夹具、3D 打印件。
- 建筑与 BIM:墙、楼板、结构构件、IFC 数据、建筑模型组织。
- 二维制图与施工辅助:Draft 工作台可绘制线、圆、尺寸、文字、捕捉和阵列。
- 数控加工准备:CAM 工作台可创建作业、刀具、路径、后处理。
- 仿真分析:FEM 工作台组织材料、网格、边界条件、求解器与结果。
- 自动化建模:Python API 可以批量生成模型、读取参数、导出格式。
- 二次开发:通过 Python 工作台快速扩展,也可通过 C++ 模块集成高性能算法。
不适合期望 FreeCAD 像商业 CAD 一样隐藏所有复杂度的场景。FreeCAD 的优势在于透明、可脚本化、可扩展;代价是用户需要理解对象树、重计算和工作台之间的边界。
3. 学习路线总览
建议按以下顺序学习:
- 安装与界面:先能稳定运行,理解工作台、组合视图、属性、导航、偏好设置。
- 草图约束:掌握几何约束和尺寸约束,这是 PartDesign 的基础。
- 实体建模:学习 Body、Pad、Pocket、Revolution、Fillet、Chamfer、Pattern。
- 参数化设计:使用 Spreadsheet、表达式、命名对象和配置变量。
- Part 与布尔建模:理解 B-Rep、形状、布尔、切片、壳体、融合与修复。
- 装配与工程图:用 Assembly 组织零部件,用 TechDraw 输出图纸。
- 专业工作台:根据方向学习 Draft/BIM/CAM/FEM/Surface/Mesh。
- 脚本与宏:用 Python 自动创建对象、修改属性、执行重计算和导出。
- 插件与工作台开发:封装命令、界面、图标、任务面板、偏好设置。
- 源码架构:理解 App/Gui/Mod/Base 的分层,进一步阅读核心对象模型。
4. 与其他 CAD 软件的差异
FreeCAD 的核心差异在参数化和开放架构:
- 模型不是一次性几何结果,而是一组有依赖关系的对象;修改上游属性会触发下游重计算。
- 工作台不是完全隔离的应用,而是围绕同一个文档模型提供不同命令。
- Python 控制台不是附属工具,而是几乎所有操作都可以被脚本化的入口。
- 文件格式 FCStd 本质上是包含 XML、BREP 和资源的压缩包,适合版本化理解但不适合直接手写修改。
- 开源项目的功能演进与社区密切相关,版本之间命令名称、工作台组织和装配能力可能变化,需要关注官方 Release Notes。
5. 本教程的结构
本教程不生成 README,而是按照博客当前布局在 cad/FreeCAD/ 下提供独立章节 Markdown 文件,并在 index.md 中集中导航。章节覆盖用户入门、核心建模、专项工作台、工程输出、脚本自动化和源码开发。
建议读者在学习时采用“读一章、做一个模型、保存一个版本”的方式。FreeCAD 的知识只有在反复重建模型、修改参数、观察依赖图和处理失败特征时才会真正掌握。
6. 资料依据
本教程综合参考 FreeCAD 官方 GitHub 仓库的 README、src 源码结构、src/Mod 工作台列表、顶层 CMake 构建配置、贡献说明和当前发布信息,并结合 FreeCAD 常见使用流程整理为中文教程。官方仓库地址:https://github.com/FreeCAD/FreeCAD。