这一篇作为CFDOF流体分析步骤入门,从CFD那节看即可。
后处理看另外 6.12节
https://qiita.com/norisionori/items/4ee851f3322018662dd7
【Win10】搭建FreeCAD 0.19环境并运行FEM和CFD
有限元(FEM)
CFD
FreeCAD
最后更新于2021-04-17
发表于2021-04-15
我会在FreeCAD Windws 10中记录设置过程,以及FEM和CFD的非常简单的使用。

你为什么需要FreeCAD?

  • 我曾经尝试过开源的CAD/CFD,但连设置都做不到
  • 我遇到了 Fusion360 的 FEM 只作为付费套餐出售的问题
  • 想尝试CFD技术
  • 想用OpenFOAM
  • 想把建模、有限元和计算流体力学集成在一个软件中

如果你属于这些类别中的任何一个,我觉得值得试试FreeCAD。
大约十年前,我也尝试过免费的CAD/FEM/CFD,发现连设置都很困难;即使尝试运行,几天后我也看不到结果,所以一直在避免使用。 近年来,出现了高质量、低成本的3D-CAD工具,比如Fusion360,但经历这些困难似乎更加毫无意义。
不过这次我试用了FreeCAD,发现它在结构、稳定性、界面和扩展性方面都有巨大提升,现在不仅在Linux上运行良好,在Windows上也能运行,这改变了我的看法。 此外,仅凭一软件,你可以运行从建模到有限元法(FEM)和计算流体力学(CFD)等各种环节——这些环境如果用付费软件的话成本高达数百万日元——现在只需几分钟即可免费提供。

FreeCAD能做些什么?
虽然FreeCAD仍在开发中,但它已经包含了基本的3D-CAD功能

  • 3D建模
  • 转换为二维绘图
  • 玩弄
  • 有限元(FEM)
  • 渲染
  • 通过插件和插件管理器的增强
  • (附加)组装
  • (附加内容)CFD
  • Python 自动化

FreeCAD 为每个功能设有工作台划分。 例如,你可以在Sketch工作台绘制二维路径,将其“挤出”成三维形态或在PartDesign工作台中连接,然后在有限元素工作台中进行强度分析。 工作台可以通过附加组件添加,几乎提供了无限的可能性。 例如,有Rocket Workbench,一款专注于火箭设计的工作台。

1 FreeCAD 0.19 设置

我立刻安装了FreeCAD。 与古老的开源软件不同,没有必要预先安装陌生的软件包。 从官网下载并安装exe文件以完成流程。
但请注意,在FreeCAD 0.19中,如果Windows用户名或文件夹名称是日文的,则无法使用。 (在用日语用户名的电脑上,我确认启动画面后整个窗口会消失且无法启动。)

2 CFDOF 设置

CfdOF 是一个扩展,可以为 FreeCAD 添加一个计算流体力学工作台。 CFD使用OpenFOAM,但由于OpenFOAM本身需要各种软件包,建立这样的环境相当具有挑战性。 然而,CFDoF允许你通过附加组件安装这些软件包,这使得构建CFD环境变得容易。

3 CfdOF 安装

首先,添加CfdOF工作台。

1a.jpg

  1. [工具] → [附加组件管理器] → 选择 [CfdOF] → [安装/更新选择]
    作为构建中唯一的障碍,在我的环境中,我收到了“找不到 Gitpython”的警告,插件管理器无法安装 CFDoF,所以我不得不手动安装。 不过,你只需从 Github 下载 CfdOF 的压缩包,解压后安装即可。

  2. (右上角)[代码] → [下载压缩包]

  3. 将提取出来的 CfdOF-master 文件夹放在 C:\Users\Username\Appdata\Roaming\FreeCAD\Macro\Mod\ 中

  4. ※ 如果 [Mod] 文件夹还不在 [Macro] 文件夹中,请创建 [Mod] 文件夹

如果你不确定文件夹结构,可以试着安装其他插件作为参考。

安装OpenFOAM等。

我们还会安装其他为CfdOF服务的软件。 只需点击即可完成。

1b.jpg

  1. 使用管理员特权启动 FreeCAD(如果您没有管理员权限,未来安装时会显示警告)。
  2. 确保你能从工作台中选择CfdOF。
  3. [编辑] → [设置] → [CfdOF]
  4. 使用 [InstallOpenFOAM] 安装 OpenFOAM
  5. 用[安装Paraview]安装Paraview。
  6. 使用 [安装 cfMesh] 安装 chMesh
  7. 用[安装HiSA]安装HiSA。
  8. 在 [OpenFOAM 安装目录] 中设置 OpenFOAM 安装的文件夹
  9. 使用 [ParaView 可执行路径] 设置 Paraview 的执行文件
  10. 在[默认输出目录]设置你喜欢的文件夹
  11. 检查每个程序是否能配合[运行依赖检查器]。

