这一篇作为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
[工具] → [附加组件管理器] → 选择 [CfdOF] → [安装/更新选择]
作为构建中唯一的障碍,在我的环境中,我收到了“找不到 Gitpython”的警告,插件管理器无法安装 CFDoF,所以我不得不手动安装。 不过,你只需从 Github 下载 CfdOF 的压缩包,解压后安装即可。(右上角)[代码] → [下载压缩包]
将提取出来的 CfdOF-master 文件夹放在 C:\Users\Username\Appdata\Roaming\FreeCAD\Macro\Mod\ 中
※ 如果 [Mod] 文件夹还不在 [Macro] 文件夹中,请创建 [Mod] 文件夹
如果你不确定文件夹结构,可以试着安装其他插件作为参考。
安装OpenFOAM等。
我们还会安装其他为CfdOF服务的软件。 只需点击即可完成。
1b.jpg
- 使用管理员特权启动 FreeCAD(如果您没有管理员权限,未来安装时会显示警告)。
- 确保你能从工作台中选择CfdOF。
- [编辑] → [设置] → [CfdOF]
- 使用 [InstallOpenFOAM] 安装 OpenFOAM
- 用[安装Paraview]安装Paraview。
- 使用 [安装 cfMesh] 安装 chMesh
- 用[安装HiSA]安装HiSA。
- 在 [OpenFOAM 安装目录] 中设置 OpenFOAM 安装的文件夹
- 使用 [ParaView 可执行路径] 设置 Paraview 的执行文件
- 在[默认输出目录]设置你喜欢的文件夹
- 检查每个程序是否能配合[运行依赖检查器]。
现在环境已经准备好了。 它非常用户友好。
4 FreeCAD 基础知识
为了确保一切顺利运行,可以尝试一些非常简单的建模、有限元和计算流体力学。
如有必要,你可以从[编辑]→[设置]更改鼠标操作设置,调整工作台图标的显示线条,或打开Python控制台。
建模
首先,让我们试着做一根又长又细的棍子。
2.jpg
- 在工作台选择中,选择[PartDesign]
- 在任务视图中,[创建主体]
- 在任务视图中,[创建新草图]
- 在任务视图中选择[XY_Plane(基面)]
- 任务视图 [OK]
这会带你进入草图模式。
小品
首先,画一个矩形。
5.jpg
- 在任务窗口里检查[查看网格]和[吸附到网格](很简单)
- 点击顶部导航中的[方块]图标
- 把中心协调好,点击任意点来形成正方形(这里不用担心长度)。
7.jpg
- 点击顶部导航中的[长度限制]
- 点击创建方块的一侧,在弹出窗口输入长度为20mm。
- 点击创建方形的另一侧,在弹出窗口输入长度500mm。
- 使用[Esc]键退出约束模式
- 在任务视图顶部,[关闭]
这样你就能创建一个长度明确的矩形。 这次我暂时尝试用20 x 500mm。
在模型视图树中,双击[草图]会进入草图模式,在任务视图按[关闭]则回到零件设计模式,这对适应起来很有帮助。
零件设计
把矩形变成三维形状。
8.jpg
- 点击顶部导航栏上的[按键]
- 在任务视图的[长度]字段中输入30毫米
- 任务视图 [OK]
非常简单,但现在你可以做一个20x30x500mm的棍子。
之后,你会运行FEM和CFD,所以保存文件时会在这种状态下保存。
5 有限元(FEM)
我们来计算你做的那根细长的杆子,作为单点支撑梁,承受了集中的载荷。
准备好食材
10.jpg
- 从 Workbench 选择中访问 [FEM] 工作台
- 双击模型任意位置即可选择整个区域(画面会如图所示变成黄绿色)。
- 点击顶部导航栏上的[A:使用标准求解器CaululiX创建解析容器]
- 点击顶部导航栏上的[〇:为实体创建有限元素材料]
- 在任务视图中选择材料(任何材料都可以,所以这次我选了6061铝材)。
- 任务视图 [OK]
预设材质选择是ISO材质,所以熟悉的材料很少,但你也可以自己输入属性值。
我们设定了物理条件
12.jpg
- 把模型旋转到最底,然后点击你想固定的边缘面来选择
- 点击[为固定几何实体创建有限元素约束]以设置固定部件
- 把模型旋转到最底,然后点击顶部边缘(你想施加压力的地方)
- [创建力的有限元约束……]点击设置负载
设定负载的数量和方向
14.jpg
- 点击模型顶部
- 点击任务视图中的[方向](箭头指向下方)
- 在任务视图中将100N设置为[加载]
- 任务视图 [OK]
要设置力的作用,你可以点击模型表面然后选择载荷方向,然后设置[方向]。 操作难懂,但只要随意点开,应该能很快掌握。
切割网格
15.jpg
- 双击模型中的任意位置即可选择整个系统
- [创建一个有限元网格……](这次我们用的是Netgan messer)
- 目前我把它设为默认设置[OK]。
当网状物断裂时,应该会变成一根棕色的杆子。
我们来运行FEM。
17.jpg
- 点击顶部导航栏 [Solver](模型窗口中将创建 SolverCcxTools001)
- 双击 [SolverCcxTools001]
- 在任务窗口中选择[静态]
- 点击[Write.inp文件]
- 点击[重跑微积分](几秒钟内完成)
- [CCX 结果]是在模型视图树中创建的。
如果你选择了除[静态]以外的任何方式,似乎也可以进行频模分析和热应力分析。
让我们来看看结果
20.jpg
- 在模型视图树中双击[CCX_Results]
您可以使用单选按钮查看各种结果。 此外,通过摆动位移滑块,你可以夸张并展示应变。 最大容量为1.3毫米,几乎与铝材悬臂梁手工计算的结果相同,悬臂梁承受集中载荷。
6 CFD
把长棍当作水道,试着把水引导进去。
丢弃有限元计算结果,打开刚创建的杆模型文件,然后进入CFDoF工作台。
6.1 我们布置了模拟。
22.jpg
- 双击模型部分以选择全部
- [答:创建一个分析容器……]咔哒
- 在模型视图中双击[PhysicsModel]。
- 在任务视图中[稳健地]检查(稳定流畅)
- 在任务视图中检查[单相](单相流)
- 在任务视图中检查[不可压缩流体](不可压缩流体)
- 在任务视图中检查[粘性](粘性液体)
- 在任务视图[RANS]中,选择模型[kOmegaSST](使用k-ω湍流模型)
- [好的]
这次,既然有机会,我决定把它当作湍流,暂时把它当作未压缩的粘性流体来处理。
6.2 设置流体
24.jpg
- 在模型视图中双击[FluidProputies]
- 在任务视图中选择[水]
- [好的]
你可以输入空气和水的预设或物理属性值。 这次我试了用水。
6.3 设置初始条件
25.jpg
- 在模型视图中双击[InitialFluids]
- 在任务视图中选择 Velocity-速度 中的 [Potential flow]——势流。
- 在任务视图中选择 压力里的势流。
目前,我会为两者设定一个潜在的流程。
6.4 设定入口边界
26.jpg
在上方导航栏中,点击[创建CFD流体边界……]咔哒
在任务视图中选择[入口]
选择任务视图[匀速]
点击模型的边缘面(你想添加水的地方)选择它,然后在任务视图中点击[添加]来选择
在任务视图的用户体验中输入100 mm/s(100 mm/s的流向X方向)
[好的]
我尝试让流速均匀的水以100mm/s从一侧进入。
6.5 设定出口边界
28.jpg
- [创建CFD流体边界……]咔哒
- 选择任务视图 [出口]
- 选择任务视图[静压]
- 选择模型对面的边面(你想分水的地方)[添加]
- [好的]
出口是一个既不设定流速也不设定气压的表面。
6.6 设定墙的边界
30.jpg
- [创建CFD流体边界……]咔哒
- 选择任务视图[墙]
- 在任务视图中选择[无滑动]
- 选择四面墙 [添加]
- [好的]
我们安装了防滑墙。
6.7 我们切开网格
31.jpg
- 双击模型中的任意位置即可选择整个模型
- 顶部导航栏 [创建网格……]咔哒
- 在任务视图中输入2毫米[基础元素大小]
- 在任务视图网格的延展度中选择[cfMesh]
- 在任务视图中点击[写网格案例]
- 在任务视图中点击[运行网格]
- 在任务视图中点击[ParaView]查看网格。
- 任务视图 [关闭]
完成后,你可以在Paraview中预览。
网格也可以运行G网格,但这次我想看到流速分布,所以我选择了一个等距的方形cfMesh。
6.8 最后,是时候执行CFD。
33.jpg
- 在模型视图中双击[CfdSolver]树
- 在任务视图中点击[写入]
- 在任务视图中点击[运行](计算将开始)
- 在任务视图中点击[ParaView]
点击[CfdSolver]后,你可以从模型视图底部设置循环次数和使用的核心数。
当你运行[运行]时,会显示重复计算的图表,方便你检查收敛状态。
完成后,你可以在Paraview中预览。 这次是第七代Core i5笔记本,大约5分钟就完成了。
36.jpg
边界层的发展与湍流的速度分布似乎一致。
(我不习惯用Paraview,所以无法正确显示……)
7 结论
你可能会想,“写环境构建条目最终很麻烦!”但我希望你现在明白,构建和操作系统其实非常简单。
当然,当前版本是0.19,离ver1.0还很远,还有一些地方需要改进,但已经感觉到了“可用”的阶段。
由于FreeCAD是开源软件,随着用户群体的增长,其价值也随之提升。 由于该版本仍在开发中,每个版本的快速信息共享将帮助更多人。 如果你哪怕有一点兴趣,请考虑使用它。
最后编辑:秦晓川 更新时间:2026-08-11 11:28