某水库有限元解析
2024-06-23

1.1 甲方需求

甲方的具体需求如下

  甲方需要将有限元分析后生成的msh文件和res文件,解析成3D网格化数据,在PC端显示。显示可以进行放大缩小旋转。

1.2 需求分析

  根据甲方提供的msh文件,分析文件中是已经经过有限元分析软件处理后的mesh数据。数据使用六面体格式存储,可能也会有四面体、线性格式文件。Res文件中,保存有热、力等数据,根据这些数据,可以为网格渲染着色。

在显示时,甲方希望将图形显示模块嵌入到目前甲方的系统中。甲方系统为Web系统。

 

开发内容介绍

2.1 整体方案

针对以上甲方需求分析我们提出了整体的解决方案。

整体方案分为前端和服务端。

服务端分为web服务端和转换服务端。

web服务端负责文件的上传下载。

转换服务端负责对mesh文件进行解析,转换。

2.2 系统操作步骤

1.用户在web后台上传msh文件、res文件

2.web服务端接收文件,保存文件到文件服务器(或者某个文件夹),同时将信息落表,记录状态为待转换。

3.转换服务器实时扫描数据库表。发现有状态为待转换的记录时,启动转换进程,根据表记录,读取文件信息,转换为OBJ格式,转换好的文件继续保存到文件服务器,同时将路径更新到数据库表,状态更新为已转换。(转换后的数据,不一定只是OBJ,也可以是其他ThreeJS可以识别的格式,例如STLFBX等)

4。前端显示时,获取数据库表中的OBJ文件,通过ThreeJS显示到Web端。

 

2.3 开发功能范围

1. 用户服务端为Linux系统(centosubuntu),CPUx64

2. 实现转换服务端。转换服务端语言为C++,调用了第三方库Pocoboost

转换服务端为后台常驻进程。转换的过程

(1) 扫描后台数据库文件表(t_msh_file,取其中状态为 待转换 的 进行转换操作。扫描频率为每1分钟扫描一次。为避免数据量大时,存在较多积压数据,转换服务端支持多通道部署,每通道按文件ID取模分配。

(2) 数据库文件表应至少包含以下字段:

① ID、转换前msh文件路径、转换前res文件路径、转换状态、转换后文件路径、转换后res文件路径、

② 转换日志记录表 t_convert_log 至少包含以下字段 ID、转换的文件ID、转换结果、转换开始时间、转换结束时间

3读取并解析Mesh文件。Mesh文件为六面体(暂不考虑四面体)。读取res文件,res文件为每个面片的颜色,格式为 索引 颜色。

4读取后,转换为四角面片或三角面片的顶点、方向、面片的索引保存为OBJ格式。Res文件根据需要,转换为OBJ支持的材质格式文件(如mtl)。OBJ格式文件保存到数据库的转换后文件字段,材质格式保存到转换后res文件路径。

3. 实现显示端。

显示端为Web端示例代码,采用javascript+html的方式提供。支持FirefoxGoogle浏览器。Web端主要使用ThreeJS实现3D网格的展示。展示的内容包括网格面、网格边界线、渲染着色、色卡。展示过程中允许缩放、平移、旋转操作。

4. 转换效率。

转换的时间需要根据文件大小以及服务器配置来看。

5. 有限元功能:

1.后台配置需要切面的数据,变成切面

2.可以在界面选择温度、应力、位移查看有限元图形

3.可以在界面上选择需要材料号,显示有限元的图形(如有需要后面协助开发)

4.鼠标点击某个节点显示值(如有需要后面协助开发)

5.旋转缩放功能

6.色板根据最大最小值默认,可以手动输入

7.选择线框的模式

8.选择日期要读入的文件(MSH网格不变,挂载不同的结果RES

9.变形功能,输入位移的放大系数,(做法:X Y Z 在三个坐标值加上某一个固定的位移值)

 

 

 

 

电脑配置

转换源文件大小

最长转换时间

系统:

centos7/ubuntu20.04

CPU:I5-11400 2.6GHz

内存:8GB

硬盘:机械硬盘

10MB

30

30MB

60秒

100MB

180秒

500MB

300秒

1G

3000


上一篇:没有了

下一篇:没有了