FreeCAD 完整指南:从零安装到导出你的第一个参数化模型
【免费下载链接】FreeCADOfficial source code of FreeCAD, a free and opensource multiplatform 3D parametric modeler.项目地址: https://gitcode.com/GitHub_Trending/fr/FreeCAD
你想做一个安装支架,并且要求"改得动":孔径、板厚、孔位随时能改,模型自动更新——这正是 FreeCAD 这款免费开源参数化 3D 建模软件要解决的问题。
本文不逐个工作台讲功能,而是跟着一个真实小任务推进:做一块安装板、再配一个连接块,按"建模 → 装配 → 导出"的顺序走,每个知识点在你需要的地方才出现。
5分钟装好并打开软件
先获取稳定版预编译包:Windows 和 macOS 直接安装官方发布的安装包,Linux 一行命令即可:
# Ubuntu / Debian sudo apt install freecad # Fedora sudo dnf install freecad启动后先认识屏幕左上角的工作台切换器。FreeCAD 把工具按工作台分组,本文会用到这几个:
| 工作台 | 在本次任务中的角色 |
|---|---|
| Sketcher | 画带约束的二维几何 |
| Part Design | 把草图变成实体、打孔、修饰 |
| Assembly | 摆放零件、加装配约束 |
| BIM / FEM | 建筑建模与有限元,后文提及 |
各工作台的代码都放在 src/Mod/ 目录下,想看某个工作台背后怎么实现,直接去对应子目录找。
⚠️ 避坑:新手常去下载页面挑"dev"开发版尝鲜。开发版功能最新、bug 也最新,日常学习请先用稳定版,需要验证某个新功能时再切换。
上手试试:新建一个空文档,在Sketcher、Part Design、Assembly之间来回切换,记录工具栏分别多了哪些按钮;再用Help > About FreeCAD确认你的版本号。
幕后原理:工作台本质上是一套命令的注册表——切换工作台时,程序把对应模块的命令填进菜单和工具栏,界面因此"换了一副面孔"。
先画完全约束的草图,再谈建模
在Part Design工作台新建草图(默认在XY 平面上),操作顺序直接决定草图质量:
- 先画形状:用Rectangle画一个矩形,用Circle在中间画一个圆,此时它们可以自由拖动
- 再补几何约束:给矩形原点加Coincident(重合),给圆加Symmetry(对称),让位置关系"钉死"
- 最后标注尺寸:用Distance和Diameter标注矩形长宽、圆直径
几何图元的颜色是状态指示灯:蓝色表示仍可自由移动,变黑/绿(随主题而定)表示该元素已被约束。
幕后原理:草图由一个约束求解器驱动。每个自由元素都占着"自由度",当约束把自由度全部用尽,草图就达到完全约束——无论怎么拖拽形状都不会变,这是后续参数化修改不失控的前提。
⚠️ 避坑:不要指望拖拽时的自动约束替你表达设计意图。自动约束只记录"你拖成了什么样",不表达"它应该是什么样";意图没写全时,改一个尺寸草图就会随意变形。正确顺序是几何 → 约束关系 → 尺寸标注。
改一个尺寸即可验证草图是否合格:把矩形宽度从 60 改成 80,圆应始终保持在中心。也可以让程序替你检查:
import FreeCAD as App sketch = App.ActiveDocument.getObject("Sketch") print(sketch.FullyConstrained) # True = 完全约束 print(len(sketch.Constraints)) # 当前约束数量验证一下:试着删掉圆的对称约束,再改宽度——圆会跟着矩形框移动而不是留在中心。这就是"欠约束"的典型症状,补回约束后恢复。
用Pad、Pocket和Chamfer把草图变成实体
回到Part Design(特征树中选中草图),按以下顺序把安装板做出来:
- Pad(凸台):沿草图法向拉伸,得到 60×40×8 mm 的板
- Pocket(凹槽)/Hole(孔):中心打一个 M5 孔,两侧各一个 φ4.2 通孔
- Chamfer(倒角):给外边缘加 1 mm 倒角
特征树记录了 Pad、Pocket、Hole、Chamfer 的先后顺序,每一步都能回头重编辑,这就是参数化的"模型历史"。
| 你想做的事 | 对应特征 |
|---|---|
| 把闭合轮廓拉成实体 | Pad |
| 从实体上移除材料 | Pocket/Hole |
| 车削类回转体(轴、杯体) | Revolution |
| 圆滑或锐化已有边缘 | Fillet/Chamfer |
这些特征的实现都在 PartDesign 模块源码 里,FeaturePad、FeaturePocket等文件一一对应。
幕后原理:Pad 生成的不是"一张皮",而是一个基于 B-rep 拓扑结构的实体节点,它始终引用那份草图。所以改草图里任何一个尺寸,特征树会从该节点起逐级重算,模型整体更新。
⚠️ 避坑:特征做一半想"切出去"画别的——别切到 3D 视图直接画新草图。新几何必须挂在Body(特征体)内创建,否则特征链断开,参数化更新就失效了。
上手试试:把板厚从 8 改成 10 mm 并重算,确认孔和倒角都留在正确位置;然后选中 Pad 节点直接删掉,看整个特征树如何塌缩回草图——这一步能帮你直观理解"非破坏性编辑"。
在Assembly工作台里把两个零件配上
单件只是开始。新建一个Box基础体当"连接块",切到Assembly工作台:
- Insert Link(插入链接):把已做好的安装板以链接形式放入,而不是复制一份
- Create Joint(创建配合):选中安装板底面和盒子顶面,添加Fixed(固定)配合
- Solve(求解):求解器自动消除两零件的错位与穿透
装配界面中每个配合都会生成一条约束记录,零件的位置关系从此由求解器接管。
幕后原理:装配模块用的是独立于草图的另一套约束求解器,它的变量是每个零件的姿态(位置 + 朝向)。每加一个 Joint 就多一组方程,点Solve就是求出一组让所有方程同时成立的姿态。
⚠️ 避坑:用鼠标把零件"拖到位"当作最终摆放位置是错的。拖拽只适合粗对齐,一旦加过零件尺寸修改,没加配合的零件就会各回各家。要让装配"刚性"可靠,配合约束是唯一答案。
想一想:为什么 Insert Link 是"链接"而不是复制?提示:如果三个月后你改了安装板的孔位,复制版本会发生什么?链接版本呢?
导出时选对格式,事半功倍
不同用途选不同格式,菜单File > Export中先选中对象再挑格式:
| 目的 | 推荐格式 |
|---|---|
| 给其他 CAD 软件继续编辑 | STEP |
| 3D 打印切片 | STL/3MF |
| 与 BIM 软件交换 | IFC |
| 出二维工程图 | TechDraw工作台 |
⚠️ 避坑:最常见的导出事故是"没选对象就点导出"——导出来一个空场景或只剩草图。养成习惯:导出前先在特征树里高亮确认要导出的实体。
验证一下:把装配体导出为 STEP 后重新导入 FreeCAD,检查两个零件及相对位置是否完整保留;再把安装板单独导出 STL,用Measure(测量)工作台量一下板厚和孔距,确认单位没有漂移。
用BIM、FEM与Python接口继续深入
FreeCAD 的宽度还体现在更多工作台上:
- BIM:墙体、门窗、楼板等建筑元素与 IFC 交换,代码在 src/Mod/BIM/
- FEM:网格划分、边界条件、应力与位移云图
- Python API:GUI 能做的操作几乎都能脚本化,在 Python 控制台直接运行
有限元分析:同一块安装板,建模完成后可以直接进入应力分析,看孔边的应力集中。
同一套参数化思路也适用于建筑建模,构件属性与几何同步管理。
想系统上手,仓库里的 示例模型 是一手材料:AssemblyExample.FCStd、EngineBlock.FCStd 等文件覆盖了装配与实体建模的典型结构,逐个打开、逐个反推它们的特征树,比看十篇教程都有效。
想一想:什么场景下"脚本批量生成 100 个孔位"比"手点 100 次"更可靠?提示:想想出错概率和返工成本。
你做的不是形状,而是一套规则
参数化建模的价值不在最终几何,而在模型里沉淀的那组"尺寸与关系":改一处、全模型响应。本文这条"安装 → 完全约束草图 → 实体特征 → 装配导出"的路径可以平移到任何项目上。下一步建议直接挑一个对你有用的真实物件做一遍——只有当"模型不按预期更新"真的发生一次,你才算彻底理解了"完全约束"四个字。
【免费下载链接】FreeCADOfficial source code of FreeCAD, a free and opensource multiplatform 3D parametric modeler.项目地址: https://gitcode.com/GitHub_Trending/fr/FreeCAD
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考