The various 3D model formats and their compatibilities with CAE

/3d-formats-compatibility-cae/3d-file-format-view.jpg
Common 3D File formats. Image source: Cgifurniture.com

The Diversity of 3D model formats

Two fields of digital models

There are tens of formats of 3D models in the market, including obj, stl, wrl, stp, iges, max, c4d, etc. Generally speaking, these various formats can be divided into two fields, Digital Content Creation (DCC) and Computer Aided Design/Manufacturing (CAD/CAM).

The characteristics of the two fields

DCC software mostly creates models in the form of mesh/polygon, and edits the model by vertices, line segments, and patch meshes.

CAD/CAM software mostly creates models in the form of nurbs surfaces, and generates surface models by editing splines.

The difference between the two models is a bit like the difference between a “pixel” image and a “vector” image. The former is good at making organic models with weird shapes and intricate details, such as monsters and caves; the latter is good at making mechanical models with smooth surfaces, such as car shells.

In general, the model accuracy generated by DCC software is lower than that generated by CAD software. Applied to specific industries, game model ≈ VR\AR model < film and television model < industrial model. The corresponding model vertex number levels are one hundred thousand, one million, and ten million. Projects with mobile platforms and real-time rendering properties generally use low poly.

Common modeling software

  • DCC software: Blender\Cinema4D\3dsmax\Maya\Mono\ZBrush, etc.
  • CAD/CAM software: FreeCAD\UG\ProE\Solidworks\Catia\autoCAD\Rhino\Alias, etc.

Model formats categories

Each software has its own dedicated format, such as 3dsMax’s source file format is .max; Solidworks’ source file format is .slprt. In addition, there are some common exchange formats for mutual guidance between different software. The most commonly used general formats in the DCC field are obj and fbx; the most commonly used general formats in the CAD\CAM field are stp\iges\stl. But the general format has a problem, it can not always export all the information of the scene in the software, but export the part of the attributes supported by the general format.

Specific 3D model formats

Storage point information

  • PCD: Point Cloud Data,PCL(Point Cloud Library)官方指定文件,用于存储点云中点的具体信息。
  • TXT:用来存储点云的点的信息,操作简单,与我们平时处理数据的 txt 文件处理方式一致;

Storage point information and topology information

  • VTK:除了存储点的信息,还存储点与点之间的拓扑关系(拓扑关系在 3-3 VTK 文件中有说明);
  • PLY:三维 mesh 模型数据格式,只用于描述一个多边形模型对象,也即网格结构模型;
  • OFF:保存几何体的多边形信息;
  • OBJ:从几何学上定义的文件格式,主要支持多边形模型,也即网格结构模型;
  • STL:存储点的信息以及拓扑信息,表示封闭的面或者体;

Binary file

  • BIN:与上述七种文件不同,一个后缀名为 .bin 的文件, 只是想表明它是 binary 格式. 但并不表明它与某种应用程序有必然的联系性,一个 bin 文件也可能不是点云数据;

STL

STL文件格式(stereolithography,光固化立体造型术的缩写)是由3D SYSTEMS 公司于1988 年制定的一种为快速原型制造技术服务的三维图形文件格式。STL可不是专门为3D打印而创造的喔,只是碰巧3D打印是快速原型制造技术的一种。

STL文件不同于其他一些基于特征的实体模型,STL用三角形网格来表现3D CAD模型,只能描述三维物体的几何信息,不支持颜色材质等信息,即STL是丢失了很多信息的简化版的3D模型。

STL 文件有2种类型:文本文件(ASCII格式)和二进制文件(BINARY)。相比之下,ASCII格式更加通用。

PCD

在点云库PCL 1.0发布之前,PCD文件格式就已经发展更新了许多版本。这些新旧不同的版本用PCD_Vx来编号(例如PCD_V5、PCD_V6和PCD_V7等),分别代表PCD文件的0.5版、0.6版和0.7版。在PCL中,用到的PCD文件格式的正式发布是0.7版,即PCD_V7。

PCD文由 “头文件 + 点云数据” 构成,头文件声明了该点云数据集的基本特性。下面以PCD_V7版本的PCD文件为例,对头文件进行介绍。头文件及部分点云数据如下所示:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
# .PCD v.5 - Point Cloud Data file format
VERSION .5
FIELDS x y z
SIZE 4 4 4
TYPE F F F
COUNT 1 1 1
WIDTH 397
HEIGHT 1
POINTS 397
DATA ascii
0.0054216 0.11349 0.040749
-0.0017447 0.11425 0.041273
-0.010661 0.11338 0.040916
0.026422 0.11499 0.032623
0.024545 0.12284 0.024255
0.034137 0.11316 0.02507
  • FIELDS: 指定本点云数据集中任意一个点可以有的维度信息和其他附加信息。如:FIELDS x y z 指每个点都有xyz三个维度信息,FIELDS x y z rgb 指每个点除了xyz维度信息外还有颜色信息等。

  • SIZE:储存每个维度信息占用的字节数(byte)。1指用char型数据存储维度信息,2指用short型数据存储维度信息,4指用int或float型数据存储维度信息,8指用double型数据存储维度信息。

  • TYPE:用字符指定每一个维度的数据类型。I表示有符号类型:int8(char),int16(short),int32(int);U表示无符号类型:uint8(unsigned char),uint 16(unsigned short),uint32(unsigned int);F表示浮点型float和double。

  • COUNT 每个维度包含的元素个数。

  • POINTS 点云中点的总数,从0.7版本就开始显得有点多余,可能会在后续版本中舍去这个参数。

  • DATA 指定存储点云数据的数据存储格式:ASCLL码或二进制数据。

