记得下载最新的周编译版!用官方的FC来试验。加速下载方法见freecad-010
1 教程参考
官方入门教程
https://blog.freecad.org/2025/09/16/getting-started-with-fem/
官方有限元例子
https://wiki.freecad.org/FEM_Workbench
有限元网格
https://wiki.freecad.org/FEM_Geometry_Preparation_and_Meshing
CalculiX(ccx)手册
https://www.dhondt.de/ccx_2.23.pdf
CalculiX(ccx)手册——网页版,可浏览器翻译
https://www.feacluster.com/CalculiX/ccx_2.18/doc/ccx/index.html
CalculiX(ccx)命令——网页版,可浏览器翻译
https://www.feacluster.com/CalculiX/cgx_2.18/doc/cgx/cgx.html
有限元软件Elmer
https://wiki.freecad.org/FEM_SolverElmer
fcVM用于对结构和土体进行坍塌分析——钢材工作台
https://forum.freecad.org/viewtopic.php?t=85474
fcsc结构混凝土简化分析的工作台
https://wiki.freecad.org/Analysis_of_reinforced_concrete_with_FEM
https://forum.freecad.org/viewtopic.php?t=88953
paraview中处理fem结果
https://wiki.freecad.org/Post-Processing_of_FEM_Results_with_Paraview
静力分析
https://garchiving.com/how-to-fem-analysis-with-freecad/
https://wiki.freecad.org/FEM_Concrete
流体模拟工作台
https://github.com/jaheyns/CfdOF
其他参考
https://docs.hpc.sjtu.edu.cn/app/engineeringscience/calculix.html
2 参数化有限元分析思路
参数化分析无非是不同项目(工程)对应的——模型会变化(参数化模型)——荷载会变化(参数化表格)——荷载组合(多工况)按规范一般不会变:在建工况,完建工况,正常运行工况,检修工况,地震工况等。——多荷载步
我们用表格参数来切换模型变化,再切换荷载数值,添加多个解算Analysis对应多个工况,多荷载步目前只能通过修改文件来实现(见下文)
——模型变化后,分析前要重新划分网格
参考(未实操):
参数化 有限元分析工作台。基本上,它基于您的参数,创建 freecad 文件并分析生成,并在表格中显示所有结果
https://forum.freecad.org/viewtopic.php?t=71905
利用python进行有限元分析
https://wiki.freecad.org/FEM_Tutorial_Python
https://www.docin.com/p-4712346139.html
2.1 应力积分成弯矩
按矩形梁弯曲正应力公式https://www.cnblogs.com/h-elden/p/18928891
2.2 多工况
建立多个Analysis,每个Analysis里设置不同的荷载。
2.3 接触
https://wiki.freecad.org/FEM_ConstraintContact
2.4 载荷步——多步分析Multistep analysis
ANSYS 2020的载荷加载过程涉及的概念有载荷步(Load Steps)、载荷子步(Load Substeps)、斜坡载荷(Ramped Loads)、阶跃载荷(Stepped Loads)、时间(Time)、时间步(Time Steps)、平衡迭代(Equilibrium Iteration)。这些概念是分析求解的基本组成部分,读者应注意在实践中加深理解,下面对这些概念进行简要介绍。
https://forum.freecad.org/viewtopic.php?t=89954
https://wiki.freecad.org/Workarounds
https://zhuanlan.zhihu.com/p/721830736
https://zhuanlan.zhihu.com/p/407083550
https://blog.csdn.net/weixin_47269399/article/details/126069203
3 土木结构有限元实战
3.1 背景信息
目前freecad calculix不支持弹簧约束,也不支持面上施加梯度荷载
前者采用双材料来解决:基础建一个实体模型(合适的弹模、泊松比来模拟地基),结构建一个实体模型,然后2个实体进行BoleanFragments连接(part工作台里)
,见下面实战步骤。为何要对体进行连接?因为材料是给单独的体赋,而网格是整体划分,必须要连接(或组合compound)才可以给整体划分网格,连接后才能保证共节点,compound组合后2个体还是分离的,适用于一些场景,比如金属零件间通过插销连接。
——“零件和零件设计工作台都可以用于创建组件。但你需要将它们合并到一个对象中进行网格化,而 Part 的布尔作则用于网格化。如果你想应用多种材料,不能融合这些成分,但可以用它们合成复合材料。通常推荐的方法是布尔片段搭配CompSolid模式,然后使用复合滤波器。”
弹簧支座功能在开发完善中。
后者梯度荷载则采用分层分割的方式,上述链接里有案例。给每一层施加不同的荷载,荷载箭头符号的大小也顺便按比例配置,如下图所示,有些繁琐,但可以用过python代码循环解决。此功能在开发完善中。
3.2 第一步:
在partdesign里建立2个参数化body——略。
3.3 第二步:
切换到part工作台里,选中2个body,点击BoleanFragments按钮。具体原因见3.1 背景信息
3.4 第三步,新建有限元分析
过程见官方的入门案例,静力分析就5板斧:赋予材料,添加约束,施加荷载,划分网格,添加解算。
【关键】注意给实体赋材料操作:
点击材料按钮,选择一个材料。再拉到最底下,选中solid单选,点击添加按钮,在体上随便点一个面,这个材料就赋予这个体上了BoleanFragments.Solid2。
3.5 第四步,计算和结果显示
单位:我们建模是mm单位,施加的面压力荷载是pa,结果应力单位是pa,例如5.036e5=0.5MPa=503kPa
背景信息:
principal stresses主应力
Maximum principal stress最大主应力
Major Principal Stress主应力
Tresca Stress最大剪应力

