论文部分内容阅读
3D打印的发展受益于软、硬件的开源运动及互联网的文件共享,出现了很多开源免费的3D打印控制软件,比如Cura、KiSSlicer、OctoPrint、Make-me等,在众多开源软件中Repetier-Host是一个易用性强而且功能强大的3D打印控制软件,它在中国的用户有很多。本文的主要工作为:1.研究Repetier-Host 0.90版本的源码。整体上从编译环境搭建、功能研究、软件架构及命名空间上分析代码。然后按打印预处理、切片及G-code处理、打印机、其他功能四大类模块再具体分析其实现细节。2.添加模型文件格式转换功能。3D模型文件的格式有很多种,但是Repetier-Host支持的主要格式是STL、OBJ和3DS,为了使更多其他格式的模型文件可以被Repetier-Host处理,本文利用Assimp.Net库对其他格式的模型文件进行格式转换,从而扩展Repetier-Host处理模型文件的格式范围。3.添加模型修复功能。在进行模型打印之前,有必要对模型进行错误检查,并修复这些可能引起打印失败的缺陷。虽然Repetier-Host本身已经有一些比较简单的修复,但为了加强Repetier-Host错误修复的能力,本文又利用Slic3r的修复功能来做进一步的模型修复。4.把MeshLab集成到了Repetier-Host中。在模型的建立中,激光扫描是一种常见的方式,而MeshLab可以对3D扫描后的模型进行表面重建和模型编辑,所以本文把开源的MeshLab集成到Repetier-Host中,以提供一个比较全面的工具链。5.添加CuraEngine切片程序并分析其源代码。切片技术是3D打印中的关键技术之一,而研究一个切片程序的源代码对于理解切片技术有很大的帮助。CuraEngine是Cura中使用的模型切片程序,它是一款独立的开源C++控制台程序,不仅能集成在Cura中,也可以集成到其他的3D打印控制软件中,它可以对保存在STL文件中的模型进行分层切片,并生成打印机可以接收的G-code指令代码文件。Repetier-Host是用C#语言编写的,所以它可以运行在.Net及Mono环境中,本文中使用的环境是.Net,其中会涉及OpenTK库、Slic3r软件及SkeinForge软件。OpenTK库是Repetier-Host进行模型三维显示时使用的库,而Slic3r和SkeinForge是Repetier-Host内部集成的第三方切片处理软件,在本文中会对它们进行更为详细的介绍。对源码的研究总是受益匪浅的,而对Repetier-Host源码的研究的价值就在于,可以清楚的看到其内部的层次结构和软件框架,学习并掌握其使用的技术与技巧,也可以为后期二次开发做准备,还可以为重新编写3D打印控制软件做一个参考。