OBJ

OBJ文件是Alias|Wavefront公司为它的一套基于工作站的3D建模和动画软件"Advanced Visualizer"开发的一种标准3D模型文件格式,很适合用于3D软件模型之间的数据交换,比如你在3dsMax或LightWave中建了一个模型,想把它调到Maya里面渲染或动画,导出OBJ文件就是一种很好的选择。

OBJ主要支持多边形(Polygons)模型。不包含动画、材质特性、贴图路径、动力学、粒子等信息。​

由于OBJ格式在数据交换方面的便捷性,目前大多数的三维CAD软件都支持OBJ格式,大多数3D打印机也支持使用OBJ格式进行打印。​

PS:虽然OBJ格式诞生得晚一些,也比STL有所进步,但并无实质区别。​

PLY

典型的 PLY 文件结构:

头部 顶点列表 面片列表 (其他元素列表) 头部是一系列以回车结尾的文本行,用来描述文件的剩余部分。头部包含一个对每个元素类型的描述,包括元素名(如“边”),这个元素在工程里有多少,以及一个与这个元素关联的不同属性的列表。头部还说明这个文件是二进制的或者是ASCII的。头部后面的是一个每个元素类型的元素列表,按照在头部中描述的顺序出现。

下面是一个立方体的完整ASCII描述。相同工程的二进制版本头部的唯一不同是用词 “binary_little_endian” 或者 “binary_big_endian” 替换词“ascii”。大括号中的注释不是文件的一部分,它们是这个例子的注解。文件中的注释一般在 “comment”开始的关键词定义行里。

AMF

AMF是以目前3D打印机使用的“STL”格式为基础、弥补了其弱点的数据格式,新格式能够记录颜色信息、材料信息及物体内部结构等。

AMF标准基于XML(可扩展标记语言)。采用XML有两个好处,一是不仅能由计算机处理,人也能看懂,二是将来可通过增加标签轻松扩展。新标准不仅可以记录单一材质,还可对不同部位指定不同材质,能分级改变两种材料的比例进行造型。造型物内部的结构用数字公式记录。能够指定在造型物表面印刷图像,还可指定3D打印时最高效的方向。另外,还能记录作者的名字、模型的名称等原始数据。 ​

3MF

另一大阵营就是由微软牵头的3MF联盟,于2015年推出全新的3D打印格式——3MF(3D Manufacturing Format)。​

相较于STL格式,3MF档案格式能够更完整地描述3D模型,除了几何信息外,还可以保持内部信息、颜色、材料、纹理等其它特征。

3MF同样也是一种基于XML的数据格式,具有可扩充性。对于使用3D打印的消费者及从业者来说,3MF最大的好处是大品牌支持这个格式。

The 3D formats used in CAE

随着计算机图形、硬件、以及3D打印技术的发展,基于面片网格的图形渲染及其格式变得越来越普及。有限元分析(FEA)中,工程师们也常常拿到基于面片网格的几何文件(如STL文件等),并进行后续的分析工作。由于面片网格和有限元实体网格有着根本性的区别,面片网格是无法直接用于有限元计算的,需要将面片网格转换为有限元分析可用的实体网格。本文就STL面片网格和有限元网格的特点做一个概述,同时实例演示如何将STL网格转换为FEA网格。

三角面片网格

三角面片网格是指由三角形网格组成的表面模型,利用点和边组成许多空间小三角形面片来逼近三维模型表面的一种数据形式,这种逼近方法也是大多数三维网格文件所采用的图元表示法,利用三角形可以近似逼近出几乎所有的三维立体模型。由于三角面片网格的处理简便快捷、可视化效果好,表现能力佳, 因而被视为描述三维立体模型的常用手段之一。随着计算机图形学的迅猛发展,三角网格模型已广泛应用于三维动画、电子商务、计算机辅助设计、工业制造、数字娱乐等诸多领域。尤其是随着3D打印技术的蓬勃兴起,三角面片网格更成为三维立体模型表示方法的焦点。

有限元分析中的三维实体网格

虽然三维有限元分析中会有一些特殊类型的单元,如代表板壳的平面单元,和代表索梁的线单元。但应用最广泛的还是三维实体单元,常用的实体单元有四面体和六面体单元,大量地应用于三维结构,热,流体,声学,以及电磁仿真中。实体单元不仅还有整体的表面信息,内部也都有离散的网格划分。这种不同也使得FEA实体网格要比STL代表的表面网格要复杂许多,同时数据量也大很多。

有限元网格对于网格的质量要求也比较高,不能有畸变的网格,网格的密度适中,网格密度过小会导致计算不精确,密度过大会导致计算量过大,增加计算负担。一些几何复杂的区域,也需要相对较密的网格。常用的网格质量检查定量参数有:

雅克比值(Jacobian Raito):来自于全局坐标和局部坐标下单元的雅可比矩阵比值,理想值为1,且不能小于0。

长度比(Aspect ratio): 指的是单元的最长边与最短边的比值。理想单元具有1的长宽比。

偏斜度(Skewness):衡量一个单元的面正规程度,值的范围从0到1,值越小表示单元越理想。

单元的阶次也会影响有限元分析的结果,通常情况下,二阶单元要比线性的一阶单元要好,但二阶单元由于节点数的增加,也会导致计算量相对增加。

转换STL面片网格为FEA网格

借助其他软件,如HyperMesh, WelSim

abaqus, ansys均不可直接导入stl文件,可借用hypermesh或者gmsh转换成其他文件

abaqus有插件可读stl文件

Iges全是线,推荐用step, Stl或者obj,使用pdelib或者gmsh转换成三维格式,再导入abaqus

Reference

0%