冯·米塞斯应力对应于材料力学中的第四强度理论。
Von Mises是一种屈服准则,屈服准则的值我们通常叫等效应力。Ansys后处理中”Von Mises Stress”我们习惯称Mises等效应力,它遵循材料力学第四强度理论(形状改变比能理论)。

4 分析结果处理
paraview中处理fem结果
https://wiki.freecad.org/Post-Processing_of_FEM_Results_with_Paraview
4.1 截面
1 点击左侧树状面板上的计算结果ccx_results,自动激活按钮从结果生产后处理管道,点击这个按钮
2 点击刚生成的resultpipeline,自动激活按钮函数裁剪过滤器,点击这个按钮
3 点击创建下拉按钮,选择平面,出来一个辅助切面控制的操作图形
4 修改法向,例如X里填写1,z里的1改为0,就变成竖向的切面;顺便设置(选择)结果选项里的内容,多试试即可。

5 结果分析,上图切面反应z方向上的侧墙应力,可以看到侧墙底部外侧受拉应力约3MPa,对应内侧压应力约-3MPa
5 有限元弯矩验证
5.1 简支梁验证
对于简支梁的端部约束,推荐对梁两端下方的线进行位移约束
如果用刚体约束,因为是简支梁,我们只能约束梁端的下方线,按常规,梁可以绕这条线所在轴进行旋转的,可是:
“如果刚体定义中的参与节点位于直线上,则刚体绕直线的旋转未定义,会出现误差。为了去除旋转自由度,指定绕轴的旋转为零。”——要对梁两端下方的线所在轴进行旋转约束,也就是3个轴旋转都要约束,否则计算结果位移会漂移非常远,见这里。
以下是位移约束设置截图
简支梁一端的约束情况
简支梁另一端约束情况
计算结果:跨中切片的轴向拉应力
两端固定的跨中弯矩
简支梁和两端固定梁,跨中弯矩和应力完全对应上。
梁弯曲正应力公式:
抗弯截面系数:

6 上述思路来FC自带的有限元案例:

案例里首先对体进行BoleanFragments操作,将独立的体进行连接,然后再将BoleanFragments做一次拷贝操作?这个动作可能来自BIM工作台
以下计算是用compound组合2个体,没有用BoleanFragments,两侧明显翘起来和地基分离了:
7 主要容易出错点
1 没有bolean连接或组合,网格只能对选中的体进行划分,多个体无法划分。
2 感觉案例里,赋材料也不一定是在连接或组合之后,在组合前是不是也行?区别是,组合后选择体,它的名字是compound.solid1这种对象,组合前选择体,它的名字是pad.solid1这种。
3 施加的约束是不是也可以在组合或连接前?
4 发现每个resultpipeline里只能放一个切片?
5 特别注意,同时显示多个resultpipeline里的切片时,右侧的渐变色柱子里的数值是不匹配的所有的,只代表其中一个切片的颜色数值。
最后编辑:秦晓川 更新时间:2026-07-02 10:00
秦晓川2026-01-25 07:09:46
1#