FastCAE集成FEMAP软件的网格剖分功能

FastCAE提供了统一的交互和显示功能,通过接口可集成自研、开源和商业的几何、网格、后处理内核模块。本案例采用OEM方式集成西门子FEMAP网格划分组件,支持复杂工程级的网格划分功能,在功能强大的同时,界面上可实现自定义、个性化的风格。

FastCAE集成FEMAP软件的网格剖分功能_第1张图片

01  FEMAP介绍

Siemens FEMAP是一款独立于CAD且基于Windows技术的前/后处理高级工程有限元分析(FEA)应用程序,它可以帮助工程师和分析师利用FEA建模解决方案以合理的成本轻松、准确地完成复杂的仿真任务。

FEMAP在网格剖分(包括面网格、体网格)、修改方面的功能是比较丰富的,对于简单的模型,FEMAP可以直接划分网格,对于复杂的模型,FEMAP可以通过将模型进行分割,对各部分划分适合分析的网格。在面网格划分方面通过边界曲面的概念简化操作,忽略一些内部曲线和特征,很多时候通过这种方式可以生成质量更好的网格。FEMAP支持网格的复制、缩放、旋转、镜像操作,当分析模型的网格是对称,载荷约束等不对称,可以使用反射功能来镜像模型,包括面网格和体网格。FEMAP还支持网格映射,在划分四边形或六面体网格的时候可以得到比较规则的网格模型。之后,我们会深入了解、挖掘FEMAP的特色功能,并尝试集成到FastCAE中,更好地为大家提供网格剖分、修改功能。

FastCAE集成FEMAP软件的网格剖分功能_第2张图片

02  集成流程

FEMAP软件提供了四种集成的方法,分别是:

(1)作为两个独立的软件运行(软件之间没有交互);

(2)把FEMAP作为后端服务器运行;

(3)把自己的应用作为FEMAP的插件;

(4)将FEMAP的窗口嵌入到自己的应用程序。

不管以哪种方式集成,FEMAP基本都提供了对应每个图形菜单的API接口

结合FastCAE的需求以及性能考虑,采用第(4)种集成方案。      

集成过程如下:

1、在自己的工程引入FEMAP的com类型库文件FEMAP.tlb

 #import "femap.tlb" named_guids

(具体文件可能会因FEMAP版本不同而不同)

2、获取FEMAP对象指针

 //创建COM对象

CoInitialize(NULL);

 //根据给定的程序标识符从注册表找出对应的类标识符

CLSID clsid;

CLSIDFromProgID(L"femap.model", &clsid); 

//用给定的类标识符创建对象

IDispatch* pDispApp;

CoCreateInstance(clsid, NULL, CLSCTX_SERVER, IID_IUnknown, (void**)&pDispApp);

m_pFemapModel = pDispApp;

 //关闭COM对象

CoUninitialize();

在开发过程需要做一些判断,避免程序出现不可控的错误,增加程序容错率。获取到FEMAP对象指针就可以调用FEMAP的API了。参考FEMAP的API说明文档,所有以fe开头的API函数都可以通过m_pFemapModel对象直接调用。

3、打开/关闭文件

通过feFileOpen可以打开FEMAP支持的文件格式,其原型为:

feFileOpen(bool useDlg, string fName)。

可以通过第一个参数指定是否使用FEMAP自带的文件打开对话框,第二个参数用于指定文件的路径。如果useDlg的值为true,则忽略第二个参数。

通过feFileClose可以关闭FEMAP已经打开的文件,其原型为:

feFileClose(bool saveChanges)。

参数saveChange用于说明在关闭文件之前是否要保存文件。如果打开的文件从未保存,且saveChange为true,FEMAP会弹出对话框要求你输入文件名。

4、网格剖分功能

FEMAP提供了很多网格划分、修改的方法,本文以网上公开下载的F22战斗机模型为输入几何文件,进行四面体网格划分。

FastCAE集成FEMAP软件的网格剖分功能_第3张图片

用的API函数为feMeshTetSolid,其原型为:

feMeshTetSolid3(INT4 entityTYPE, INT4 entitySET, INT4 propID, INT4 meshingApproach, BOOL makeMidside, REAL8 tetGrowth, BOOL checkSurfElem, BOOL deleteSurfElem, BOOL midsideGeom, REAL8 midsideAngle, BOOL multiThruThickness, BOOL sliverRemoval,INT4 tetOptimization, INT4 pyramidSurfaceSET, BOOL pyramidMatchAdjacentParabolic) 需要给出要划分网格的模型ID的集合、网格属性ID及其他划分网格时的选项。

需要注意的是,如果此处不给出网格属性ID,则在划分网格之前会弹出一个设置属性的窗口进行属性的交互设置。

程序运行效果:

FastCAE集成FEMAP软件的网格剖分功能_第4张图片

你可能感兴趣的:(开源CAE,java,开发语言)