从有限元到Unity——从abaqus网格模型文件到Unity模型数据

从有限元到Unity

一、从有限元到Unity——有限元网格信息导出及分析
二、从有限元到Unity——Unity网格编程
三、从有限元到Unity——从abaqus网格模型文件到Unity模型数据



前言

  上一篇文章大概说了Unity的网格编程是什么以及怎么实现,本篇文章承接前面内容,阐述下怎么将Abaqus导出的网格信息转化为Unity中的网格模型数据,并通过网格编程方式将有限元网格重构出来。


一、用三角面片表示不同单元类型

  前面讲到,Unity中模型是以点和三角面为基础构成的。因此,要在Unity中利用Abaqus的网格信息复现网格模型,则需要以其单元为基础,将单元拆分为以三角面组成的一个个小网格,再把原模型完整构建出来。
  体网格单元类型大致包括四面体、六面体、楔形体,以及其它二阶单元。对于二阶单元,若考虑二阶单元所有的节点的话,则在Unity中所构建的网格在顶点数和面片数上都会比一阶的高上数倍,渲染过程中无论是内存还是性能开销上都会给计算机带来比较大的压力;另外,如果仅在Unity中进行直观可视化渲染而非精确的分析描述,笔者认为,将导出的二阶单元看作一阶单元也能够满足需求了,因此,本文以一节单元为例展开阐述。

1.四面体

  我们从前面不同单元体的节点组成方式了解了不同单元的组成。对于四面体来说,其组成如下:
四面体单元构成  四面体以四个节点、四个三角面组成,以上篇文章中Unity网格编程对组成单元的顶点坐标和三角面片构造序列进行定义。其中其顶点坐标即为节点坐标,面片构造序列以下表进行定义:

三角面片id 顶点1 顶点2 顶点3
1 1 2 3
2 2 4 3
3 1 3 4
4 1 4 2

2.六面体

六面体单元构成  六面体的定义方式与前面正方体形式一致,面片构造序列以下表进行定义:

三角面片id 顶点1 顶点2 顶点3
1 1 2 3
2 1 3 4
3 1 5 6
4 1 6 2
5 1 4 8
6 1 8 5
7 7 6 5
8 7 5 8
9 7 8 4
10 7 4 3
11 7 3 2
12 7 2 6

3.楔形体

楔形体单元构成  同样的,楔形体的三角面片可以通过上图进行如下定义:

三角面片id 顶点1 顶点2 顶点3
1 1 2 3
2 4 6 5
3 1 4 5
4 1 5 2
5 1 3 4
6 3 6 4
7 2 5 6
8 2 6 3

二、更复杂的模型——Abaqus网格信息

  再回到Abaqus导出的有限元网格信息的.rpt文件来。同样的,对于节点信息文件,其内容比较简单,提取网格顶点信息就是提取其中的变形前节点坐标或者是变形后节点坐标即可(根据不同的可视化需求来选取,具体见文章 从有限元到Unity——有限元网格信息导出及分析;而对于单元信息文件,这里还是用前面文章的圆柱

猜你喜欢

转载自blog.csdn.net/flatrrow/article/details/132734703