【STL切片算法文献笔记】基于层合并的批量处理STL海量数据模型的自适应切片方法


原论文介绍。
Title: An adaptive slicing approach for processing STL massive data model in batches based on layer merging
Author:Minghao Shao1,2, Chao Wei1,2, Bin Cui1,2*, Yongkang Li1,2 and Tengfei Zheng1,2

Note:
1 School of Mechanical Engineering, Xi’an Jiaotong University, Xi’an 710049, China
2 State Key Laboratory for Manufacturing and Systems Engineering, Xi’an 710049,
China

前言

自适应切片算法根据网格模型几何形状的变化,采用不同的层厚在不同区域进行分层。在模型较复杂且曲率变化较大的情况下,使用较小的层厚来近似模型。在模型曲率较大的区域,采用最大层厚来提高打印效率。本文提出了一种基于层合并的批量处理STL海量数据模型的自适应切片方法。同时与固定层厚切片法进行对比,表明该算法在保证精度的前提下能够提高打印效率.


一、介绍

现有的切片软件受限于计算机硬件,无法处理海量数据模型(>5GB)。 为了对海量网格模型进行自适应切片,提出了一种基于层合并的自适应切片方法,对海量网格模型进行批量处理。 首先,我们将模型沿打印方向进行划分,得到一系列小数据量的子模型。 子模型的数据量需要小于计算机的内存才能一次读取数据。 然后对最小层厚的子模型进行切片,用文献[6]中的方法分析相邻两层切片信息的相似性。 合并相邻的两个切片,直到相似度大于设定值,实现基于层合并的自适应切片。 最后,将切片后的子模型合并,得到海量数据模型的自适应分层信息。

二、基于层合并的批量处理STL海量数据模型的自适应切片方法机制

1.STL网格模型的分割

在处理 STL 模型文件时,计算内存会膨胀 5 倍左右。例如,要读取一个 1GB 的 STL 模型文件,大约需要 5GB 的计算机内存才能成功完成分层处理。但为了安全起见,我们设置安全系数为 1.2,即使用读取文件大小的 6 倍内存空间来处理模型。因此,当可用内存为 A 时,该算法可以处理的最大文件大小 (Ms) 为 A/6。对于要分割的 STL 模型文件,根据 Z 坐标的大小对所有的三角形面片进行分组。首先遍历STL模型文件,找到模型的最大Z方向坐标Zmax和最小Z方向坐标Zmin,并将它们划分为区间。区间数等于STL模型文件的大小除以Ms,每个三角形patch都是基于自己的Z坐标。将它们放置在相应的区间,形成多个子模型。如果有子模型文件大小仍然大于 Ms,继续分割直到它的大小小于 Ms。

2. 层合并方法

首先将子模型切片到最小层厚,分层后保留每一层的多边形轮廓。 然后通过比较相邻两层的多边形相似度来判断是否合并两层。 对于任意两个相邻层,通过多边形的布尔运算计算改善面积比 (AAR) 和尖点高度变化 (VCH) [6]。 当两个参数中的任何一个大于相应的允许值时,应保留这一层以保证表面质量。 当两个参数均小于允许值时,表明此时的表面精度高于要求。 该层应与前一层结合形成一层以提高制造效率。

对于相邻的第i层和第i+1层,选择第i层作为目标区域,将i+1层作为多边形布尔运算的裁剪区域。

【STL切片算法文献笔记】基于层合并的批量处理STL海量数据模型的自适应切片方法_第1张图片
然后ARR 方程为:
【STL切片算法文献笔记】基于层合并的批量处理STL海量数据模型的自适应切片方法_第2张图片
其中:
Ssub —— 第 i 层的面积;
Sclip —— 第 i +1 层的面积;
Sins —— 相邻两层多边形布尔相交后的面积。

另一个参数是VCH,用来表示分层数据的残差高度。 VCH可以表示为相邻层外边界之间的平均距离r̅:

【STL切片算法文献笔记】基于层合并的批量处理STL海量数据模型的自适应切片方法_第3张图片
式中:
louter —— 相交多边形外边界的周长/mm ; louter=0 表示两个多边形不相交,因此将平均距离设置为无穷大。

##3 实验

表1是算法实现的硬件平台配置。 操作系统
使用的是windows 10,编程软件是QT5.11.1,使用的编程语言是C++。 如图2所示,以半球模型为例,假设最小层厚为0.2mm,最大层厚为0.4mm,最大允许残留高度为0.07mm,最大允许AAR为0.3。 模型的自适应切片结果如图3所示。模型的上半部分是一个半球,随着上端阶梯效应越来越明显,所以层厚逐渐减小,直到最小层厚用于 打印以提高打印精度。 结果表明,该算法的效果与自适应切片逻辑非常吻合。
【STL切片算法文献笔记】基于层合并的批量处理STL海量数据模型的自适应切片方法_第4张图片
本实验旨在研究本文提出的自适应分层对零件打印精度和打印时间的影响。 待打印的案例模型如图2所示,半径为20mm。 实验共分为四组,使用本文编写的切片程序对模型进行切片,切片厚度为0.4mm、0.3mm、0.2mm,厚度自适应。 在自适应切片算法中,最大层厚设置为0.4mm,最小层厚为0.2mm。 分层结果如图4所示。

【STL切片算法文献笔记】基于层合并的批量处理STL海量数据模型的自适应切片方法_第5张图片
【STL切片算法文献笔记】基于层合并的批量处理STL海量数据模型的自适应切片方法_第6张图片

总结

从结果可以看出,自适应分层的打印时间介于0.2mm分层和0.4mm分层的打印时间之间,其精度也在两者之间。 自适应分层的打印时间和误差也小于使用0.3mm分层的打印时间和误差。 也就是说,自适应分层可以兼顾打印时间和打印精度。 既不像使用最小层厚而只关注打印精度而忽略打印效率,也不是像使用最大层厚而只关注打印效率而忽略打印精度。
【STL切片算法文献笔记】基于层合并的批量处理STL海量数据模型的自适应切片方法_第7张图片

你可能感兴趣的:(3D打印切片算法研究,c++,算法,几何学)