现在环境已经准备好了。 它非常用户友好。

4 FreeCAD 基础知识

为了确保一切顺利运行,可以尝试一些非常简单的建模、有限元和计算流体力学。
如有必要,你可以从[编辑]→[设置]更改鼠标操作设置,调整工作台图标的显示线条,或打开Python控制台。

建模

首先,让我们试着做一根又长又细的棍子。

2.jpg

  1. 在工作台选择中,选择[PartDesign]
  2. 在任务视图中,[创建主体]
  3. 在任务视图中,[创建新草图]
  4. 在任务视图中选择[XY_Plane(基面)]
  5. 任务视图 [OK]

这会带你进入草图模式。

小品

首先,画一个矩形。
5.jpg

  1. 在任务窗口里检查[查看网格]和[吸附到网格](很简单)
  2. 点击顶部导航中的[方块]图标
  3. 把中心协调好,点击任意点来形成正方形(这里不用担心长度)。

7.jpg

  1. 点击顶部导航中的[长度限制]
  2. 点击创建方块的一侧,在弹出窗口输入长度为20mm。
  3. 点击创建方形的另一侧,在弹出窗口输入长度500mm。
  4. 使用[Esc]键退出约束模式
  5. 在任务视图顶部,[关闭]

这样你就能创建一个长度明确的矩形。 这次我暂时尝试用20 x 500mm。
在模型视图树中,双击[草图]会进入草图模式,在任务视图按[关闭]则回到零件设计模式,这对适应起来很有帮助。

零件设计

把矩形变成三维形状。
8.jpg

  1. 点击顶部导航栏上的[按键]
  2. 在任务视图的[长度]字段中输入30毫米
  3. 任务视图 [OK]

非常简单,但现在你可以做一个20x30x500mm的棍子。
之后,你会运行FEM和CFD,所以保存文件时会在这种状态下保存。

5 有限元(FEM)

我们来计算你做的那根细长的杆子,作为单点支撑梁,承受了集中的载荷。

准备好食材

10.jpg

  1. 从 Workbench 选择中访问 [FEM] 工作台
  2. 双击模型任意位置即可选择整个区域(画面会如图所示变成黄绿色)。
  3. 点击顶部导航栏上的[A:使用标准求解器CaululiX创建解析容器]
  4. 点击顶部导航栏上的[〇:为实体创建有限元素材料]
  5. 在任务视图中选择材料(任何材料都可以,所以这次我选了6061铝材)。
  6. 任务视图 [OK]

预设材质选择是ISO材质,所以熟悉的材料很少,但你也可以自己输入属性值。

我们设定了物理条件

12.jpg

  1. 把模型旋转到最底,然后点击你想固定的边缘面来选择
  2. 点击[为固定几何实体创建有限元素约束]以设置固定部件
  3. 把模型旋转到最底,然后点击顶部边缘(你想施加压力的地方)
  4. [创建力的有限元约束……]点击设置负载

设定负载的数量和方向

14.jpg

  1. 点击模型顶部
  2. 点击任务视图中的[方向](箭头指向下方)
  3. 在任务视图中将100N设置为[加载]
  4. 任务视图 [OK]

要设置力的作用,你可以点击模型表面然后选择载荷方向,然后设置[方向]。 操作难懂,但只要随意点开,应该能很快掌握。

切割网格

15.jpg

  1. 双击模型中的任意位置即可选择整个系统
  2. [创建一个有限元网格……](这次我们用的是Netgan messer)
  3. 目前我把它设为默认设置[OK]。

当网状物断裂时,应该会变成一根棕色的杆子。

我们来运行FEM。

17.jpg

  1. 点击顶部导航栏 [Solver](模型窗口中将创建 SolverCcxTools001)
  2. 双击 [SolverCcxTools001]
  3. 在任务窗口中选择[静态]
  4. 点击[Write.inp文件]
  5. 点击[重跑微积分](几秒钟内完成)
  6. [CCX 结果]是在模型视图树中创建的。

如果你选择了除[静态]以外的任何方式,似乎也可以进行频模分析和热应力分析。

让我们来看看结果

20.jpg

  1. 在模型视图树中双击[CCX_Results]

