一种3D模型切片处理方法及装置与流程

专利检索2022-05-10  23


一种3d模型切片处理方法及装置
技术领域
1.本发明涉及计算机图形学技术领域,尤其涉及一种3d模型切片处理方法及装置。


背景技术:

2.随着计算机图形学的应用领域不断的扩展及垂直化融合,对3d模型处理算法也在不断的进行更新和迭代。其中,切片算法作为能应用于3d模型剖析、视觉艺术、3d打印等大多数主流应用场景的工具,对其的更新与优化将十分有意义。但是,目前对3d模型进行切片时,需要对切割面与3d模型面元的交线方向进行判断。现有技术在判断时需要进行多条件的判断,最终才能确定交线方向。这种判断方法计算量大,从而导致切片处理效率低。


技术实现要素:

3.鉴于上述问题,本发明提出了一种3d模型切片处理方法及装置,可极大缩减了整个切片处理过程的计算开销,显著提高了切片处理效率。
4.第一方面,本技术通过一实施例提供如下技术方案:
5.一种3d模型切片处理方法,包括:
6.获取三维模型;根据预设的切片参数和所述三维模型,获得多条切割交线;所述切割交线为所述三维模型的面元与切割面相交的线段;根据目标法向和目标切割交线,确定方向参考量;所述目标法向为任一面元的法向,所述目标切割交线为所述任一面元的切割交线;根据所述方向参考量和所述多条切割交线的矢量方向,确定切割区域;根据所述切割区域和所述三维模型,生成切片结果。
7.可选的,所述根据目标法向和目标切割交线,确定方向参考量,包括:
8.将所述目标切割交线的矢量方向相对于所述法向的偏转量,确定为所述方向参考量。
9.可选的,所述根据所述方向参考量和所述多条切割交线的矢量方向,确定切割区域,包括:
10.针对每条所述切割交线,判断所述切割交线的矢量方向与所述方向参考量是否匹配;若是,则将所述切割交线的矢量方向,确定为连接方向;若否,则将所述切割交线的矢量方向的反方向,确定所述连接方向;根据所述多条切割交线的连接方向,确定所述切割区域。
11.可选的,所述根据所述多条切割交线的连接方向,确定所述切割区域,包括:
12.根据所述多条切割交线的连接方向连接所述多条切割交线,获得所述切割区域。
13.可选的,所述根据所述多条切割交线的连接方向连接所述多条切割交线,获得所述切割区域,包括:
14.根据预设的初始切割交线,获取第一相邻面元;所述第一相邻面元为在初始面元的预设方向上存在端点重合的面元,初始面元为初始切割交线对应的面元;根据第一相邻交线的连接方向,连接所述初始切割交线与所述第一相邻交线,获得第一折线;所述第一相
邻交线为所述第一相邻面元对应的切割交线;根据所述第一折线,获取第二相邻面元;所述第二相邻面元为在所述第一相邻面元的预设方向上存在端点重合的面元;根据第二相邻交线的连接方向,连接所述第一折线与所述第二相邻交线,获得第二折线;所述第二相邻交线为所述第二相邻面元对应的切割交线;根据所述第二折线,继续连接剩余的切割交线直至连接至所述初始切割交线,获得所述切割区域。
15.可选的,所述根据所述切割区域和所述三维模型,生成切片结果,包括:
16.根据所述切割区域对所述切割区域对应的面元进行切割处理,获得切割单元;判断每个所述切割单元的形状是否为三角形;若是,则根据预设的生成规则,生成可视化的所述切割单元;若否,则基于所述切割单元的对角顶点,生成所述切割单元的子单元;其中,所述子单元的形状为三角形;根据预设的生成规则,生成可视化的所述子单元;根据可视化的所述切割单元和可视化的所述子单元,生成所述切片结果。
17.可选的,所述根据预设的切片参数和所述三维模型,获得多条切割交线,包括:
18.根据预设的切片参数,确定切割面;根据所述切割面与所述面元之间的位置关系,确定所述多条切割交线。
19.可选的,所述根据所述切割面与所述面元之间的位置关系,确定所述多条切割交线,包括:
20.针对每个面元,判断所述面元是否与所述切割面相交;当所述面元与所述切割面相交,则确定所述面元具有切割交线;根据所述面元的顶点坐标与所述切割面,获取所述面元的切割交线。
21.可选的,所述面元与所述切割面相交,包括以下任一种或多种相交情况:
22.所述面元的第一顶点位于所述切割面的第一侧,且所述面元的第二顶点位于所述切割面的第二侧;所述面元的第一顶点位于所述切割面的第一侧,且所述面元的第二顶点和第三顶点位于所述切割面上。
23.可选的,所述根据目标法向和目标切割交线,确定方向参考量之前,还包括:
24.删除与所述切割面重合的面元。
25.第二方面,基于同一发明构思,本技术通过一实施例提供如下技术方案:
26.一种3d模型切片处理装置,其特征在于,包括:
27.生成模块,用于获取三维模型;第一处理模块,用于根据预设的切片参数和所述三维模型,获得多条切割交线;所述切割交线为所述三维模型的面元与切割面相交的线段;第二处理模块,用于根据目标法向和目标切割交线,确定方向参考量;所述目标法向为任一面元的法向,所述目标切割交线为所述任一面元的切割交线;第三处理模块,用于根据所述方向参考量和所述多条切割交线的矢量方向,确定切割区域;切片生成模块,用于根据所述切割区域和所述三维模型,生成切片结果。
28.第三方面,基于同一发明构思,本技术通过一实施例提供如下技术方案:
29.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现上述第一方面中任一项所述方法的步骤。
30.第四方面,基于同一发明构思,本技术通过一实施例提供如下技术方案:
31.一种3d打印系统,包括处理器和存储器,所述存储器耦接到所述处理器,所述存储器存储指令,当所述指令由所述处理器执行时使所述3d打印系统执行上述第一方面中任一
项所述方法的步骤。
32.本发明实施例中提供的一种3d模型切片处理方法及装置,通过获取三维模型;然后,根据预设的切片参数和三维模型,获得多条切割交线;切割交线为三维模型的面元与切割面相交的线段;接着,根据目标法向和目标切割交线,确定方向参考量;目标法向为任一面元的法向,目标切割交线为任一面元的切割交线;再接着,根据方向参考量和多条切割交线的矢量方向,确定切割区域;最后,根据切割区域和三维模型,生成切片结果。本实施例在整个切片处理过程中,获取切割区域时是基于方向参考量对切割交线的矢量方向进行判断和调整的,无需进行多条件的判断;因此,极大缩减了整个切片处理过程的计算开销,显著提高了切片处理效率,并且可应用于不同的场景中,普适性高。
33.上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
34.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
35.图1示出了本发明实施例中提供的一种3d模型切片处理方法的流程图;
36.图2示出了本发明实施例中的面元与切割面相交的情况示意图;
37.图3示出了本发明实施例中求解切割交线的原理示意图;
38.图4示出了本发明实施例中切片精度为低精度时的切片边缘效果示意图;
39.图5示出了本发明实施例中切片精度为高精度时的切片分割示意图;
40.图6示出了本发明实施例中提供的一种3d模型切片处理装置的结构示意图。
具体实施方式
41.下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
42.本发明提供的一种3d模型切片处理方法,可应用于任意对3d模型有切片需求的场景;例如:3d模型剖析、视觉艺术、3d打印等等。该方法可作为功能模块加载或集成到上述各个场景的3d处理软件中;例如,可以代码的形式存储在计算机存储介质中,通过处理器进行读取并执行以实现上述功能模块的功能作用。下面将以具体事例的方式对本发明的方法和装置进行详细阐述。
43.请参见图1,示出了本发明一实施例提供的一种3d模型切片处理方法的流程图。该3d模型切片处理方法,包括:
44.步骤s10:获取三维模型。
45.在步骤s10中,三维模型(3d模型)可通过现有的3d软件进行制作,例如可采用cad
(cad

computer aided design,计算机辅助设计)软件进行制作,得到stl格式的3d模型文件;然后,再将stl格式文件导入到可进行切片的3d软件中的切片处理流程管线,获得三维模型。同时,还可对三维模型数据进行结构性优化;例如,在进行结构性优化后,完成三维模型的面元数据存储后,可通过查找面元之间是否存在重合的点来判断两个面元是否相邻,从而可节省计算资源,提高处理效率。另外,在本实施例中3d软件的类型不作限制,例如可为3d模型剖析的软件,可为进行视觉艺术创作的3d软件,还可为3d打印的3d软件,等等;此外,还可通过计算机图形库(即自编程时用到的图形库)制作生成三维模型;例如,(open graphics library,开放图形库)、directx(direct extension)等等。
46.接着,在本实施例中还可将上述的三维模型构建为完整的、可视化的三维模型,便于用户实时观察及后续对切片参数的调整,构建过程不作限制。
47.步骤s20:根据预设的切片参数和所述三维模型,获得多条切割交线;所述切割交线为所述三维模型的面元与切割面相交的线段。
48.在步骤s20中,预设的切片参数由用户根据需求进行确定,在不同的应用场景中可采用不同的切片参数。切片参数,包括切割方向、切片位置、切片厚度、切片数量以及切片精度等等。其中,切割方向为垂直于切割面的方向,或其他指定方向;切片位置为切割面所在位置;切片厚度的大小为相邻两个切片位置的垂直距离;切片精度为在获得切片结果后可视化展示切片的粗糙度和平整度。切片精度可选择为高精度或低精度;当选择切片精度为低精度时,在生成切片结果前不对切割区域进行优化;当选择切片精度为高精度时,可在生成切片结果前,对切割区域进行面元优化,优化的具体方式将在后续步骤s40中进行阐述。
49.例如,在3d模型剖析中,用户可根据对三维模型剖析的位置确定切片位置、切片数量、切片精度等等。在3d打印过程中,用户可根据3d打印机的打印精度以及需要的打印精度来确定,切片厚度和切片精度。
50.在一些实施方式中,步骤s20的实现过程可如下:
51.首先,根据预设的切片参数,确定切割面。
52.例如,在3d模型剖析或视觉艺术展示的应用场景中,可根据切片位置和切割方向确定切割面,切割面的数量可为一个或多个;另外,还可由用户指定相应的平面函数或曲面函数生成切割面,切割面可为平面或曲面,不作限制。在3d打印的应用场景中,可根据切割方向、切片厚度和切割精度中的任一种或多种确定切割面;具体的,当切割方向为垂直于三维模型的z轴的方向时,即切割面垂直于三维模型的z轴,可沿z轴等间距的取多个切割面。
53.需要说明的是,本实施例中的后续说明是以一个切割面为例的阐述。
54.然后,根据切割面与面元之间的位置关系,确定多条切割交线。
55.具体的,针对每个面元,判断面元是否与切割面相交;当面元与切割面相交,则确定面元具有切割交线;此时,可进一步的计算切割交线。可根据面元的顶点坐标与切割面,获取面元的切割交线。
56.面元与切割面相交,包括以下任一种或多种相交情况:
57.1、面元的第一顶点位于切割面的第一侧,且面元的第二顶点位于切割面的第二侧;如图2中所示的情况1和情况2。
58.2、面元的第一顶点位于切割面的第一侧,且面元的第二顶点和第三顶点位于切割面上;如图2中所示的情况3。
59.按照上述位置关系特点1、2进行相交的判断,可显著的提高判断效率。
60.此外,在一些实施方式中,可能出现与切割面重合的面元,如图2中所示的情况4;也即,法向与切割面垂直的面元。这些面元在形成切片结果时为无效的数据,可在步骤s30之前进行删除,以减小最终模型的数据大小以及节约计算量。例如,在3d打印场景中,与切割面重合的面元不需要形成轮廓信息,也不需要进行打印,即该面元为无效信息,可在步骤s30之前进行删除,以提高切片处理效率。
61.计算切割交线的具体过程可参照如下:
62.以上述的情况1为例进行说明,其他相交情况可进行类推处理。其中,切割面与面元相交后形成的线段ef如图3所示,该线段ef即为待求解的切割交线,z=h为切割面。
63.根据通用直线解析式,联合切割面z=h可得出:
[0064][0065]
因此,可得出交点e及交点f的x、y坐标如下:
[0066][0067][0068]
根据交点e和交点f即可得到切割交线ef的解析式。针对相交情况1、2、3对应的所有面元进行计算,就可得到切割面对应的所有切割交线。
[0069]
步骤s30:根据目标法向和目标切割交线,确定方向参考量;所述目标法向为任一面元的法向,所述目标切割交线为所述任一面元的切割交线。
[0070]
在步骤s30中,在获取到多条切割交线后,为了得到切片就需要对切割交线进行重组连接。在连接时需要按照统一的矢量方向进行连接,保证图形渲染管线对面元按照特定的顺序进行绘制,如逆时针或顺时针连接面元的三个顶点;绘制后,各个面元的法向量朝向均是统一的。例如,面元的法向量相对于三维模型而言均朝外,则该面元为可视的,反之为不可视的。图形渲染管线可为opengl(open graphics library,开放图形库)、directx(direct extension)中的图形渲染管线;其中,在opengl中的图形渲染管线执行绘制时,以逆时针生成的面元具有可视法向量;在directx中的图形渲染管线执行绘制时,以顺时针生成的面元具有可视法向量。
[0071]
因此,本实施例中可通过确定一方向参考量来调整各个切割交线的矢量方向。确定方向参考量所选取的面元,可由用户任意指定,也可随机确定,不作限制。具体的,可将目
标切割交线的矢量方向相对于法向的偏转量,确定为方向参考量。该偏转量可为偏转方向,也可包括偏转方向和偏转角度。
[0072]
步骤s40:根据所述方向参考量和所述多条切割交线的矢量方向,确定切割区域。
[0073]
在步骤s40中,可包括如下的实现过程:
[0074]
首先,针对每条切割交线而言:
[0075]
判断切割交线的矢量方向与方向参考量是否匹配;其中,可将切割交线的矢量方向与其对应的面元法向之间的偏转方向或偏转角度,记为偏差量。此时,是否匹配可分为如下的两种实现方式:1、切割交线的偏差量与方向参考量相同,则可认为当前切割交线的矢量方向与方向参考量相匹配;否者,认为当前切割交线的矢量方向与方向参考量不匹配。2、切割交线的偏差量与方向参考量相反,则可认为当前切割交线的矢量方向与方向参考量相匹配;否者,认为当前切割交线的矢量方向与方向参考量不匹配。需要说明的是,偏差量与方向参考量均可为矢量。然后,当切割交线的矢量方向与方向参考量匹配时,则将切割交线的矢量方向,确定为连接方向;当切割交线的矢量方向与方向参考量不匹配时,即相反,则可将切割交线的矢量方向的反方向,确定连接方向;也即,对切割交线的矢量方向进行反向。这样保证每条切割交线进行连接时的矢量方向(连接方向)相同。
[0076]
本实施例中,通过将切割交线与方向参考量进行匹配的方式来调整切割交线的矢量方向,从而得到连接方向。相对于现有技术中通过面元的顶点绘制顺序来判断六组条件,然后调用对应的逻辑来调整切割交线的矢量方向从而获得连接方向而言,该过程针对每条切割交线仅需要进行一次条件判断,就可确定一条切割交线的连接方向,极大的缩减了计算量、简化了逻辑判断复杂度,提高了稳定性、并行性、易用性、可维护性以及处理效率。
[0077]
针对每条切割交线而言,均进行上述匹配和调整过程,得到所有切割交线的连接方向。
[0078]
切割区域,也即对三维模型进行切割时的可视化部分的位置,可为一闭合多边形围绕的区域。具体的,可基于多条切割交线的连接方向,确定切割区域。为了形成该切割区域,可将多条切割交线进行连接,也即可根据多条切割交线的连接方向连接多条切割交线,获得切割区域。在连接时,可将每条切割交线按照其连接方向进行首尾连接,多条切割交线可进行同时连接,也可按照邻接顺序依次连接,不作限制。
[0079]
例如,按照邻接顺序依次连接各条切割交线时,可按照如下实现方式进行:
[0080]
首先,确定一预设的初始切割交线,该初始切割交线为多条切割交线中选定的任意一条切割交线,以此作为基础连接其他切割交线。
[0081]
然后,根据预设的初始切割交线,获取第一相邻面元;第一相邻面元为在初始面元的预设方向上存在端点重合的面元,初始面元为初始切割交线对应的面元;查找第一相邻面元时,可读取被切割面切割的所有面元,再确定出与初始面元存在端点重合的面元,最后,从端点重合的面元中确定出预设方向上的面元,即为第一相邻面元。该预设方向可与切割交线的连接方向相同,也可与切割交线的连接方向相反,不作限制。
[0082]
接着,根据第一相邻交线的连接方向,连接初始切割交线与第一相邻交线,获得第一折线;第一相邻交线为第一相邻面元对应的切割交线。再接着,根据第一折线,获取第二相邻面元;第二相邻面元的获取过程可参照上述的第一相邻面元的获取过程,不再赘述。第二相邻面元为在第一相邻面元的预设方向上存在端点重合的面元;再根据第二相邻交线的
连接方向,连接第一折线与第二相邻交线,获得第二折线,第二相邻交线为第二相邻面元对应的切割交线。以此类推,不断的进行重复迭代,也即根据第二折线,继续连接剩余的切割交线直至连接至初始切割交线,最终形成闭合的多边形区域,获得切割区域。
[0083]
步骤s50:根据所述切割区域和所述三维模型,生成切片结果。
[0084]
在步骤s50中,在得到切割区域后,即可按照切割区域进行计算处理,将三维模型进行切割分离;当完成所有切割后,形成所需要的切片结果。本实施例中提供如下的两种获取切片结果的具体实现方式:
[0085]
1、针对高精度的三维模型或对切割精度要求较低的三维模型,可选择切片精度为低精度。此时,不对切割交线所在的面元本身进行修改处理。例如,在三维模型沿切割区域a进行分离时,可形成切片1和切片2,可将含有切割交线的面元分离到切片1或切片2,不作限制。具体分离面元时具有如下方式:
[0086]
1)在含有切割交线的面元上,获取距离切割交线最远的顶点;将该面元分配给该最远的顶点对应的切片,该方式能够保证切片的切割面更加平整。
[0087]
2)预设一正方向,将含有切割交线的面元分配给该正方向所指向的切片,该方式计算量小,分割效率高。如图4所示,其中将含有切割交线的面元全部分配给了正方向所指向的切片1。
[0088]
3)在含有切割交线的面元上,获取该面元的三个顶点距离切割交线的距离;然后,确定出该面元同一侧(包含与切割交线重合的顶点)的两个顶点距离切割交线的平均距离。然后,设置一距离阈值来对该面元进行分配,若平均距离小于该距离阈值,则可将该面元分配给这两个顶点所在的切片。例如:用户设置一距离阈值r,若被分割的面元中同方向的两个顶点距离切割交线的平均距离小于r,则将该面元分配给这两个顶点所在的切片。
[0089]
2、针对低精度的三维模型或对切割精度要求较高的三维模型,可选择切片精度为高精度。此时,可对切割交线所在的面元本身进行修改处理。本实施例具体有如下的处理方式:
[0090]
首先,根据所述切割区域对切割区域对应的面元进行切割处理,获得切割单元;其中,切割处理为对切割交线经过的面元进行计算,得到该面元被切割交线分离形成的两个切割单元。此时的切割单元是不可视的,也即还未生成可视化的切片。
[0091]
然后,判断每个切割单元的形状是否为三角形。
[0092]
当切割单元为三角形时,可根据预设的生成规则,生成可视化的切割单元;即切片重组完成后绘制该切割单元。该切割单元不需要进行额外的优化处理,依然可保证得到平整的切片边缘。
[0093]
当切割单元不为三角形时,则基于切割单元的对角顶点,生成切割单元的子单元;其中,子单元的形状为三角形。具体的,在确定切割单元的对角顶点时,可随机确定一组对角顶点,按照所确定的对角顶点将该切割单元划分为两个子单元。接着,根据预设的生成规则,生成可视化的子单元,也即在切片重组完成后,绘制该子单元。最后,根据可视化的切割单元和可视化的子单元,将三维模型数据进行重组,生成切片结果,如图5所示,其中切片1和切片2的边缘均为平整分割。通过该优化过程,可将面元进行切割和重组,保证切片边缘的平整性,降低粗糙度;避免了低精度模式切片处理后的不平整问题。
[0094]
在本实施例中,还可加入对切片结果的判断步骤,判断该切片结果是否符合预设
的需求条件。该需求条件表示达到用户所需要的平整度和粗糙度。在进行判断后,若达到预设条件则将该切片结果作为最终结果;若无法达到最终条件则调整切片参数,并返回步骤s20,重新执行步骤s20

