基于VS20083D打印切片算法研究.docVIP

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于VS20083D打印切片算法研究

基于VS20083D打印切片算法研究   【摘 要】针对3D打印机工作时所需的STL文件,设计了一种无需三角形面片法向量信息的切片算法,采用垂直轴与切平面的空间平面信息进行切片运算,并对切片过程中产生的错误数据进行了分析,在VS2008环境中实现了对STL文件的切片。研究结果表明,此种切片算法,经过对错误信息的处理可以得到片层的完整闭合轮廓信息,切片效率高。   【关键词】3D打印;STL;切片算法;VS2008   0.引言   3D打印是将Solidworks或CAD等其它三维设计软件设计的三维模型直接打印成真实物体。3D打印源于快速成型理念,它将所要打印的物体从底层开始,按照一定的层厚,一层一层堆叠起来,最终形成完整的物体。首先,由三维设计软件设计物体结构,然后将所设计的物体存储为STL格式,其次,计算机读入STL文件,将得到的文件数据运用一定的切片算法进行切片运算,得到每一层的完整轮廓,再次,根据得到的轮廓信息,对轮廓进行填充与路径规划,最后,将得到的路径信息转化为实际的电机控制量,通过电机驱动执行机构实现3D打印。从3D打印的过程中可以看出,对STL文件进行切片是实现3D打印功能的关键,完整正确的切片轮廓是后续计算的前提,它的精度直接决定了打印真实物体的精度。针对STL文件的切片技术国内外有很多算法[1-5]。每种算法都有自己的优缺点,本文采用的算法所需的数据量小,效率高,针对不同的物体能得到任何高度的完整轮廓信息。   1.STL文件概述   应用于3D打印的文件有多种文件格式,由于STL文件结构简单,多数三维设计软件都可以将设计的三维实物直接存储成STL文件,使得STL格式文件被广泛应用。   STL文件有两种格式:二进制格式与ASCII码格式。无论是哪种格式,存储的信息都是三角形的三个顶点与法向量。无数个这样的三角形面片构成了一个完整的STL文件。即三维实体。   二进制格式的STL文件格式如下:   零件名 三角形个数 三角形面片信息   其中零件名占80字节,三角形个数占4字节,每个三角形面片信息占50字节。三角形面片信息包含12字节的法向量、36字节的坐标、2字节的属性项。   ASCII码格式的STL文件格式如下: ?? solid 文件名   facet normal nx,ny,nz   outer loop   vertex V1x,V1y,V1z   vertex V2x,V2y,V2z   vertex V3x,V3y,V3z   endloop   endfacet   ..............................   endsolid   ASCII码格式的文件第一行是文件名,第二行是三角形法向量,第四行到第六行是三角形的三个顶点。二进制格式的STL文件所占用的内存小,ASCII码格式的STL文件可读性强。本文是对ASCII码格式的STL文件操作。   2.基于VS2008切片算法实现   2.1切片算法基本思想   本文设计的算法无需三角形面片法向量计算,只需根据设定的层厚,逐层计算与切平面的交点,求得两个交点坐标,将切平面与所有三角形面片计算得到的交点存储到数组中,将得到的交点坐标按照一定的顺序重新存储,形成有序的实数对以供后续处理。   2.2切片算法实现步骤   以VS2008为开发环境,实现步骤如下:   STEP1:解析STL文件,获取各个三角形顶点坐标信息。   STEP2:指定层厚为LYAYETHICK,第一层高度为k*LYAYETHICK.k=1.遍历所有三角形,将与平面z=k*LYAYETHICK相交的三角形存储在一个数组中。   STEP3:找到第一个与平面z相交的三角形,求出交点坐标,并标记此三角形flag=1,表示此三角形已经被处理过,本层不在处理。   STEP4:相邻两个三角形只能共有一条边和两个顶点,利用三角形邻边关系找到与此三角形相邻的三角形,并求与平面z的交点坐标,并标记此三角形flag=1。   求交点公式:   x=(x-x)+x (1)   y=(y-y)+y (2)   ZP=z (3)   其中:三角形一个顶点为(x,y,z),另一个顶点为(x,y,z)。   STEP5:以此类推直到遍历完本层所有三角形。   STEP6:若回到第一个三角形后,本层还有剩余的三角形没有被标记1,说明本层不止一个轮廓,还有其他轮廓,需要找到另一个轮廓的第一个三角形,然后重复STEP3到STEP5。   STEP7:k=k+1,求新的平面z,重复STEP3到STEP6,直到z大于STL文件中零件的高度。   STEP8:处理各层得到的交点,消除间距过小、间距过大及非法

文档评论(0)

erterye + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档