一种用于3DP增材制造的快速切片方法与流程

文档序号:20708407发布日期:2020-05-12 16:47阅读:808来源:国知局
一种用于3DP增材制造的快速切片方法与流程

本发明属于增材制造、3d打印技术领域,具体涉及一种用于3dp增材制造的快速切片方法。



背景技术:

在3d打印中,3dp打印工艺(立体喷墨打印法)的切层是像素点阵,分辨率一般是可调的。

目前现有3dp切片技术中,一般不区分边界部分和内部填充部分。然而,切层的边界部分和内部填充部分的打印工艺有时是不同的。比如边界部分需要喷射得更细致,而内部填充部分可以喷射的粗糙一些,以提高打印速度;再比如在彩色3d打印中,边界部分需要喷射彩色墨滴,而内部填充部分则喷射白色或无色墨滴。

因此,在切片算法中需要将边界部分区分出来,以做特定处理,切片的每一层是一个点阵,边界部分也是用点阵表示的,它有一定厚度,以离散像素表示。问题的难点在于,这个边界厚度在垂直于三维模型表面的法线方向上应保持一致,这使得计算复杂度增加,而三维模型数据量往往很大,三角面片数一般在几百兆,处理速度要求要很快。因此,急需提出一种能够区分三维模型的边界部分和内部填充部分,在边界部分保持各向厚度一致性的切片方法来解决上述问题。



技术实现要素:

本发明提出一种快速3dp切片算法,并在边界部分保持法向厚度一致性,计算复杂度与模型三角面片数为线性关系,仅为o(n*d),其中n为模型的总三角面片数,d为切片点阵分辨率。

一种快速3dp切片算法,具体步骤如下:

步骤1.筛选出跨过切层的三角形:

设模型边界需要厚度为thick毫米,在每个切层高度(level毫米),检查三维模型中每个三角形是否跨过level±thick(毫米)高度范围。即设三角形三个顶点为p1、p2、p3,如果p1、p2、p3的高度坐标同时大于level+thick或同时小于level-thick,则三角形没有跨过level±thick层面高度。否则是跨过,把该三角形加入切片运算集合r={待计算三角形}。

步骤2.计算每个三角形的矩形thick包络:

对集合r的每个三角形做xy平面投影,计算投影三角形的xy平面范围。即设三角形三个顶点为p1、p2、p3,它们在其x坐标最大值为xmax,在x坐标最小值为xmin,在y坐标最大值为ymax,在y坐标最小值为ymin,则三角形的xy平面投影范围是[xmin,xmax;ymin,ymax]。要求的三角形的矩形thick包络则是[xmin-thick,xmax+thick;ymin-thick,ymax+thick]矩形。

步骤3.计算法向厚度为thick的边界像素

对在level(毫米)高度得到的三维模型切片轮廓线,进行扫描线像素点填充,得到实体部分像素点集合v。对集合r的每个空间三角形a,计算其矩形thick包络的扫描线像素点填充,得到像素点集合s。对每一个既属于集合v(实体内部)又属于集合s(三角形a附近)的像素点p∈{v∩s},设空间坐标为p=[x,y,z],计算点p到空间三角形a所在平面的垂足q。如果满足下列条件之一,则该像素点是法向厚度为thick的边界像素点:

1)、点q在三角形a内,且p到a的点面距离d小于thick;

2)、点q在三角形a外,但在三角形a某个边的thick宽度矩形内,且p到该边的点边距离小于thick;

3)、点q在三角形a外,且q在a的三条边的thick宽度矩形外,但p到某顶点的距离。小于thick。

本发明的有益效果:

与现有流行的切片技术相比,本3dp切片方法能够区分三维模型的边界部分和内部填充部分,在边界部分保持法向厚度一致性。这有利于做彩色切片处理,或边界精细打印处理。算法快速完成切片,计算复杂度与模型三角面片数为线性关系,仅为o(n*d),其中n为模型的总三角面片数,d为切片点阵分辨率。

附图说明

图1:一个封闭模型实体,蓝色为边界部分,横线为切平面

图2:选出与level±thick水平切面相交的三角形,其中黑粗线部分为需要计算的跨过level±thick的三角形(侧影)集合r

图3:空间三角形在切平面投影的thick矩形包络,其中虚线矩形为该三角形的thick包络。

图4:对切平面上模型轮廓型进行像素行扫描,得到实体点阵

图5:像素点p到模型三角形a的垂足q在三角形区域内。

图6:垂足q在三角形区域外,但在边thick矩形范围内。

图7:垂足q在三角形区域外,且在边thick矩形范围外,但在顶点thick距离范围内。

图8:计算该空间三角形附近边界像素点的实例。

具体实施方式

下面结合附图说明对本发明提出的技术方案做进一步的描述。

一种快速3dp切片算法,具体步骤如下:

步骤1.筛选出跨过切层的三角形:

如图2所示,设模型边界需要厚度为thick毫米,在每个切层高度(level毫米),检查三维模型中每个三角形是否跨过level±thick(毫米)高度范围。即设三角形三个顶点为p1、p2、p3,如果p1、p2、p3的高度坐标同时大于level+thick或同时小于level-thick,则三角形没有跨过level±thick层面高度。否则是跨过,把该三角形加入切片运算集合r={待计算三角形}。图2中黑粗线部分为需要计算的三角形侧影集合r。

步骤2.计算每个三角形的矩形thick包络

对集合r的每个三角形做xy平面投影,计算投影三角形的xy平面范围。即设三角形三个顶点为p1、p2、p3,它们在其x坐标最大值为xmax,在x坐标最小值为xmin,在y坐标最大值为ymax,在y坐标最小值为ymin,则三角形的xy平面投影范围是[xmin,xmax;ymin,ymax]。要求的三角形的矩形thick包络则是[xmin-thick,xmax+thick;ymin-thick,ymax+thick]矩形。图3为计算该空间三角形在切平面投影的thick矩形包络示意图。

步骤3.计算厚度为thick的边界像素

如图4所示,对在level(毫米)高度得到的三维模型切片轮廓线,进行扫描线像素点填充,得到实体部分像素点集合v。对集合r的每个空间三角形a,计算其矩形thick包络的扫描线像素点填充,得到像素点集合s。对每一个既属于集合v(实体内部)又属于集合s(三角形a附近)的像素点p∈{v∩s},设空间坐标为p=[x,y,z],计算点p到空间三角形a所在平面的垂足q。如果满足下列条件之一,则该像素点是法向厚度为thick的边界像素点:

1)、如图5所示,点q在三角形a内,且p到a的点面距离d小于thick;

2)、如图6所示,点q在三角形a外,但在三角形a某个边的thick宽度矩形内,且p到该边的点边距离小于thick;

3)、如图7所示,点q在三角形a外,且q在a的三条边的thick宽度矩形外,但p到某顶点的距离小于thick。

如图8所示,图中阴影部分为三维模型的thick厚度的边界(这里边界是外壳向内部增加的厚度),等间距水平线为切片高度,加粗的黑线部分表示一个三角形的侧面视图,浅粗线表示这个三角形投影到水平xy平面后,增加thick宽度的thick矩形包络的侧面视图。thick矩形包络上的像素点,都是有可能的边界像素点。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1