步骤二:分层
如果把模型放在XY平面上,Z轴对应的就是模型高度。我们把XY平面抬高一定高度再与模型的表面相交,就可以得到模型在这个高度上的切片。
所谓的分层就是每隔一定高度就用一个XY平面去和模型相交作切片,层与层之间的距离称为层高。全部层高切完后就可以得到模型在每一个层上的轮廓线。就像是切土豆片一样,把一个圆的或不圆的异或不管什么奇形怪状的土豆用菜刀一刀一刀切开,最后就能得到一盘薄如纸片的土豆片,当然那还得你的刀功要足够好才行。
分层本质上就是一个把3D模型转化为一系列2D平面的过程,自此之后的所有操作就都是在2D图形的基础上进行了。
在前面模型载入阶段我说到了CuraEngine埋了一个三角形关联的伏笔,作用是什么,现在可以揭晓答案了。我们知道,两个平面相交,得到的是一条直线,一个平面和一个三角形相交,就得到一条线段。当然也有可能什么也得不到,平台平行啦,三角形的三个点都在平面的同一面之类。这些我们可以不管,我们现在只关心和平面有交集的那些三角形即可。我们把一个平面和所有的三角形都相交了一遍,得到了许许多多的线段。但是我们需要的是2D图形,三角形是2D图形,四边形,任意多边形都是2D图形,而线段不是。所以我们就要把这些线段试着连成一个多边形,那么问题来了,要把这些线段连起来,只能两个两个地去试,看看它们是不是共端点。
粗算一下,每一层都是平方级的复杂度,再算上层数,那就是三次方级。但现在,我们知道了三角形的关联关系。两个关联的三角形,如果都与一个平面相交,那它们的交线一定也是关联的。如此一来,每一条线段只需要判断三个与它相邻三角形,看看与这个平面有没有交线即可,一下子就把问题的复杂度降了一个次元。速度自然可以有质的提升。
|
|
你可能喜欢
开源3D建模软件FreeCAD 1.0正式发布,支持W
人工智能与3D打印技术结合,实现小型核反应
最新《Nature》:动态界面3D打印
石墨烯增强混凝土能否推动可持续建筑? UVA
推荐课程
神奇的3D打印
SLA3D打印工艺全套培训课程 - 软件篇
3D打印月球灯视频教程 包括完整贴图建模流
【原创发布】Cura软件修改二次开发定制视频