您可以使用单选按钮查看各种结果。 此外,通过摆动位移滑块,你可以夸张并展示应变。 最大容量为1.3毫米,几乎与铝材悬臂梁手工计算的结果相同,悬臂梁承受集中载荷。

6 CFD

把长棍当作水道,试着把水引导进去。
丢弃有限元计算结果,打开刚创建的杆模型文件,然后进入CFDoF工作台。

6.1 我们布置了模拟。

22.jpg

  1. 双击模型部分以选择全部
  2. [答:创建一个分析容器……]咔哒
  3. 在模型视图中双击[PhysicsModel]。
  4. 在任务视图中[稳健地]检查(稳定流畅)
  5. 在任务视图中检查[单相](单相流)
  6. 在任务视图中检查[不可压缩流体](不可压缩流体)
  7. 在任务视图中检查[粘性](粘性液体)
  8. 在任务视图[RANS]中,选择模型[kOmegaSST](使用k-ω湍流模型)
  9. [好的]

这次,既然有机会,我决定把它当作湍流,暂时把它当作未压缩的粘性流体来处理。

6.2 设置流体

24.jpg

  1. 在模型视图中双击[FluidProputies]
  2. 在任务视图中选择[水]
  3. [好的]

你可以输入空气和水的预设或物理属性值。 这次我试了用水。

6.3 设置初始条件

25.jpg

  1. 在模型视图中双击[InitialFluids]
  2. 在任务视图中选择 Velocity-速度 中的 [Potential flow]——势流。
  3. 在任务视图中选择 压力里的势流。

目前,我会为两者设定一个潜在的流程。

6.4 设定入口边界

26.jpg

在上方导航栏中,点击[创建CFD流体边界……]咔哒
在任务视图中选择[入口]
选择任务视图[匀速]
点击模型的边缘面(你想添加水的地方)选择它,然后在任务视图中点击[添加]来选择
在任务视图的用户体验中输入100 mm/s(100 mm/s的流向X方向)
[好的]
我尝试让流速均匀的水以100mm/s从一侧进入。

6.5 设定出口边界

28.jpg

  1. [创建CFD流体边界……]咔哒
  2. 选择任务视图 [出口]
  3. 选择任务视图[静压]
  4. 选择模型对面的边面(你想分水的地方)[添加]
  5. [好的]

出口是一个既不设定流速也不设定气压的表面。

6.6 设定墙的边界

30.jpg

  1. [创建CFD流体边界……]咔哒
  2. 选择任务视图[墙]
  3. 在任务视图中选择[无滑动]
  4. 选择四面墙 [添加]
  5. [好的]

我们安装了防滑墙。

6.7 我们切开网格

31.jpg

  1. 双击模型中的任意位置即可选择整个模型
  2. 顶部导航栏 [创建网格……]咔哒
  3. 在任务视图中输入2毫米[基础元素大小]
  4. 在任务视图网格的延展度中选择[cfMesh]
  5. 在任务视图中点击[写网格案例]
  6. 在任务视图中点击[运行网格]
  7. 在任务视图中点击[ParaView]查看网格。
  8. 任务视图 [关闭]

完成后,你可以在Paraview中预览。
网格也可以运行G网格,但这次我想看到流速分布,所以我选择了一个等距的方形cfMesh。

6.8 最后,是时候执行CFD。

33.jpg

  1. 在模型视图中双击[CfdSolver]树
  2. 在任务视图中点击[写入]
  3. 在任务视图中点击[运行](计算将开始)
  4. 在任务视图中点击[ParaView]

点击[CfdSolver]后,你可以从模型视图底部设置循环次数和使用的核心数。
当你运行[运行]时,会显示重复计算的图表,方便你检查收敛状态。
完成后,你可以在Paraview中预览。 这次是第七代Core i5笔记本,大约5分钟就完成了。

36.jpg

边界层的发展与湍流的速度分布似乎一致。
(我不习惯用Paraview,所以无法正确显示……)

7 结论

你可能会想,“写环境构建条目最终很麻烦!”但我希望你现在明白,构建和操作系统其实非常简单。
当然,当前版本是0.19,离ver1.0还很远,还有一些地方需要改进,但已经感觉到了“可用”的阶段。
由于FreeCAD是开源软件,随着用户群体的增长,其价值也随之提升。 由于该版本仍在开发中,每个版本的快速信息共享将帮助更多人。 如果你哪怕有一点兴趣,请考虑使用它。

作者:秦晓川  创建时间:2026-07-30 21:41
最后编辑:秦晓川  更新时间:2026-08-11 11:28