s50直至获得符合需求条件的最终结果。用户根据需求可将最终结果进行转码输出,转码方式不做限制。
[0095]
为了使本实施例技术方案更易于理解,下面通过多个应用场景为示例进行说明:
[0096]
以3d模型剖析应用场景为例:
[0097]
该场景可出现于工业制造过程中,该方法内嵌与3d设计软件中。例如,某工厂设计负责人需在原理上对一个机械部件设计进行评估,该部件内嵌有一些内部结构,且内部结构从模型外部不可视。此时,便需要对该机械部件的三维模型的切片处理来使内部结构曝光。操作核心流程可参照如下:
[0098]
a、将设计部件的数据文件加载入3d设计软件;
[0099]
b、设计软件会将设计不见数据进行解析并以可视的3d模型呈现在工作区域中;
[0100]
c、用户选中设计部件并选取需切割的切割位置或采用预设的切片方式;例如,对半剖开、纵向或横向切除1/4等等;
[0101]
d、用户点击切片功能启动键;例如,可以通过软件工具栏图标、菜单选取、自动弹出确认等多种方式;
[0102]
e、3d设计软件内部调用本实施例中公开的3d模型切片处理方法按预设的切片参数进行切片处理,最后可得到切片结果,也即被切割后的模型;
[0103]
f、切割后模型数据被3d设计软件实时更新至工作区域供用户查看和评估。此时,用户可对切片结果选择保存功能或导出功能,导出时可选择需要的保存格式进行导出。
[0104]
以视觉艺术类应用场景为例:
[0105]
本实施例中提及的视觉艺术特指对已有3d模型进行艺术加工,以呈现出各种艺术效果。与上述3d模型剖析应用场景不同的是:在对3d模型调用本实施例方法进行切片处理后,一般还需对模型进行艺术处理。其中,切片处理时,包括如下的任一种或多种:按部位切片、按距离切片、按特定函数切片等等,不作限制;艺术处理时,可包括如下的任一种或多种:对各切片部位进行重组、染色、材质变换、光影效果、贴图、添加空间背景、增加动作等等,不作限制;使最后的成品展现出艺术性。另一个差异在于艺术行业对3d模型的处理通常是多平台、跨平台的操作,常常有在一款软件中建模及初步完善,然后导入到另一综合性引擎中进行更丰富的内容操作。尤其是在跨平台的云合作平台问世后,更是增添了对多人在线编辑的支持。可将数据文件进行统一转码,保证相互兼容,确保合作设计内容的实时共享及查看。
[0106]
以3d打印应用场景为例:
[0107]
在3d打印过程中,需要将设计好的3d模型数据读入专门的打印机,实现对3d模型本身的立体打印。随着技术的发展,3d打印已从最开始的模型、玩具打印,扩展到了机械部件制作、房屋建造、高精密结构制造等各个领域中。3d打印时,对3d模型的处理流程如下:
[0108]
a、将3d模型数据文件读入3d打印设计软件中;例如,stl文件(一种3d打印数据文件格式);
[0109]
b、打印设计软件将stl文件中的模型数据进行解析后构造为可视化的3d模型呈现在工作区域中;
[0110]
c、将3d模型沿着某一方向,如3d模型的z轴方向,根据不同工艺要求调用本实施例的3d模型切片处理方法进行切片精度选择并等间距切片处理,得到一系列二维平面信息;
[0111]
d、将c步骤中的二维平面信息与3d打印机的加工参数进行耦合,转码为3d打印机可识别的*.gcode文件(一种3d打印机执行指令文件);
[0112]
e、打印机按照*.gcode文件指令进行3d打印。
[0113]
综上可见,本实施例中提供的一种3d模型切片处理方法,通过获取三维模型;然后,根据预设的切片参数和三维模型,获得多条切割交线;切割交线为三维模型的面元与切割面相交的线段;接着,根据目标法向和目标切割交线,确定方向参考量;目标法向为任一面元的法向,目标切割交线为任一面元的切割交线;再接着,根据方向参考量和多条切割交线的矢量方向,确定切割区域;最后,根据切割区域和三维模型,生成切片结果。本实施例在整个切片处理过程中,获取切割区域时是基于方向参考量对切割交线的矢量方向进行判断和调整的,无需进行多条件的判断;因此,极大缩减了整个切片处理过程的计算开销,显著提高了切片处理效率,并且可应用于不同的场景中,普适性高。
[0114]
请参阅图6,在本发明的又一实施例中提供了一种3d模型切片处理装置300,包括:
[0115]
生成模块301,用于获取三维模型;第一处理模块302,用于根据预设的切片参数和所述三维模型,获得多条切割交线;所述切割交线为所述三维模型的面元与切割面相交的线段;第二处理模块303,用于根据目标法向和目标切割交线,确定方向参考量;所述目标法向为任一面元的法向,所述目标切割交线为所述任一面元的切割交线;第三处理模块304,用于根据所述方向参考量和所述多条切割交线的矢量方向,确定切割区域;切片生成模块305,用于根据所述切割区域和所述三维模型,生成切片结果。
[0116]
作为一种可选的实施方式,所述第二处理模块303,还具体用于:
[0117]
将所述目标切割交线的矢量方向相对于所述法向的偏转量,确定为所述方向参考量。
[0118]
作为一种可选的实施方式,所述第三处理模块304,还具体用于:
[0119]
针对每条所述切割交线,判断所述切割交线的矢量方向与所述方向参考量是否匹配;若是,则将所述切割交线的矢量方向,确定为连接方向;若否,则将所述切割交线的矢量方向的反方向,确定所述连接方向;根据所述多条切割交线的连接方向,确定所述切割区域。
[0120]
作为一种可选的实施方式,所述第三处理模块304,还具体用于:
[0121]
根据所述多条切割交线的连接方向连接所述多条切割交线,获得所述切割区域。
[0122]
作为一种可选的实施方式,所述第三处理模块304,还具体用于:
[0123]
根据预设的初始切割交线,获取第一相邻面元;所述第一相邻面元为在初始面元的预设方向上存在端点重合的面元,初始面元为初始切割交线对应的面元;根据第一相邻交线的连接方向,连接所述初始切割交线与所述第一相邻交线,获得第一折线;所述第一相邻交线为所述第一相邻面元对应的切割交线;根据所述第一折线,获取第二相邻面元;所述第二相邻面元为在所述第一相邻面元的预设方向上存在端点重合的面元;根据第二相邻交线的连接方向,连接所述第一折线与所述第二相邻交线,获得第二折线;所述第二相邻交线为所述第二相邻面元对应的切割交线;根据所述第二折线,继续连接剩余的切割交线直至连接至所述初始切割交线,获得所述切割区域。
[0124]
作为一种可选的实施方式,所述切片生成模块305,具体用于:
[0125]
根据所述切割区域对所述切割区域对应的面元进行切割处理,获得切割单元;判断每个所述切割单元的形状是否为三角形;若是,则根据预设的生成规则,生成可视化的所述切割单元;若否,则基于所述切割单元的对角顶点,生成所述切割单元的子单元;其中,所述子单元的形状为三角形;根据预设的生成规则,生成可视化的所述子单元;根据可视化的所述切割单元和可视化的所述子单元,生成所述切片结果。
[0126]
作为一种可选的实施方式,所述第一处理模块302,具体用于:
[0127]
根据预设的切片参数,确定切割面;根据所述切割面与所述面元之间的位置关系,确定所述多条切割交线。
[0128]
作为一种可选的实施方式,所述第一处理模块302,具体用于:
[0129]
针对每个面元,判断所述面元是否与所述切割面相交;当所述面元与所述切割面相交,则确定所述面元具有切割交线;根据所述面元的顶点坐标与所述切割面,获取所述面元的切割交线。
[0130]
作为一种可选的实施方式,所述面元与所述切割面相交,包括以下任一种或多种相交情况:
[0131]
所述面元的第一顶点位于所述切割面的第一侧,且所述面元的第二顶点位于所述切割面的第二侧;所述面元的第一顶点位于所述切割面的第一侧,且所述面元的第二顶点和第三顶点位于所述切割面上。
[0132]
作为一种可选的实施方式,还包括:删除模块,用于在所述根据目标法向和目标切割交线,确定方向参考量之前,删除与所述切割面重合的面元。
[0133]
需要说明的是,本发明实施例所提供的一种3d模型切片处理装置300,其具体实现及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
[0134]
在本发明的又一实施例中还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述方法实施例中任一步骤。
[0135]
需要说明的是,本发明实施例所提供的一种计算机可读存储介质,其程序被处理器执行时所述实现的步骤及产生的技术效果和前述方法实施例相同,为简要描述,本实施例部分未提及之处,可参考前述方法实施例中相应内容。
[0136]
在本发明的又一实施例中还提供了一种3d打印系统,包括处理器和存储器,所述存储器耦接到所述处理器,所述存储器存储指令,当所述指令由所述处理器执行时使所述3d打印系统执行前述方法实施例中任一步骤。
[0137]
需要说明的是,本发明实施例所提供的一种3d打印系统,其具体实现及产生的技术效果和前述方法实施例相同,为简要描述,本装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
[0138]
本文中出现的术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系;单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实
现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
[0139]
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
[0140]
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0141]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0142]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0143]
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
[0144]
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
转载请注明原文地址:https://win.8miu.com/read-50055.html

最新回复(0)