第08章:装配设计 Assembly
1. 装配的目标
装配设计用于组织多个零件的空间关系。单个零件解决”形状是什么”,装配解决”零件之间如何定位、连接、运动和替换”。
从 FreeCAD 1.1.0 起,Assembly 工作台从第三方插件升格为核心工作台,内置在官方安装包中,无需额外安装。工作台采用 Joint 约束系统,提供固定约束、旋转关节、圆柱关节、滑动关节、球关节、距离约束、平面贴合、角度约束等约束类型,取代旧版 A2plus 等的独立装配方案。
装配常见任务:
- 将多个 Body 或外部文件组成产品。
- 定义零件之间的约束或连接关系。
- 检查干涉、间隙和运动范围。
- 组织零件坐标系和层级。
- 为工程图、BOM 和导出准备结构。
2. Assembly 工作台界面
切换到 Assembly 工作台后,界面主要包含以下区域:
- 工具栏:提供创建装配、插入零部件、各类型 Joint 约束、干涉检测等按钮。
- 装配浏览器(Assembly Explorer):树视图面板,显示装配层级结构——装配根节点、子装配、零部件列表和对应的约束关系。
- 3D 视图:标准三维视图区,约束操作在此完成。
创建装配文档的方法:
- 通过菜单栏 Assembly → 创建装配,或在 Assembly 工具栏点击”创建装配”按钮。
- 文档中会出现一个 Assembly 容器对象,作为装配的根节点。
向装配中插入零部件有两种方式:
- 从当前文档插入:点击”插入零部件”按钮,在弹出的对话框中勾选当前文档中的 Body 对象,确认后零部件即添加到装配中。
- 从外部文件插入:点击”插入零部件”按钮,在对话框中选择”浏览文件”,支持 FreeCAD 原生格式(.FCStd)和 STEP、IGES 等通用交换格式。外部零件以链接方式引用,修改源文件后装配会自动更新。
装配浏览器的使用要点:
- 右键点击零部件可进行隐藏/显示、删除、编辑等操作。
- 在浏览器中选中零部件,其关联的约束会高亮显示,便于排查约束关系。
- 双击约束节点可编辑约束参数(偏移距离、角度值、运动范围等)。
- 拖拽零部件可调整其在装配层级中的位置,用于建立子装配分组。
3. 装配前的零件准备
高质量装配从零件建模开始:
- 每个零件有清晰原点和主基准。
- 安装孔、轴线、接口面位置稳定。
- 参数命名一致。
- 文件名、对象 Label 和版本清晰。
- 避免在零件中保留大量无关草图和临时对象。
如果零件原点随意,装配时需要大量补偿 Placement,后续维护困难。
4. 约束类型与操作
Assembly 工作台使用 Joint(关节约束)系统来定义零件间的空间关系。添加约束的一般流程为:按住 Ctrl 依次选中两个零件上的目标几何元素(面、边、轴、点)→ 点击对应约束按钮 → 在弹出的任务面板中调整参数 → 点击确定。
设计时要避免过约束——一个零件应有足够约束来定位,但不要重复限定同一自由度。固定基准件后再逐个装入其他零件,是避免约束冲突的基本原则。
Fixed Joint(固定约束)
将零件完全固定,消除其所有六个自由度。第一个插入装配的零件通常需要添加 Fixed Joint 作为装配基准,否则整个装配缺少定位锚点。
- 操作:选中零件上的任意面或边 → 点击 Fixed Joint → 确认。零件被锁定在当前空间位置,不会被其他约束推动。
Planar Joint(平面贴合)
将两个平面对齐贴合。约束两平面共面(Z 轴同向),保留平面内的平移自由度和绕法向的旋转自由度。常用于底板与立板的安装面贴合。
- 操作:按住 Ctrl 选中第一个零件的底面和第二个零件的顶面 → 点击 Planar Joint → 在面板中可设置”偏移距离”(Offset),正值为拉开,负值为压入。
Revolute Joint(旋转关节)
实现轴同心 + 面共面,保留一个绕轴的旋转自由度,用于铰链、轴承、门轴等连接。由两个约束组成:两轴同心 + 两参考面共面。
- 操作:按住 Ctrl 选中第一零件的圆柱面(或圆形边)和第二零件的圆柱面(或圆形边)→ 点击 Revolute Joint → 系统自动检测轴心对齐。可在面板中设置旋转角度和角度范围。
Cylindrical Joint(圆柱关节)
两轴同心,允许沿轴向滑动和绕轴旋转,共两个自由度。用于活塞杆与缸体、滑动轴套等场景。
- 操作:按住 Ctrl 选中两零件的圆柱面 → 点击 Cylindrical Joint → 可设置轴向移动范围和旋转角度范围。
Distance Joint(距离约束)
保持两个元素之间固定的距离值,不限制方向。适合孔距定位、零件间隔控制。
- 操作:按住 Ctrl 选中两零件的面(或边/点)→ 点击 Distance Joint → 输入距离值。距离可以是正数(沿法向正方向)或负数。
Angle Joint(角度约束)
保持两个平面或轴线之间固定的夹角。适合加强筋的倾斜角度、支撑架的斜撑定位。
- 操作:按住 Ctrl 选中两零件的平面(或边线)→ 点击 Angle Joint → 输入角度值(单位:度)。
其他约束类型
- Slider Joint(滑动关节):两零件沿一条轴直线滑动,禁止旋转。操作方式类似 Cylindrical Joint,但锁定旋转自由度,仅保留一个轴向平移。用于导轨、抽屉滑轨等。
- Ball Joint(球关节):两点重合,允许三个旋转自由度。选中两零件的顶点或球面中心点 → 点击 Ball Joint。用于球头连杆、万向节等。
5. 组织方式
常见装配组织方式:
- 单文件多 Body:适合小型产品和教学案例。
- 主装配引用外部零件:适合真实项目,便于分工和复用。Assembly 工作台对外部零件的引用以链接方式管理,修改源文件后装配自动更新。
- Std Part 层级:在单个文件内用于坐标层级和子系统分组。
- Assembly 容器:Assembly 工作台的核心对象,承载零部件链接和约束关系。
项目越大,越应该使用清晰的文件结构,例如 parts/、assemblies/、drawings/、exports/。
6. Top-down 与 Bottom-up
两种常见装配设计方法:
- Bottom-up:先建零件,再装配。适合标准件和已有零件组合。
- Top-down:先定义总体骨架、接口和空间,再派生零件。适合产品开发。
FreeCAD 中 Top-down 可借助 Spreadsheet、Master Sketch、ShapeBinder 和外部引用实现,但需要严格控制引用方向,避免循环依赖。
7. 干涉与间隙检查
装配完成后应检查:
- 零件是否相互穿透。
- 运动范围内是否碰撞。
- 螺栓、垫圈、螺母是否有足够空间。
- 装配工具是否可达。
- 加工和安装公差是否考虑。
Assembly 工作台内置干涉检测工具:在工具栏点击”干涉检测”按钮,选择两个或多个零部件,工具会计算并高亮显示重叠区域。对于运动机构,可拖动关节的角度/位移滑块,在运动范围内分段检查碰撞。
此外,FreeCAD 还可通过布尔 Common、剖切视图、透明显示、测量工具辅助检查。
8. 标准件管理
标准件不建议每次手工建模。可采用:
- 建立本地标准件库。
- 使用参数化螺栓、螺母、轴承模型。
- 从供应商下载 STEP 后转换和清理。
- 用统一命名记录规格、材料和标准号。
标准件模型应适度简化。过于精细的螺纹和倒角会拖慢装配重计算和图形显示。
9. 装配导出
装配可导出为 STEP、3MF、STL 或图纸。注意:
- STEP 保留精确几何,适合协作和制造。
- STL 只保留网格,适合 3D 打印预览。
- 导出前确认可见对象和选择对象。
- 外部链接零件应全部可解析。
- 对外共享前清理隐藏实验对象。
导出 STEP 时,在菜单中选择 Assembly → 导出装配为 STEP,可选择导出所有零件或仅导出选中零部件。导出后的 STEP 文件在第三方 CAD 软件中打开时,各零件保持独立实体,装配结构被保留。
10. 装配实践案例
以”电机安装支架装配”为例,完整演示 Assembly 工作台的操作流程。
零件组成:底板(base_plate)、立板(vertical_plate)、加强筋(rib)、螺栓(M8×20,4 个)。
步骤 1:创建装配文档
新建 FreeCAD 文档,切换到 Assembly 工作台。点击工具栏”创建装配”按钮(或菜单 Assembly → 创建装配),文档树中出现 Assembly 节点。保存文件为 motor_bracket_asm.FCStd。
步骤 2:插入底板并添加 Fixed Joint
点击”插入零部件”,选择底板(base_plate)所在的文件或当前文档中的 Body。底板插入后,按住 Ctrl 在 3D 视图中选中底板的任意一个面,点击工具栏 Fixed Joint 按钮(锁形图标),在弹出的面板中确认。底板即成为装配基准,位置锁定。
步骤 3:插入立板,使用 Planar Joint + Distance Joint 定位
插入立板(vertical_plate)。按住 Ctrl 选中底板的顶面(大平面)和立板的底面,点击 Planar Joint,偏移量设为 0(完全贴合)。
定位水平方向:按住 Ctrl 选中底板侧边和立板侧边,点击 Distance Joint,输入距离值(例如 20 mm),将立板定位在底板的指定位置。此时立板被充分约束。
步骤 4:插入加强筋,使用 Planar Joint + Angle Joint 固定
插入加强筋(rib)。按住 Ctrl 选中加强筋的一个侧面和底板的顶面,点击 Planar Joint。按住 Ctrl 选中加强筋的斜面(与立板接触的面)和立板的侧面,点击 Angle Joint,输入角度 0°(两面平行贴合)。如需偏移,可在 Planar Joint 的面板中设置 Offset 值。
步骤 5:插入螺栓(外部 STEP 文件),使用 Cylindrical Joint + Planar Joint
4 个螺栓从外部 STEP 文件导入。点击”插入零部件”→ 浏览文件,选择螺栓的 STEP 文件。将第一个螺栓移到安装孔附近。
按住 Ctrl 选中螺栓的圆柱面和底板上安装孔的圆柱面,点击 Cylindrical Joint(轴同心)。按住 Ctrl 选中螺栓头底面和立板外表面,点击 Planar Joint,设置偏移使螺栓头与立板表面贴合。重复操作插入其余 3 个螺栓。
步骤 6:干涉检查
点击工具栏”干涉检测”按钮,在弹出的对话框中按住 Ctrl 选中底板、立板、加强筋和 4 个螺栓,点击”计算”按钮。工具列出所有干涉体积。如有干涉区域(如螺栓直径大于孔径),在列表中点击对应结果,3D 视图中干涉区域以红色高亮显示。根据结果调整孔径或螺栓规格。
步骤 7:导出装配体为 STEP
菜单选择 Assembly → 导出装配为 STEP,命名文件 motor_bracket_asm.step。导出时可选择是否包含隐藏零件。在另一台 CAD 软件中导入验证,确认装配结构完整。
11. 常见问题
约束冲突如何诊断
如果约束面板中某条约束以红色边框标记,或在状态栏提示”Solver failed(求解失败)”,说明存在约束冲突。在装配浏览器中逐条检查约束的几何引用——常见原因包括:重复约束了同一自由度、引用几何在模型修改后失效、零件被两个互相矛盾的约束定位。解决方法是逐条停用约束(右键 → 禁用),定位到冲突约束后删除或修改。
外部文件更新后装配不同步
Assembly 工作台对外部零件采用链接引用。如果修改了外部零件文件,重新打开装配文件时,FreeCAD 会提示”外部文件已变更,是否更新”。点击”更新”即可同步。如果未弹出提示,可在装配浏览器中右键零部件 → 更新链接,手动触发同步。
避免约束冗余
约束冗余是指用过多约束去限定同一自由度——例如已经用 Planar Joint 贴合了两个面,再用额外的 Fixed Joint 锁定同一零件,或者距离约束与角度约束产生矛盾。一条经验法则:每添加一个零件后,检查该零件是否还能在期望之外的方向移动;如不能移动且约束数量超出必要值,就存在冗余。
大型装配体性能建议
当装配体包含几十个以上零件时,可在菜单 视图 → 显示模式 中选择”简易表示”(Simplified representation),降低图形负载。对于暂不编辑的零部件,右键 → “冻结”可将其排除在重计算之外。标准件(螺栓、垫圈)使用简化模型(去除螺纹和倒角)能显著提升性能。