FreeCAD 是一款开源自由的工业计算机辅助设计软件。FreeCAD 的不同功能由对应的工作台来实现的。
其中 FEM 工作台是FreeCAD 软件中,使用有限元分析方法,对设计对象进行有限元分析的工作台。在此工作台中,使用不同的第三方有限元分析工具软件,可对设计零件进行静态力学,流体力学,电磁场,热传导过程,振动频率等物理特性,进行有限元分析。
通过分析不同的给定设计条件与工作条件,计算产生设计对象的力学、电学、热学、抗共振的不同受力结果。通过对比不同设定工作条件的力学计算结果,可以优选出最佳成本与效用比的设计方案。在满足设计对象功能的前题下,最大程度地减少原料成本。
【注意】 本文中关于 FreeCAD 中有限元分析的内容,不是 FreeCAD 官方文档。本网站及该文作者,不对文章内容的有效性以及模仿本文内容操作,对任何计算机系统可能的任何损害,进行明确或暗示性担保。
要掌握与理解 FreeCAD 有限元分析的操作原理,首先需要有以下相关领域的知识。
- FreeCAD 机械零件设计知识
- 物理牛顿力学知识
- 物理电磁力学知识
- 材料力学基础知识
- Gmsh 等网格生成原理的基础知识
- 有限元分析原理
- 高等数学中线性代数等数学工具的知识
- 高等数学中微分与积分数学工具的知识
FreeCAD 官方论坛中,使用 FreeCAD 的 FEM 示例,一篇是 日文编写的对带圆形孔的板材的静态受力变形分析。另一篇是英文,对使用混凝土材质的大桥桥墩,加强承重能力进行设计时,对采用 FEM 工具进行分析的过程加以说明。上述两篇文章,对于中文读者来说,限于专业知识词汇,理解会有些困难。
为便于读者理解,现简单介绍一下有限元分析的原理。为简化说明,我们以一个 20mm × 20mm × 30mm 材料为普通ABS工程塑料的长方体为例,通过对长方体两个相对面固定,一个受力面施以 5K牛顿的力,通过 FEM 工具进行长方体变形分析,对有限元工作台的使用加以说明。
根据上面的长方体示例对象为例,我从原理上解释一下有限元分析的原理及工作过程。 首先,在示例长方体的任一边界线上的任一点开始,使用网络生成软件工具,按设定好的网格生成约定(如由处于三维空间,且不在同一平面的四个点构成的一个四面体作为最小网格单位),在长方体内部,生成有限数量的,紧密相连的四面体组成的网格。这些网格近似构成长方体的空间对象。因为在网格生成过程中,有少量的网格中的顶点,可能超过长方体的理论设计边界(这种顶点超出现象,与现实零件加工过程中,加工表面粗糙度的情况非常相似),如果四面体足够小,微小到四面体中四个顶点之间主要受电磁力影响的程度,即不同相邻顶点之间,距离小于平衡点相邻距离时,两者产生相排斥的力;当上述两个顶点距离远于平衡点距离时,两点相吸引。通过对示例长方体内所有这些四面体顶点之间打破平衡时受力状态的变化,使用线性代数等数学工具进行计算,可以近似估算出示例长方体宏观整体受力变形的工作情况。
如果读者数学能力足够强,可以参考清华大学曾攀的《有限元分析及应用》的课程材料。
由于使用 FreeCAD 的 FEM 工作台之前,所涉及的相关工具软件的安装,运算环境的设定等工作,操作步骤及相关知识,足以需要另一篇文章进行介绍。因其内容繁杂,在本文中就不做介绍。在这里,我们只对示例长方体,进行静态受力变形的简单有限元分析过程,进行简单介绍,便于读者理解 FreeCAD 中如何使用 FEM 工作台进行优化设计工作。
因为 FreeCAD 可以使用不同的有限元分析工具软件 ( 如Calculix,z88,elmerfem ) 进行有限元分析计算处理。 同时,还可以使用不同的网络生成工具软件( Gmsh,netgen)生成网格。作为示例,我选用 Calculix 软件作为有限元分析软件工具,使用 Gmsh 作为网格生成软件工具,对整个 FreeCAD 的 FEM 工作台的操作流程,加以简单说明。
FreeCAD 的 FEM 工作台示例操作的整个流程,如下所示:
- 在 PartDesign 工作台中完成长方体参数设定
- 进入 FreeCAD 的 FEM 工作台
- 选定长方体对象,生成 FEM 处理对象
- 选定长方体对象,分配指定普通ABS材料
- 选定长方体对象,使用 Gmsh 为长方体产生网格
- 选定长方体对象,设定固定条件约束面
- 选定长方体对象,指定受力,受力大小,方向等约束条件
- 选定 FEM 处理对象,使用 Calculix 进行有限元分析计算
- 查看有限元分析结果
【 在 PartDesign 工作台中完成长方体参数设定 】
在 FreeCAD PartDesign 工作台设计完成长方体后,FreeCAD 工作界面如下图所示:
【 进入 FreeCAD 的 FEM 工作台 】 【 选定长方体对象,生成 FEM 处理对象 】
进入 FreeCAD 的 FEM 工作台后,用户界面如下图所示:
【 选定长方体对象,分配指定普通ABS材料 】
在进行 FreeCAD 的 FEM 工作台后,首先指定长方体对象在 FEM 容器中使用的材料。

