CN108724734A - 一种基于密集特征的3d打印前处理分层算法 - Google Patents
一种基于密集特征的3d打印前处理分层算法 Download PDFInfo
- Publication number
- CN108724734A CN108724734A CN201810499982.1A CN201810499982A CN108724734A CN 108724734 A CN108724734 A CN 108724734A CN 201810499982 A CN201810499982 A CN 201810499982A CN 108724734 A CN108724734 A CN 108724734A
- Authority
- CN
- China
- Prior art keywords
- tri patch
- height
- tangent plane
- printing
- dough sheet
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B29—WORKING OF PLASTICS; WORKING OF SUBSTANCES IN A PLASTIC STATE IN GENERAL
- B29C—SHAPING OR JOINING OF PLASTICS; SHAPING OF MATERIAL IN A PLASTIC STATE, NOT OTHERWISE PROVIDED FOR; AFTER-TREATMENT OF THE SHAPED PRODUCTS, e.g. REPAIRING
- B29C64/00—Additive manufacturing, i.e. manufacturing of three-dimensional [3D] objects by additive deposition, additive agglomeration or additive layering, e.g. by 3D printing, stereolithography or selective laser sintering
- B29C64/30—Auxiliary operations or equipment
- B29C64/386—Data acquisition or data processing for additive manufacturing
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B33—ADDITIVE MANUFACTURING TECHNOLOGY
- B33Y—ADDITIVE MANUFACTURING, i.e. MANUFACTURING OF THREE-DIMENSIONAL [3-D] OBJECTS BY ADDITIVE DEPOSITION, ADDITIVE AGGLOMERATION OR ADDITIVE LAYERING, e.g. BY 3-D PRINTING, STEREOLITHOGRAPHY OR SELECTIVE LASER SINTERING
- B33Y50/00—Data acquisition or data processing for additive manufacturing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
Landscapes
- Engineering & Computer Science (AREA)
- Chemical & Material Sciences (AREA)
- Materials Engineering (AREA)
- Physics & Mathematics (AREA)
- Manufacturing & Machinery (AREA)
- Optics & Photonics (AREA)
- Mechanical Engineering (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种基于密集特征的3D打印前处理分层算法,该方法按照以下步骤实施:步骤1,通过对STL文件格式的3D模型进行最小高度三角面片的遍历搜索和确定,从而确定基准切平面;步骤2,以基准切平面为基准向上和向下进行分层,确定相交三角面片集合中的最小高度三角面片,并以该三角面片的高度为参考确定该层的层高;实现自适应分层,保证3D打印模型的外形精度;步骤3,以此类推,将三维模型的所有分层工作完成。该算法是以三维模型的最小高度三角面片所在位置为分层基准,向下及向上进行分层处理,分层时按照自适应分层法则,根据面片高度大小自动设定分层高度,既提高打印效率,又保证打印的三维模型精度。
Description
技术领域
本发明属于3D打印前处理技术领域,具体涉及一种基于密集特征的3D打印前处理分层算法。
背景技术
3D打印技术是一种通过将熔融材料自下而上进行层层堆积的新型制造方式,经过30多年的发展,在医疗、航天、工业、教育、个性品等领域得到了广泛应用,但是对于如何来达到制造精度与制造效率的极限,仍旧是我国目前3D打印技术的发展趋势所在。目前,国内所使用的前处理软件大多来自国外的开源软件或者进行简单的汉化,这些软件虽说可以完成大多模型的预处理工作,但是算法效率低、稳定性差,特别是对于较复杂模型的前处理,对核心算法的理解并不深刻。开源软件的分层算法一般采用以最低层为基准层向上逐层等厚度进行分层,分层处理的结果容易造成密集区域的特征丧失。因为三维模型一般进行STL文件处理后,表面均为三角面片,而密集特征(三维特征细腻的地方)三角面片一般较小而且较为密集,利用等厚度和以最低层为基准层分层就容易丢失这些三角面片,从而造成特征的丢失,使得打印的三维模型局部失真。
发明内容
本发明的目的是提供一种基于密集特征的3D打印前处理分层算法,该算法是以三维模型的最小高度三角面片所在位置为分层基准,向下及向上进行分层处理,分层时按照自适应分层法则,根据面片高度大小自动设定分层高度,该方法能够提高打印效率,又能够保证打印的三维模型精度。
本发明所采用的技术方案是,一种基于密集特征的3D打印前处理分层算法,包括如下步骤:
步骤1,通过对STL文件格式的3D模型进行最小高度三角面片的遍历搜索和确定,从而确定基准切平面;
步骤2,以基准切平面为基准向上和向下进行分层,确定相交三角面片集合中的最小高度三角面片,并以该三角面片的高度为参考确定该层的层高;实现自适应分层,保证3D打印模型的外形精度;
步骤3,以此类推,将三维模型的所有分层工作完成。
本发明的特点还在于,
步骤1具体按如下步骤实施:
步骤1.1,根据3D打印机自身机械条件所允许的打印层厚,设置自适应分层算法的分层厚度范围△hmin和△hmax;
步骤1.2,遍历三角面片链表,剔除三个顶点坐标同时位于一个切平面上的三角面片,更新三角面片链表数据;
步骤1.3,更新三角面片链表数据后,遍历更新后的链表,搜索最小三角面片所在位置。
步骤1.3中,搜索最小三角面片所在位置的方法为:计算出当前三角面片三个顶点中每两组顶点间的Z值绝对值差值的最大值,移动链表指针,重复计算并进行两两比较,取差值较小者,并进行标记,直到遍历完整个面片顶点坐标链表,即可搜索出最小三角面片所在位置;
步骤2具体按如下步骤实施:
步骤2.1,确定基准切平面以及向上向下移动一个分层厚度后,查找与切平面所相交的三角面片集合,并构建缓冲面片链表对相交面片信息进行存储;
步骤2.2,从建立的缓冲面片链表中进行搜索,查找三角面片集合中在分层方向上具有最小高度差的三角面片;计算三角面片3个顶点中每两组顶点间Z轴差值绝对值,并保存到数组;
步骤2.3,以遍历的方式相互比较,找出最小高度三角面片,并以此为参考进行下一层层厚的确定。
步骤1中,所述基准切平面是通过搜索STL文件中在打印方向上具有最小差值的面片所处位置来确定的。
本发明的有益效果是:通过查找当前STL文件中的最小三角面片所在位置,从而确定基准切平面。由于特征密集处通常情况下聚集了大量的三角面片,采用等层厚分层算法容易跨越较小的三角面片,从而造成模型细节特征丢失。通过搜索最小三角面片可以保证模型特征密集处的处理精度,同时通过查找与当前切平面所相交三角面片集合的高度(Z方向)最小值来自动确定分层高度,保证分层精度的情况下提高了打印效率。
附图说明
图1是开源软件分层示意图;
图2是本发明方法分层示意图;
图3是本发明方法中的确定相邻切平面分层高度的流程图;
图4是本方明方法中的确定每层最小高度面片的流程图;
图5是本发明方法中对人脸模型进行分层处理后的显示结果。
具体实施方式
下面结合附图和具体实施方式对本发明进行详细说明。
本发明提供了一种基于密集特征的3D打印前处理分层算法,包括以下步骤:
步骤1,通过对STL文件格式的3D模型进行最小高度三角面片的遍历搜索和确定,从而确定基准切平面;其中,基准切平面是通过搜索STL文件中在打印方向上具有最小差值的面片所处位置来确定的。
步骤1具体按如下步骤实施:
步骤1.1,根据3D打印机自身机械条件所允许的打印精度,设置自适应分层算法的分层厚度范围△hmin和△hmax;
步骤1.2,遍历三角面片链表,剔除三个顶点坐标同时位于一个切平面上的三角面片,更新三角面片链表数据;
步骤1.3,更新三角面片链表数据后,遍历更新后的链表,搜索最小三角面片所在位置;其中,搜索最小三角面片所在位置的方法为:计算出当前三角面片三个顶点中每两组顶点间的Z值绝对值差值的最大值,移动链表指针,重复计算并进行两两比较,取差值较小者,并进行标记,直到遍历完整个面片顶点坐标链表,即可搜索出最小三角面片所在位置;
步骤2,以基准切平面为基准向上和向下进行分层,确定相交三角面片集合中的最小高度三角面片,并以该三角面片的高度为参考确定该层的层高;实现自适应分层,保证3D打印模型的外形精度;
步骤2具体按如下步骤实施:
步骤2.1,确定基准切平面以及向上向下移动一个分层厚度后,查找与切平面所相交的三角面片集合,并构建缓冲面片链表对相交面片信息进行存储;
步骤2.2,从建立的缓冲面片链表中进行搜索,查找三角面片集合中在分层方向上具有最小高度差的三角面片;计算三角面片3个顶点中每两组顶点间Z轴差值绝对值,并保存到数组;
步骤2.3,以遍历的方式相互比较,找出最小高度三角面片,并以此为参考进行下一层层厚的确定;
步骤3,以此类推,将三维模型的所有分层工作完成。
图1及图2中1-7为两种不同分层方式下同一三维模型在不同位置处的细节特征,其中图1采用相同的分层厚度,图2采用变化的分层厚度。图3为本发明算法中如何来自适应式确定分层高度的算法流程图,主要包含设置分层高度范围、确定基准切平面以及确定分层高度三大部分。图4为本发明方法中自适应式计算分层高度提取流程图,主要包含计算当前三角面片最小高度值、遍历三角面片链表以及确定下一层切平面高度值三大部分。图5为本发明方法对人脸模型进行分层处理后的显示结果。
实施例
人脸模型的嘴部是密集特征处,其三角面片很小,特征很明显。如果采用开源软件的等层厚分层算法,如图1中所示,就有可能使打印出来的三维模型嘴部特征失真。而采用图2所示的本发明方法,则是以最小高度的三角面片为分层基准,从而进行自适应分层。根据所要分层处三角面片的高度大小来确定分层高度从而能够保证密集特征的高精度再现。
本发明方法具体实施方式见图3,
步骤1,确定三维模型三角面片链表中的最小三角面片所在位置;
STL文件中三维模型表面特征密集处的三角面片较为密集而且较小,为保证分层过程中不丢失细节特征,确定基准切平面的核心思想在于搜索STL文件中在打印方向上具有最小差值的面片所处位置来确定基准切平面所在,确保对密集特征处的处理精度,从而保证不丢失最小细节特征;
具体步骤如图3所示:
(1)首先,根据3D打印机自身机械条件所允许的打印精度,设置自适应分层算法的分层厚度范围△hmin和△hmax;
(2)遍历三角面片链表,剔除三个顶点坐标同时位于一个切平面上的三角面片,这些面片不会对轮廓点的提取造成影响,但是会影响程序后续确定分层高度。更新三角面片链表数据,更新后的链表表头标记为d_sjx1。定义剔除函数,函数体如下:
(3)更新链表后,遍历更新后的链表,搜索最小三角面片所在位置。首先,计算出当前三角面片三个顶点中每两组顶点间的Z值绝对值差值的最大值,移动链表指针,重复计算并进行两两比较,取差值较小者,并进行标记,直到遍历完整个面片顶点坐标链表,即可搜索出最小三角面片所在位置,记基准切平面高度h=z_c,并通过查找与当前切平面所相交面片集合中的最小高度△Zmin,与所设置分层厚度范围进行比较,以此来确定相邻切平面的分层厚度△h,详见步骤2。
步骤2,确定基准切平面后,分别向上和向下进行分层。搜索与当前切平面所相交面片集合中高度最小的三角面片,并以此来确定该层的分层高度;
具体步骤如图4所示:
(1)确定基准切平面后,查找相交三角面片集合,并构建缓冲面片链表对相交面片信息进行存储,求取两者交点,并进行存储;
(2)从步骤(1)中建立的缓冲面片链表中进行搜索,查找面片集合中在分层方向上的具有最小高度差的面片;首先,计算面片3个顶点中每两组顶点间Z轴差值绝对值,d_k为顶点序号,取0到2,计算maxZ[d_k]=fabs(d_te->d_loop[d_k][2]-d_te->d_loop[(d_k+1)%3][2]),并保存到数组maxZ[3],并定义临时变量Count=0。
(3)计算出三角面片顶点差值max[3]后,取数组编号m为0到2,两两比较得到数组max[m]的最大值,并定义maxz等于其最大值。当临时变量Count=0时,令最小高度差值面片高度minZ等于当前三角面片Z轴差值数组中的最大者maxz,为其赋初值;移动面片链表表头指针d_te,重复以上计算过程,如果maxz<minZ,则更新minZ,此时minZ=maxz;如果不成立,则保持minZ不变,移动链表指针,即d_te=d_te->d_next,指向下一个三角面片,直到遍历完整个缓冲链表;
(4)遍历完缓冲面片链表后,即可根据界面特征自动计算出当前切平面的面片Z轴差值最小者minZ;
(5)根据与当前切平面相交面片集合中的最小高度值minZ,来确定相邻切平面的层厚;
步骤3,以此类推,将三维模型的所有分层工作完成。
本发明方法,通过相应算法首先确定三维模型中在分层方向上具有最小高度的三角面片面片,并把该最小高度的三角面片所在位置作为基准切平面,向上和向下分别进行分层。通过搜索相交面片集合中的最小高度三角面片并以此来确定分层厚度,实现自适应的分层效果(如图5)。本发明的分层方法充分考虑了模型表面的密集特征,从而保证了三维模型的较高精度。
Claims (5)
1.一种基于密集特征的3D打印前处理分层算法,其特征在于,包括如下步骤:
步骤1,通过对STL文件格式的3D模型进行最小高度三角面片的遍历搜索和确定,从而确定基准切平面;
步骤2,以基准切平面为基准向上和向下进行分层,确定相交三角面片集合中的最小高度三角面片,并以该三角面片的高度为参考确定相邻切平面的分层高度,实现自适应分层,保证3D打印模型的外形精度;
步骤3,以此类推,将三维模型的所有分层工作完成。
2.根据权利要求1所述的一种基于密集特征的3D打印前处理分层算法,其特征在于,所述步骤1具体按如下步骤实施:
步骤1.1,根据3D打印机自身机械条件所允许的打印精度,设置自适应分层算法的分层厚度范围△hmin和△hmax;
步骤1.2,遍历三角面片链表,剔除三个顶点坐标同时位于一个切平面上的三角面片,更新三角面片链表数据;
步骤1.3,更新三角面片链表数据后,遍历更新后的链表,搜索最小三角面片所在位置。
3.根据权利要求2所述的一种基于密集特征的3D打印前处理分层算法,其特征在于,步骤1.3中,搜索最小三角面片所在位置的方法为:计算出当前三角面片三个顶点中每两组顶点间的Z值绝对值差值的最大值,移动链表指针,重复计算并进行两两比较,取差值较小者,并进行标记,直到遍历完整个面片顶点坐标链表,即可搜索出最小三角面片所在位置。
4.根据权利要求1所述的一种基于密集特征的3D打印前处理分层算法,其特征在于,所述步骤2具体按如下步骤实施:
步骤2.1,确定基准切平面以及向上向下移动一个高度后,查找与切平面所相交的三角面片集合,并构建缓冲面片链表对相交面片信息进行存储;
步骤2.2,从建立的缓冲面片链表中进行搜索,查找三角面片集合中在分层方向上具有最小高度差的三角面片;计算三角面片3个顶点中每两组顶点间Z轴差值绝对值,并保存到数组;
步骤2.3,以遍历的方式相互比较,找出最小高度三角面片,并以此为参考进行下一层层厚的确定。
5.根据权利要求1所述的一种基于密集特征的3D打印前处理分层算法,其特征在于,步骤1中,所述基准切平面是通过搜索STL文件中在打印方向上具有最小差值的面片所处位置来确定的。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810499982.1A CN108724734B (zh) | 2018-05-23 | 2018-05-23 | 一种基于密集特征的3d打印前处理分层算法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810499982.1A CN108724734B (zh) | 2018-05-23 | 2018-05-23 | 一种基于密集特征的3d打印前处理分层算法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108724734A true CN108724734A (zh) | 2018-11-02 |
CN108724734B CN108724734B (zh) | 2020-05-22 |
Family
ID=63936226
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810499982.1A Active CN108724734B (zh) | 2018-05-23 | 2018-05-23 | 一种基于密集特征的3d打印前处理分层算法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108724734B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113681901A (zh) * | 2021-09-07 | 2021-11-23 | 中国人民解放军陆军边海防学院 | 一种基于三维数据驱动的沙盘成形动态切片方法 |
WO2021244402A1 (zh) * | 2020-06-01 | 2021-12-09 | 成都飞机工业(集团)有限责任公司 | 一种送粉式3d打印分层建模方法 |
CN115027060A (zh) * | 2022-07-26 | 2022-09-09 | 中国人民解放军陆军边海防学院 | 一种三维模型分层截面的确定方法及三维打印的方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160176117A1 (en) * | 2014-12-23 | 2016-06-23 | Kt Corporation | Variable slicing for 3d modeling |
US20170203515A1 (en) * | 2016-01-14 | 2017-07-20 | Microsoft Technology Licensing, Llc | Printing 3d objects with automatic dimensional accuracy compensation |
CN107571506A (zh) * | 2017-08-30 | 2018-01-12 | 华中科技大学 | 一种自适应分层的増材制造方法 |
CN107803987A (zh) * | 2017-10-18 | 2018-03-16 | 湖南华曙高科技有限责任公司 | 用于增材制造的自适应分层处理方法、系统及增材制造设备 |
CN107901423A (zh) * | 2017-12-11 | 2018-04-13 | 杭州捷诺飞生物科技股份有限公司 | 非均质填充的3d打印方法 |
-
2018
- 2018-05-23 CN CN201810499982.1A patent/CN108724734B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160176117A1 (en) * | 2014-12-23 | 2016-06-23 | Kt Corporation | Variable slicing for 3d modeling |
US20170203515A1 (en) * | 2016-01-14 | 2017-07-20 | Microsoft Technology Licensing, Llc | Printing 3d objects with automatic dimensional accuracy compensation |
CN107571506A (zh) * | 2017-08-30 | 2018-01-12 | 华中科技大学 | 一种自适应分层的増材制造方法 |
CN107803987A (zh) * | 2017-10-18 | 2018-03-16 | 湖南华曙高科技有限责任公司 | 用于增材制造的自适应分层处理方法、系统及增材制造设备 |
CN107901423A (zh) * | 2017-12-11 | 2018-04-13 | 杭州捷诺飞生物科技股份有限公司 | 非均质填充的3d打印方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021244402A1 (zh) * | 2020-06-01 | 2021-12-09 | 成都飞机工业(集团)有限责任公司 | 一种送粉式3d打印分层建模方法 |
US11618083B2 (en) | 2020-06-01 | 2023-04-04 | Chengdu Aircraft Industrial(Group)Co., Ltd. | Layered modeling method for laser metal deposition (LMD) three-dimensional (3D) printing |
CN113681901A (zh) * | 2021-09-07 | 2021-11-23 | 中国人民解放军陆军边海防学院 | 一种基于三维数据驱动的沙盘成形动态切片方法 |
CN113681901B (zh) * | 2021-09-07 | 2022-08-30 | 中国人民解放军陆军边海防学院 | 一种基于三维数据驱动的沙盘成形动态切片方法 |
CN115027060A (zh) * | 2022-07-26 | 2022-09-09 | 中国人民解放军陆军边海防学院 | 一种三维模型分层截面的确定方法及三维打印的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108724734B (zh) | 2020-05-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105183405B (zh) | 一种自定义模型表面镂空的3d打印方法 | |
Egeblad et al. | Fast neighborhood search for two-and three-dimensional nesting problems | |
CN108724734A (zh) | 一种基于密集特征的3d打印前处理分层算法 | |
CN106709947A (zh) | 一种基于rgbd相机的三维人体快速建模系统 | |
CN103714577B (zh) | 一种适用于带纹理模型的三维模型简化方法 | |
CN109118574A (zh) | 一种基于三维特征提取的快速逆向建模方法 | |
CN106600710A (zh) | 一种几何网格模型邻接拓扑关联的层切多连通域构建方法 | |
CN104331933B (zh) | 一种分层方向自适应快速选取方法 | |
CN103823649B (zh) | 一种基于切片文件的三维打印均匀壁厚抽壳方法 | |
CN108338848B (zh) | 剥离式激光牙体预备方法、装置、设备及介质 | |
CN107067471A (zh) | 一种提高悬垂体模型成型质量的自适应扫描速度方法 | |
CN105867310A (zh) | 基于occ实现t样条模型的数控加工方法及系统 | |
CN112598770B (zh) | 一种基于模型三维坐标空间的实时贴花渲染方法及其系统 | |
CN110060342A (zh) | 一种三维曲面拟合方法 | |
CN105894586B (zh) | 一种三维图书模型的单侧页面提取方法 | |
CN110363804A (zh) | 一种基于形变模型的花朵浅浮雕浮雕生成方法 | |
CN104392030B (zh) | 一种基于stl三维模型的曲面加工方法 | |
CN103236056A (zh) | 基于模板匹配的图像分割方法 | |
CN109079136A (zh) | 一种3d打印方法 | |
CN107945258A (zh) | 一种三维图形自动简化生成方法 | |
CN106803266A (zh) | 一种船体复杂外板点云肋骨线提取方法及装置 | |
CN102289661A (zh) | 一种基于谱匹配的三维网格模型的匹配方法 | |
CN106960469A (zh) | 一种快速分割三角形的光滑自由变形算法 | |
CN108986212A (zh) | 一种基于裂缝消除的三维虚拟地形lod模型的生成方法 | |
CN107945277A (zh) | 基于增材再制造点云模型的等距曲面分层方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |