3D打印里,STL文件应用最为广泛。本文比较分析了两种不同表示方法的STL格式,探讨了其优势与缺陷。依据文件数据特点,构建了顶点和三角形面片的存储结构,用于读取文件与保存模型数据。阐述OpenGL渲染原理及实际模型显示流程后,采用C++结合OpenGL技术实现模型渲染与可视化,便于后期观察数据处理结果,保障处理准确性。
3D打印采用逐层叠加带厚度切片的方式,当相邻两层轮廓线在分层平面正投影不重合时,会产生台阶效应。这种阶梯状表面对产品表面粗糙度、尺寸精度影响大,还会给产品后处理带来不便。台阶效应程度与成形方向直接相关,所以选择合适的成形方向十分关键。
自适应分层中,层高是变量,计算体积误差时无法以公因数形式提取。因此,需先根据不同自适应分层算法确定的层高,单独计算每一层每个三角形面片产生的体积误差,再累加各层体积误差得到总体积误差。
实现局部区域体积误差计算的基本思路:
遗传算法全局最优解搜寻能力强,能自适应调整搜索方向,且不受目标函数性质约束。本文用其对目标优化函数进行迭代求解。个体体积误差越大,适应度越低。在编码范围内,对种群个体按适应度施加遗传操作,用新种群替换当前种群,循环此过程使问题解不断优化,直至产生最优解。
与本文优化结果对比可知:
分析等厚分层与自适应分层在成形方向优化中的差异,提出适合分层厚度变化情况的模型成形方向优化算法,解决了现有算法只能在等厚前提下优化的问题。
实例表明:
本文优化算法是仅考虑表面质量的单目标优化,实际打印可能还需考虑成形高度和减少支撑,未来将探讨层厚变化前提下模型成形方向的多目标优化。
随着对打印精度、成形质量要求提高,除从硬件提高打印设备定位精度外,从软件算法着手也很有效,主要体现在:
使用高精度STL模型或减小分层厚度,会大幅提高数据处理复杂度,对分层算法提出更高要求。
提出的“前边”“后边”概念,使任意三角形与切平面相交时仅需计算一个交点,所需存储交点数量减半,算法通过“公共边”匹配形式对交点进行轮廓构造。
具体描述为:将三角形法向量指向观察者,三角形与切平面的左相交边为前边,右相交边为后边,公共边为相邻三角形共用边。循环上述步骤完成轮廓构造。
算法顺序遍历一次STL模型即完成分层,无需像构建拓扑关系或为三角形排序那样保存中间数据,提高了效率、节约了内存。
其关键在于“前边”“后边”判定和根据ECC算法进行轮廓构造,计算得到一个交点后,ECC算法在当前层查找“公共边”,找到相邻三角形并完成交点插入。
分析STL模型三角形面片与相邻切片层位置关系发现,生成相邻轮廓层的三角形有一定比例重复,同一三角形中相邻交点轮廓构造方式可能相同,这部分交点可按上一层轮廓构造过程插入。
若能剔除所有“公共边”重复查找部分,将大幅提高模型轮廓构建速度,提升切片效率。显然,分层厚度越小,生成相邻切片轮廓的重复三角形数量越多,可避免的重复计算量越大。因此,文献提出的ECC算法虽高效,但仍有改进空间。
STL文件中三角形出现无序,顺序读入时三角形面片在实际模型中不一定相邻,按上述步骤执行,算法在每个切片层会产生大量轮廓片段,程序运行中这些离散轮廓片段逐渐归并,最终在各层形成若干首尾相连的轮廓。
生成相邻两层切片轮廓的三角形大量重复,本文算法核心思想是利用上一层交点轮廓构造信息决定下一层交点插入位置,直接归并离散轮廓,避免“公共边”匹配。因此,需先分析交点所有可能的插入位置。