首页> 资讯> 详情

全球信息:FastCAE集成FEMAP软件的网格剖分功能

2023-05-20 10:39:50 来源:软服之家

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

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

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


(资料图片)

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战斗机模型为输入几何文件,进行四面体网格划分。

用的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,则在划分网格之前会弹出一个设置属性的窗口进行属性的交互设置。

程序运行效果:

关键词:

上一篇:新冠重返排名第一!“二阳”风险有多大?一图解惑|焦点快报
下一篇:最后一页