【 选定长方体对象,使用 Gmsh 为长方体产生网格 】
在 FreeCAD 的 FEM 工作台中,如下图所示,依编号顺序操作,进入为长方体生成网格的操作:
在完成上图的操作后,进入下图所示的界面:
【 选定长方体对象,设定固定条件约束面 】
下面在 FreeCAD 的 FEM 工作台中,为长方体设定固定约束条件。在这里,通过下面连续两图的操作,将长方体的顶面与底面设定为力学固定约束面。
按下图所示的编号顺序操作,得到最终的长方体固定面约束条件。
【 选定长方体对象,指定受力,受力大小,方向等约束条件 】
下面开始在 FreeCAD 的 FEM 工作台中,为长方体设定受力面约束条件。按下图数字编号顺序操作:
如下图所示,按编号顺序操作。
【 选定 FEM 处理对象,使用 Calculix 进行有限元分析计算 】
下面开始进行有限元分析的解析计算工作。如下图所示,依数字编号操作,开始为长方体进行有限元解析:
按下图中编号顺序操作。由于在这里是静态力学分析的演示。所以在下图中,需选编号 1 所指向的“静态”;依下图所示,第 2 步操作,是点击"Write .inp file"按钮。产生有限元分析所需的 inp 文件;在下图中的第 3 步操作,是点击"运行 CalculiX"按钮。根所分析对象网络节点数的不同,以及当前运行有限元分析的计算机的 CPU 速度的不同,这个运算过程所需的时间差异很大。
如果上图中的操作没有错误,会产生如下图所示的结果。注意在左边的信息提示框中,如果有绿色字体的一行文字,提示 “CalculiX done without error!",这说明运行 CalculiX 解析器正常输出了数据结果。
【 查看有限元分析结果 】
经过上面八个阶段的操作,现在终于来到显示有限元分析结果的时刻。按下图中编号顺序操作,开始查看最终的计算结果。
在下图中,在右边的主窗口部分,在彩色形式显示长方体受力变形的结果。在下图中,编号 1 指出当前选择显示的是长方体三维整体变形的结果。在彩色长方体中,色彩越红,表示变形越大的正数值;色彩越绿,表示变形越小;色彩越蓝,表示变形越大的负值。在物理学中的力,是有大小与方向的矢量。因此在这里静态受力分析时,变形正方向是以施加力的方向设为正的。
对于 FEM 分析来说,如果被分析对象网格划分的越多,越密,其内部节点越多,在进行 FEM 解析时所需运算量越大。但运算结果更为精确。
2025年7月 FreeCAD 当前开发版本中,还提供动态显示长方体弹性变形的动图。通过点击“Start Animation"按钮,可以依按钮上面的设定,产生弹性变形的动态效果图。通过这个图,可以很好的理解组装后的长方体,在受力时,占用周围空间的范围。这对于机械设计过程中,零件组装后,受力变形情况所占用的空间,以及可能与相邻零件摩擦的可能性大小,有一个直观的判断。
在完成上图操作后,如果按下图所示,点击"直方图"按钮,可以得到长方体变体节点数与变形大小的统计图表。
下面讨论另一种受力情况。如果在上图中,选择"Displacement magnituide"右边的“Maximum shear stress (Treca)",在得到计算结果之后,点击"直方图"按钮,在新弹出的「直方图」窗口中,图表会显示的信息,是节点与剪切力之间的统计关系。 如果此时「直方图」窗口内的图表中,发现有节点受力值,超过材料"缩颈"变形时的力大小,那么必需对设计对象进行修改,以加强出问题节点附近材料的强度。因为这些节点,当受到超过材料能恢复形变状态(弹性变形)最大力时,节点附近材料会发生塑性变形,并不能恢复原始形状。在实际受力过程中发生上述情况时,设计对象会逐渐产生不可恢复的变形,最终可能造成整体撕裂。
为了直观地了解长方体受力变形情况,将观察者位于正视图相对位置,来观察经过放大 50 倍的变形示意图。其结果如下图所示:
由于 FreeCAD 处于不间断开发的状态。本文中的有些功能,不能确保在读者实验的 FreeCAD 版本上也能实现。编写文本时,使用的是 conda 的 freecad/laeble/dev 通道的 freecad_1.1dev_py311h27ea156_92 版本,以及相关 Gmsh 与 CalculiX 软件包。本文只通过对长方体的简单受力分析,通过有限元方法,得到最终受力变形状态的直观数据结果。对于长方体内部应力分析,限于文章篇幅,在本文中没有涉及。另外对于 FreeCAD 一些细节参数调整以及配置参数变更,在文中也没有涉及。本文的写作意图,是通过简单的使用 FEM 工作台,来让读者了解一些关于 FreeCAD 使用 FEM 工作台的基础知识。并努力让读者理解 FEM 计算结果的数据含义。由于有限元方法涉及太多不同领域的知识,本文作者不可能都精通,因此本文中错误在所难免,如读者发现文中错误,敬请指正。本文指正错误邮箱:fem@ivnss.com

