基于FreeCAD的CAE数值仿真平台开发概述

   日期:2020-10-13     浏览:207    评论:0    
核心提示:基于FreeCAD的数值仿真平台开发概述 济南友泉软件有限公司FreeCAD是一套基于OCC、OIV、Qt的开源CAX软件开发框架,采用了文档-视图架构,同时提供了基于Workbench的插件式开发模式,可以非常方便的用于订制CAE软件。FreeCAD主界面-FEM模...

基于FreeCAD的CAE数值仿真平台开发概述

 济南友泉软件有限公司

FreeCAD是一套基于OCCOIVQt的开源CAX软件开发框架,采用了文档-视图架构,同时提供了基于Workbench的插件式开发模式,可以非常方便地用于订制CAE软件。

FreeCAD主界面-FEM模块
  1. FreeCAD代码架构

FreeCAD核心采用C++编写,使用OpenCASCADE生成几何造型,利用Open Inventor进行图形图像渲染,此外,FreeCAD提供了PyCXX扩展Python接口。

FreeCAD模块架构

 

2. FreeCAD主要使用功能模块

  • Base模块

实现类型系统、对象持久化、日志输出、PyCXX扩展Python模块等功能

  • App模块

实现基于文档对象的数据模型、属性系统、事务操作、文档操作(新建、打开、保存、关闭、增加对象、查找对象、删除对象)等功能。

  • Gui模块

实现主窗口定义、基于Workbench的开发模式、数据渲染显示等功能。

  • Part模块

IGESSTEP等主流几何文件导入;基本实体创建;倒角、布尔等操作。

  • Mesh、MeshPart模块

使用Salome SMESHNetGen等进行网格划分。

  • FEM模块

置初边值条件、求解器配置等用于CalculiX 求解,同时提供了简单的结果后处理功能等。

3. FreeCAD的优缺点分析

势:

  • 全参数化建模
  • Workbench的开发模式,开发效率高,扩展性好
  • 富的几何文件接口
  • 集成式的几何约束求解器

不足:

  • 代码量较大,涉及的开发技术较多,文档资料比较少,开发门槛
  • 染路径较长,数据存储冗余大
  • 大规模场景效率比较低

 

4.CAE仿真平台开发思路

FEM/CFD模块作为基础,借助于PartMesh模块现有的功能,完成程序核心功能的实现;在FemGuiPartGuiMeshGui基础之上,设计统一的Workbench以实现(实体、网格、结果)渲染与界面交互功能。

对具体的应用需求(主要是几何造型生成),需要在OCC基础之上开发满足需求的功能,并将其嵌入到FreeCAD框架中。

开发思路

 

  • 几何生成

Part::Feature及其子类为基础,开发满足需求的核心几何功能(几何造型与约束),同时提供PyCXX编写的Python扩展。依托ViewProviderPartViewProviderMeshViewProviderPostObject等代码实现对象显示与交互功能。FreeCADGUI Workbench, 定制软件界面。

几何显示

 

  • 网格划分

MeshPart块支Salome SMESHNetGen等网格生具。Mesh模块提供了网格存储的数据结构以及相关操作,MeshGui模块的Workbench中定义了网格划分的界面,其内部则是通过调用MeshPart模块的Python接口来生成网格。

Mesh

FreeCAD Mesh模块并没有限制网格生成工具的使用,为了完成软件的集成(实际上主要是为了使用FreeCAD较大的几何建模功能),借助于Mesh/MeshGui的数据存储与显示,需要在新的Workbench中嵌入较为成熟的网格生成工具(GmshcfMesh)等。MeshPart中,Mesher::createMesh()函数,通过引入其他网格划分代码来增加新的网格划分功能。

Mesh::MeshObject* Mesher::createMesh() const;

开发要点:FreeCAD网格划分功能较弱,需要利用第三方的网格划分工具生成Mesh模块的数据结构,然后进行网格显示。

  • 求解器

Fem模块中,提供了SolverObject对象,用于生成不同求解器的配置。指定工作目录之后,会根据支持的求解器的将配置文件写入到工作目录,然后便可以求解计算。

Solver
  • 后处理

目前在FreeCAD(止到0.19-pre版本),没有一个单独的一个模块用于后处理数据显示。不过,在Fem模块中实现部分后处理的功能,主要包括云图显示、切割、数据拾取等功能,功能相对比较简单。

者在Fem的基础之上,已经开发完成了CFD模块功能,主要用于完成CFD后处理功能。可以进行云图、流线、Glyph、等值线/等值面等功能。后处理功能的开发其实比较简单,大体思路就是借助于VTK完成后处理数据的生成个,然后将生成的数据导入到OIV渲染管线。

Post

 

 

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服