首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >工程仿真软件中的网格5:STL模型的网格划分

工程仿真软件中的网格5:STL模型的网格划分

原创
作者头像
WelSim的小仿真
发布2026-09-16 22:36:05
发布2026-09-16 22:36:05
670
举报
文章被收录于专栏:WELSIMWELSIM

STL是一种外表面模型的数据格式。其原理是把三维物体表面拆成大量三角形面片,每个三角面片存储3个顶点坐标和面法向量(指向模型外侧)。模型曲面不使用解析方程,仅用大量小三角形近似拟合曲面。和参数化的实体 CAD数据格式不同,STL只存表面,不存内部实体;没有单位、颜色、材质、纹理、CAD 特征历史、装配树等信息。

Image
Image

STL文件中的数据必须是闭合流形网格,否则无法用于后续的3D打印或有限元计算。同时,STL数据中的顶点重复存储,没有 “边”、没有 “面归属”,没有棱角特征与内部 / 外部的概念,这对后续有限元分析的边界条件设置带来一些限制,需要通过参数化构建曲线表面或棱角边。

STL有着大量的使用场景,如3D 打印 / 增材制造,STL是3D打印事实上的标准交换格式。三维扫描仪(激光 / 结构光)输出点云到重建三角网格,可用于零件复刻、文物数字化、外形检测。此外,在几何检查、模型修复、可视化预览也有广泛应用。

Image
Image

网格划分算法

STL 表面网格数据无法直接用于有限元计算,需要重新划分高质量的体网格。常见经典方法有两种:直接法和面片类聚法。这两种方法的主要区别就是是否对STL数据进行面片类聚,直接法工作流更简单,不做锐边识别,不修复几何缺陷,但对 STL数据水密性要求更严苛;类聚法可以支持更灵活的人机图形交互操作,同时拆分多个几何面后支持更复杂模型。

Image
Image

直接法

直接法即是直接在STL表面网格基础上构建单一封闭壳体。步骤如下:

1. 读取STL数据,构建外壳拓扑结构

  1. 顶点合并(去重复顶点):STL 文件中每个三角独立存储顶点,因此含有大量重复坐标点;按浮点容差合并重合顶点,建立全局顶点列表。
  2. 构建边-三角邻接关系。遍历所有三角,提取每条边,记录每条边被几个三角面片共享。
  3. 拓扑检查。识别边界边(只属于 1 个三角);内部边(属于两个三角形);检出非流形边(≥3 个三角共用一条边);检查壳体是否闭合:如果存在孤立边界边,判定壳体不封闭。
  4. 面片法向一致性校验。遍历面片,尝试统一外法向;如果STL文件的法向混乱,可能会导致后续网格划分错误。
  5. 构建外壳拓扑结构。组装完整的边界三角面片数据结构,供后续的网格算法(如前沿推进法)读取边界。
Image
Image

2. 分别进行一维边网格、二维面网格、和三维体网格划分。其中三维网格划分,可以使用经典前沿推进法(Advancing Front),或者并行的四面体Delaunay法。

3. 网格优化。通过检查单元质量,来对整体网格进行优化。单元质量优化,移除扁平 “薄单元”,提升有限元计算收敛性。

面片类聚法

很多实际工作中,我们希望能够生成像CAD模型那样的拓扑结构,以便后续能更加容易设置有限元边界等条件。此时可以使用面片类聚法,将所有面片组合成多个几何面,即生成离散的B-Rep数据,这样一个过程,也能够更好的处理复杂或者有缺陷的STL数据。面片类聚法步骤如下:

1. 读取STL数据,直接构建外壳拓扑结构

  1. 按照法向夹角聚类三角面片。相邻三角法向夹角,即二面角(dihedral angle),小于阈值,归为同一个光滑曲面;超过阈值则判定为特征锐边,用于捕捉棱角。
  2. 确定、存储边-三角面的对应关系。
  3. 基于表面三角网格的邻接关系、二面角、曲率、非流形标记,对大量离散 STL 三角面片做聚类分组;把属于同一个光滑几何面的三角片归为一类,并标记分割边界(锐边、非流形边),输出一组面片连通区域。
Image
Image

2. 建立离散实体图形。

基于分类后的面片,重建几何实体(面、线、点),把离散三角网格变成近似B-Rep的几何模型。方法是为每一个聚类创建一个B-rep 几何实体,如果要创建高阶单元,还可以通过拟合的方法,离散曲面成为UV参数化的曲面;把纯面网格升级成CAD模块可以识别、操作的几何面或线。

3. 将所有外表面组合成闭合表面环,定义一个封闭的壳。通常以第一个面环作为外封闭壳;后续所有传入的面环都是内部空腔(孔洞),从外域中挖去这些空腔。并在这个壳的基础上建立三维实体域。供后续生成 3D 体网格。

4. 分别进行一维边网格、二维面网格、和三维体网格划分。(同直接法)

5. 网格优化。(同直接法)

Image
Image

总结

本文介绍了两种划分STL模型有限元网格的经典方法。由于STL数据相比B-Rep等CAD模型少了拓扑信息,给网格划分带来了不少挑战。实际工程中,还会遇到含有缺陷的STL文件,如不够密闭,孔洞、非流形边、自相交、面片法向,更加大了网格划分的难度。对网格划分器的鲁棒性提出较高要求。

文本所介绍算法还可以用于修复STL文件,以减少后续网格划分出现的各种问题。此外,算法也可以用于OBJ,3MF,OFF,  PLY等其他表面模型的有限元网格划分。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档