实操 Lab:用 FreeCAD 建一个带孔矩形板¶
本 Lab 带你完成第一个 CAD 建模实践:在 FreeCAD 中创建一个带孔的矩形板,导出 STEP 和 STL 两种格式,并对比它们的差异。
实验目标¶
熟悉 FreeCAD 的 Part Design 工作区基本操作
理解"基于特征的参数化建模"流程
掌握 STEP 和 STL 的导出方法
直观感受两种格式的文件结构差异
为后续阅读 Mini-Lab:STEP 与 STL 格式对比实验 建立实践基础
准备环境¶
软件:FreeCAD <https://www.freecad.org/downloads.php>`_(免费开源,支持 Windows/macOS/Linux)
建议版本 : 0.20 或更新版本
预计时间 : 30-45 分钟(首次使用 FreeCAD 可能需要额外时间熟悉界面)
零件规格¶
几何参数:
外形:100 mm × 60 mm × 10 mm 矩形板
通孔:直径 20 mm,位于板中心(距两边各 50 mm × 30 mm)
材料:不限(本次练习仅关注几何形状)
FreeCAD 建模步骤¶
步骤 1:新建文档并进入 Part Design 工作区¶
打开 FreeCAD
点击 File → New(或 Ctrl+N)新建一个空白文档
在工作区选择器(界面中央上方或左侧面板)中选择 Part Design
点击 Create body 按钮创建一个 Body(实体容器)
步骤 2:创建基础草图(Sketch)¶
在左侧的 Tasks 面板中,点击 Create sketch
选择 XY_Plane(或 Base Plane 中的 XY 平面)作为草图平面,点击 OK
现在进入了 Sketcher 工作区
绘制矩形:
点击工具栏上的 Create rectangle 图标
在原点附近点击一下确定第一个角点
移动鼠标,在右上方再点击一下确定对角点
按 Esc 键结束矩形绘制
标注尺寸:
点击 Dimension(约束尺寸)图标
点击矩形底边,输入 100 mm,按 Enter
点击矩形左边,输入 60 mm,按 Enter
点击矩形的两个相邻顶点,然后点击原点,选择 Symmetric constraint(对称约束),使矩形中心与原点重合
备注
如果对称约束操作不熟悉,可以:先画矩形 → 标注 100 mm 和 60 mm → 选择矩形中心和原点 → 添加 Coincident constraint(重合约束),使矩形中心位于原点。
关闭草图:
点击 Close 按钮(或按 Esc 后点击左上角的 Close),退出 Sketcher 回到 Part Design。
步骤 3:拉伸为三维实体(Pad)¶
确保左侧模型树中选中了刚创建的 Sketch
点击工具栏上的 Pad(拉伸)图标
在弹出的任务面板中: - Type : Dimension - Length : 输入 10 mm
点击 OK
现在你应该看到一个 100×60×10 mm 的蓝色矩形块。
步骤 4:在顶面创建孔的草图¶
点击 Create a new sketch 图标
选择矩形块的**顶面**(Z 轴正方向的面)作为草图平面,点击 OK
进入 Sketcher 工作区
绘制圆:
点击 Create circle 图标
点击原点(矩形中心)作为圆心
移动鼠标确定半径,再点击一下
标注直径:
点击 Dimension 图标
点击圆周
输入 20 mm,按 Enter
关闭草图:
点击 Close 退出 Sketcher。
步骤 5:创建通孔(Pocket / Hole)¶
方法一:使用 Pocket
选中刚创建的圆的 Sketch
点击工具栏上的 Pocket(挖槽)图标
在任务面板中: - Type : Through all(贯穿全部)
点击 OK
现在你应该看到矩形板中心有一个直径 20 mm 的通孔。
方法二:使用 Hole 特征(推荐)
选中顶面的圆形草图
点击工具栏上的 Hole 图标
在任务面板中: - Profile : Drilled(钻孔) - Diameter : 20 mm - Depth : Through all(贯穿)
点击 OK
保存文件¶
点击 File → Save,将文件保存为 plate-with-hole.FCStd。
导出 STEP 格式¶
STEP 格式保留了精确几何和拓扑信息,适合 CAD 系统间的数据交换。
导出步骤¶
点击 File → Export
在文件类型下拉框中选择 STEP with colors (*.step *.stp) 或 STEP (*.step *.stp)
输入文件名
plate.step点击 Save
验证导出¶
用文本编辑器(如 VS Code、Notepad++)打开 plate.step,观察以下内容:
1ISO-10303-21;
2HEADER;
3 FILE_DESCRIPTION((''), '2;1');
4 FILE_NAME('plate.step', '2024-...', ...);
5ENDSEC;
6DATA;
7 #1 = CARTESIAN_POINT('', (0., 0., 0.));
8 #2 = DIRECTION('', (0., 0., 1.));
9 ...
10END-ISO-10303-21;
检查清单:
[ ] 文件以
ISO-10303-21;开头[ ] 包含
HEADER和DATA两个主要部分[ ] 能找到
CARTESIAN_POINT、DIRECTION等几何实体[ ] 能找到描述圆柱面(孔)的相关实体
导出 STL 格式¶
STL 格式将实体表面近似为三角面片,是 3D 打印机的标准输入格式。
导出步骤¶
先切换到 Mesh Design 工作区(工作区选择器)
在模型树中选中 Body(或最终的实体)
点击菜单 Meshes → Create Mesh from Shape...
在弹出的对话框中: - Meshing : Standard - Surface deviation : 0.01 mm(越小越精确,文件越大) - 勾选 Apply 然后点击 OK
在模型树中会出现一个新的 Mesh 对象
选中 Mesh 对象
点击 File → Export
选择 Mesh formats (*.stl *.ast *.bms ...)
输入文件名
plate.stl点击 Save
备注
较新版本的 FreeCAD 也可以在 Part 工作区直接通过 File → Export 导出 STL,系统会自动进行网格化。
验证导出¶
用文本编辑器打开 plate.stl (ASCII 格式),观察以下内容:
1solid plate
2 facet normal 0 0 1
3 outer loop
4 vertex 0 0 10
5 vertex 100 0 10
6 vertex 100 60 10
7 endloop
8 endfacet
9 ...
10endsolid plate
检查清单:
[ ] 文件以 solid ... 开头,以 endsolid ... 结尾(ASCII STL 格式标志)
[ ] 包含多个
facet(三角面片)定义[ ] 每个 facet 包含
outer loop和 3 个vertex
STEP 与 STL 对比¶
对比维度¶
对比项 |
STEP (.step) |
STL (.stl) |
|---|---|---|
文件大小 |
通常较小(精确描述) |
通常较大(大量三角面) |
几何精度 |
精确(数学方程描述) |
近似(三角面片逼近) |
孔的边缘 |
完美的圆(圆柱面方程) |
多边形近似(取决于细分精度) |
可编辑性 |
可导入其他 CAD 继续编辑 |
难以修改特征和参数 |
主要用途 |
CAD 交换、CAM 编程 |
3D 打印、快速原型 |
思考题:
你的
plate.step和plate.stl文件大小分别是多少?STL 文件中大约有多少个三角面?(搜索
facet出现的次数)如果将 Surface deviation 改为 0.1 mm(更粗糙),STL 文件大小会如何变化?
为什么 3D 打印机需要 STL 而不是 STEP?
练习检查清单¶
建模完成:
[ ] FreeCAD 中创建了 100×60×10 mm 的矩形板
[ ] 矩形板中心有直径 20 mm 的通孔
[ ] 文件保存为
plate-with-hole.FCStd
STEP 导出:
[ ] 成功导出
plate.step[ ] 能用文本编辑器打开并识别文件结构
[ ] 能找到描述圆柱面的几何实体
STL 导出:
[ ] 成功导出
plate.stl[ ] 能用文本编辑器打开并识别文件结构
[ ] 能数出三角面片的大致数量
理解验证:
[ ] 能解释 STEP 和 STL 的文件大小差异原因
[ ] 能说出 STEP 的两个主要用途
[ ] 能说出 STL 的两个主要用途
[ ] 知道在 FreeCAD 中如何修改孔的位置或直径(回到 Sketch 修改尺寸)
进阶挑战(可选)¶
完成基础练习后,可以尝试:
挑战 1:改变孔的位置
双击 Hole 特征之前的 Sketch(顶面圆)
修改圆心位置,使孔偏离中心(如 X=30, Y=20)
观察模型如何自动更新
重新导出 STEP 和 STL,对比文件变化
挑战 2:增加倒角
回到 Part Design 工作区
选中顶面的四条边
点击 Chamfer (倒角)图标
设置倒角尺寸为 2 mm
观察导出 STL 后三角面数量的变化
挑战 3:对比不同偏差设置
分别用 Surface deviation = 0.1 mm、0.01 mm、0.001 mm 导出 STL
记录每个文件的三角面数量和文件大小
思考:更小的 deviation 意味着什么?
相关页面¶
FreeCAD 导出 STEP/STL 检查清单:完成建模后,继续阅读导出检查清单,系统验证 STEP/STL 导出结果
Mini-Lab:STEP 与 STL 格式对比实验:更深入地理解 STEP 与 STL 格式的本质差异
工作流路线图:从设计到制造:了解这个练习在整个 CAD/CAM 工具链中的位置
案例 A:从 CAD 模型到 G-code:了解从 CAD 模型到加工代码的完整流程
常见问题¶
Q:FreeCAD 界面全是英文,可以切换中文吗?
A:可以。Edit → Preferences → General → Language,选择 Chinese (Simplified),重启 FreeCAD。
Q:Sketcher 中约束变红是什么意思?
A:红色表示**过约束**(Over-constrained)——你给同一个几何元素添加了互相冲突的约束。删除多余的约束即可。
Q:为什么我的孔不是通孔?
A:检查 Pocket/Hole 的深度设置。确保选择了 "Through all" 或深度大于板厚(10 mm)。
Q:导出 STL 时提示 "No mesh selected" 怎么办?
A:确保先在 Mesh Design 工作区中通过 Create Mesh from Shape 创建了网格对象,然后选中该网格对象再导出。
Q:可以在 FreeCAD 中直接生成 G-code 吗?
A:FreeCAD 有 Path(CAM)工作区可以生成刀具路径和 G-code,但功能相对基础。对于专业加工,通常使用 Mastercam、Fusion CAM 等专用 CAM 软件。