3D打印工作原理.docx
《3D打印工作原理.docx》由会员分享,可在线阅读,更多相关《3D打印工作原理.docx(9页珍藏版)》请在冰点文库上搜索。
3D打印工作原理
3D打印工作原理及操作步骤
3D打印机正如其名,是一种能够打印出3D实体的机器。
如我们普通的打印机一样,能够在纸面上打印出任意形状的画面。
理想的3D打印机能够在3维空间中打印出任意形状的实体模型,能够不受结构工艺限制,直接将零件的3维数据资料打印成实体零件。
这样一个机器,对于机械设计者而言是一个不折不扣的神器。
在传统的机械设计程序上,一个零件需要由设计者设计完成,并绘制好2维图纸(通常是3视图的形式,并且有些细节部位还需要追加详细图).然后把这个零件的图纸交给机械工艺师,机械工艺师会根据你的零件图纸排列加工制造工序,再然后工人会按照机械工艺师设计安排的工序来制造零件.通常这个流程还不能一次性完成。
机械设计者设计的零件可能会有部分结构不容易加工制造,机械工艺师会将信息反馈给机械设计师,机械设计师再修改图纸。
而一旦有了3D打印机,整个流程就简化了。
设计者设计完成零件后,就可以直接制造。
不需要绘制3视图,不需要细节描述的详细图,不需要工艺师的编排工序,不需要工人加班,而且极少有结构工艺限制,只需要3维数据。
简单的说,3D打印机的出现,让电子数据与看得见摸的着的零件更紧密结合了。
能极大的提高设计效率。
目前市场上已经出现普通市民能够购买的家用3D打印机。
这些3D打印机通常都是熔融沉积式(FDM)的3D打印机。
我这篇文章也准备对我使用了半年多的这类打印机做一个总结。
本文分为两个部分,第一部分将为简要介绍FDM式3D打印机的工作原理,第二部分介绍打印机的硬件和软件操作.
第一部分:
FDM式3D打印机原理简介
任何3维物体都可以看成是由一个个面堆叠累积而成的。
就像宝塔一样,是由一层一层的楼堆起来的。
比如说,一个球形物体,就可以看成是由一个个厚度很小直径不同的圆柱堆在一起形成的。
对于任何一个物体,都可以看成是由一个个厚度很小的菱形物体堆起来的。
如果引用数学中的概念,那么就是,当这些菱形的厚度趋近于无穷小的时候,这个堆砌起来的实体与目标实体就是完全一致的.遗憾的是,现实中任何物体都是有厚度的。
可是我们可以把这个厚度做到很小,小到我们能容忍的误差以下,就够了。
FDM式的3D打印机就是利用这个原理,将任意一个三维数据实体,切割成一个个面来分析。
那么理论上只要这台打印机能够实现打印出任意形状的面,它就可以打印出任意形状的物体了(不考虑重力对结构的限制因素)。
所以FDM式的3D打印机有一个喷嘴,它能够稳定连续的喷出直径一定的塑料(或者其他热融性的材料).这个喷嘴一般由步进电机来控制移动。
就像我们捏牙膏一样,我们一边用力捏牙膏,一边移动牙膏,就可以把牙膏在牙刷上涂一条直线出来.3D打印机的原理就和我们捏牙膏是一模一样的,只是它的运动由3D实体数据来控制,而且喷出来的材料是稳定的,它一边喷一边按照特定的方式移动。
这样它就可以打印出特定的形状来了。
等热融性的材料冷却下来,这个实体就定形了.
那么我们怎么从手头一无所有,到打印出一个实体呢?
世界上3d设计软件千奇百怪,我们怎么把自己设计的3维实体做成能够被打印机应用的数据呢?
这里一定要感谢世界上的开源组织和标准化组织(通常是行业的龙头老大)。
是他们让我们虽然使用不同的软件,但是我们仍然可以用同样的数据来交流。
所有的3D模型都可以导出同样格式的数据,比如说stl,x_t,step等等格式。
还有控制机床运动的加工语言:
G语言。
因为这些标准的存在,让我们整个流程可以走得更顺畅。
从技术实现角度来看,要实现FDM式3D打印机,就只需要实现以下三个技术:
1、能够将3维数据格式(如:
stl,x_t,step)解析成机械加工的G语言。
正如前文所说,这一个步骤实质上就是生成“捏牙膏的方法”。
在这个步骤里,3维数据被解析成一层层面,面被解析成一条条线。
线被解析成一条条的G代码。
这里的解析方法可以有开源社区提供。
比较出名的有replicatorg项目。
这里也稍微简介一下G代码:
G代码是用来控制机械加工刀具(喷嘴)运动的代码。
比如说,让刀具(喷嘴)从当前这个点以最快速方法运动到(0,0,10)这个坐标点.其代码就是G90G00X0Y0Z10.这条代码中,G90表示后面的坐标使用绝对坐标格式,G00表示快速移动操作,X0表示目的坐标的X轴坐标为0,Y0表示目的坐标的Y轴坐标为0,Z10表示目的坐标的Z轴坐标为10。
当然G代码不仅仅只有这一条指令.这里只是举个例子来说明G代码的功能.
2、能够解析G代码的机器.通过第1个技术手段,我们有G代码。
接下来就需要一台能够“读懂”G代码的机器。
要实现G代码的机器,技术关键在插补算法.所谓的插补算法实际上就是让刀具能够精确的按照指令走。
为了说明插补算法的功能,这里再介绍一条简单的G代码:
G90G01X10Y10Z10F100。
这条代码中,G90表示采用绝对坐标格式,G01表示直线运动,X0Y0Z10表示目的坐标为(10,10,10),F100表示移动速度为100个单位每分钟(单位可通过G20/G21指令来设置成毫米/英寸)。
要控制刀具(喷嘴)走直线就和简单的控制刀具移动到目的地不一样的了。
它不仅仅要控制结果,还要控制过程。
它需要刀具(喷嘴)在三个坐标轴上的速度的合速度能够一直在指定的直线上。
当然更复杂一点的,还要求插补算法能够实现G语言的G02,G03指令。
这两条指令是控制刀具(喷嘴)画(逆时针/顺时针)圆。
简单的说,需要有台机器,能够严格的实现G代码的指令.能够读了G代码后,再控制电机(通常是步进电机)来实现刀具(喷嘴)的运动。
3、能够稳定喷材料的喷嘴。
事实上,这是从物理上实现3D打印的关键技术.市场上常见的喷嘴是由带尖的金属喷嘴,热传感器,加热电阻和一个步进电机组成的。
加热电阻和热传感器用来控制金属喷嘴的温度。
步进电机用来提供材料的进给。
喷嘴口的直径很有讲究。
它喷出来的材料直径直接影响到打印精度(每一层的厚度)。
4、介绍到这里,FDM式3D打印机已经差不多了.它不复杂,实现上述三个技术,就可以做出一台3D打印机。
但是,这里不得不提出工程上的一个观点:
做出一个东西和做好一个东西是完全不同的概念。
一个好的机器,一定是集成各种优化设计于一体的机器。
它的关键结构都要么是经验丰富的设计人员总结而设计的,要么是经验不丰富的设计人员通过严格的计算校和做出来的。
拥有了以上三项技术,或许你可以制作一台3D打印机,但不一定能做好一台3D打印机.
第二部分:
FDM式3D打印机的硬件和软件操作
任何一台机器都有它们自己的“脾气”。
一台机器对于一个工人,就如一杆枪对于一个士兵一样。
一个优秀的狙击手能做到枪人合一,就是充分的了解了手中这把枪。
枪也是机器,虽然这些枪有着同样的型号,但是细节都不会一模一样的。
对于追求精度的狙击手而言,这些小细节都特别重要。
同样,对于3D打印机这样追求精度至少应该在零点几毫米一下的机器而言,也需要操作它的人注意各种细节问题。
下面先从3D打印机的硬件说起.
1、温度控制
FDM式3D打印机使用的是热融性材料.那么对于温度的控制就有要求。
一般,加工平台和材料喷嘴这两个地方都需要由加热电阻和温度传感器来控制温度。
一般采用PID控制算法来获取更好的温度控制性能.部分的3D打印机制造商还允许你通过软件来修改温度控制的PID参数。
增加P参数来获得更短的加热时间,但是却增加了温度调节的超调量;提高I参数来消除稳态误差,增加稳定度;增加D参数来减少超调量,但是也同时减低了稳定度.关于PID算法,这里就不详细介绍了。
下面重点介绍温度控制对3D打印机工作的影响。
喷嘴的温度控制是以融化材料为目的的.这里的温度不能低,低温会使材料不能完全融化,喷出受到阻碍,从而影响机器寿命。
过高的温度会使材料融解喷出后仍然具有较大的流动性,从而在喷出后无法定型。
合适的温度是根据材料而定的,比如一般PLA材料的最佳温度就在190摄氏度左右。
位于加热平台的加热控制器也十分重要。
有些材料在被喷出后,由于极速冷却,发生热胀冷缩的效应.尤其是在铺平台边沿的部分最明显,这些位置的材料会应为热胀冷缩的效应而向上卷起来.发生卷边的现象。
为了应对卷边,工程师们用了3种方法来应对它。
其中一种,就是对平台进行温度控制(剩余两种后面再一一介绍)。
让材料在喷出来后不立刻冷却,这样就可以减缓卷边现象。
2、工作平台
对于3D打印机而言,除了喷嘴,第二重要的就是工作平台了.
工作平台的平面度和高度都是硬性要求。
执行3D打印工作时的第一层平面至关重要.这一层平面必须完整的铺在工作平台上.而平台的表面必须要与喷嘴在刚刚开始工作时,有一个合适的高度。
这个高度太高了会使材料无法正常的粘附在平台表面。
太低了,就会让材料变形。
一般3D打印机会有配有传感器.通过传感器来调整这个高度。
可是,一台机器在刚刚装配的时候,这个传感器的位置可能会发生偏移。
为了纠正这个可能在装配机器时发生的误差,我们有两种方法来修正它。
第一,是从硬件上调整传感器的位置.第二,是从软件上修改3D打印机的Z轴偏移量.工作台的平面度如果不好,就会出现打印工作时无法保证所有地方都有合适高度.通常的3D打印机会有四个调节螺丝来调节工作平台的水平度.在使用之前必须要做的就是调节工作平面让它水平.但是,如果真是出现了工作台平面度差,无法修正,是不是就没有办法了呢?
平面度好,固然是最好,如果强求不来,工程师们也想出了应对办法。
这个应对办法将在后面的软件部分介绍.
工作平台的表面材料也十分重要,工作平台的表面与刚刚被喷出来的材料接触。
这就要求工作台的表面至少能够耐住材料温度,同时它还能粘住材料(因为打印机工作的时候被喷出来的成形的部分可能会因为喷嘴或者平台的移动而发生移动从而导致前功尽弃!
)。
不仅如此,由于前面温度控制提到过的,工作平台还需要有一定的导热性。
3、步进电机
步进电机是驱动部件,一般打印机在出产的时候就会设定好它的脉冲宽度等等.这些参数基本上能够保证电机稳态运行时的工作。
可是,这里要着重提到的一点,3D打印机对步进电机的动态特性也有硬性要求。
喷头的运动,在很多情况下,需要快速响应。
这里简单提一下动态特性。
我们从小到大接触过很多物理运动问题.这里物理运动都十分的理想。
要么就直接匀速运动,要么就直接加速运动。
对于受力问题,给一个物体施加一个作用力,那么这个物体就立刻受到了力的作用.事实上,这些东西,在现实生活中都不存在。
一个物体要有一个速度,它都需要有一个速度动态变化的过程。
一个物体要受到一个10牛顿的力,在你给与它10牛顿的力后,它也不会立刻就受到这么大的力.物体的受力也有变化过程,如果你直接用力去推一个物体,宏观上首先发生的事情是你的手掌与物体被压缩。
在被压缩的过程种,物体受到的力会渐渐的越来越大,到后来还会发生振荡。
这也是个动态的变化过程。
那么再回到步进电机的问题,在你给出步进电机的脉冲频率后,它不会立刻按照这个频率来工作,它也会有一个动态的变化过程。
在控制学上,用调节时间,超调量,稳态误差,稳定度这四个量来评价控制过程。
这里不再详细说明更多的控制学上的概念。
对于当前的问题,我们只需要理解,3D打印机的步进电机可能会因为无法快速达到要求的速度,而影响它正常工作.
上文提到过防止卷边有三种方法,这里将要提到的第二种方法——改善步进电机的动态性能.给材料提供进给速度的步进电机动态性能不好,材料在刚刚喷出来的速度太小,会影响材料与工作平面的粘合性。
从而会发生卷边,漂移等等。
控制喷嘴或者平台运动的电机动态性能不好,会使喷嘴在做快速运动时,无法快速达到目标速度,从而发生喷出来的丝被拉动的现象。
要改善步进电机的动态性能有至少以下2种方法:
1,调节步进电机的电流.一些3D打印机厂家会提供电流调节旋钮,或者,有些厂家会提供软件来修改步进电机的脉冲宽度.另外提一下,过高的电流也不行,会使电机发热加快,影响电机寿命,而且还会发生很大的噪音和失步。
2,降低步进电机的运动速度。
速度太高,调节时间太长,那我们把要求减低一点也可以。
3D打印机的硬件操作还包括一些细节,比如说每次工作前要擦拭工作平台表面的灰尘等等。
这些工作看起来不起眼,但你不做,可能会导致整个工程的失败。
工程作业是严谨的,虽然我们永远无法做出完美的工程,但你必须尽可能做到完美。
硬件问题告一段落,下面介绍FDM式3D打印机的软件操作.
3D打印机要使用的软件分开两个部分,其中一部分在上位机,用来实现上文提到的将3维数据模型解析成G代码.另外一部分位于3D打印机的芯片中。
值得一提的是,这两个软件都可以找到开源资源.甚至,位于打印机上的硬件也可以使用Arduino开源硬件资源。
也就是说,只要你有兴趣,你可以做出专属于自己的世界上独一无二的3D打印机。
这也是3D打印机的魅力之一。
位于芯片上程序这里不再多提。
绝大多数情况下,对于使用者而言,不需要考虑重写芯片上的代码。
所以,下面着重介绍位于上位机上的软件使用。
可以使用的软件有多种,比如slic3r,printrun和replicatorg等.这些软件中slic3r是专门用于完成3维模型转化的,printrun用来与机器通讯的,而replicatorg则是一个集成的软件。
当然他们针对的机器也略有不同,replicatorg可以用在很多种机器上面,功能非常强大。
要让软件去正确地完成它自己的工作,你需要告诉它一些关于机器的参数。
比如说,材料的直径,材料需要的加热温度,进给速度等等。
1、参数设置
你需要设置比较重要的参数有:
材料原始直径,材料喷出直径,喷嘴温度,工作平台温度,座标轴的运动速度,材料进给速度,每一层的高度,材料的填充百分比,边界层数。
下面一一介绍这些参数的作用和设定方法。
材料原始直径指的是材料在没有加热时,进入加热喷嘴之前的直径.这个参数一定要尽可能设置得与实际数值吻合.因为它将和另外一个参数,材料的喷出直接,共同决定材料进给量的计算参数。
比如说,原始直径是喷出直径的3倍,那么喷出口的喷出长度就是进去入口进入长度的3倍.
材料的喷出直径,在上一段已经介绍。
喷嘴温度是材料挤压出口时的温度。
这个温度的重要性,在硬件介绍的部分已经提过。
它需要根据使用的材料而定。
判断标准是材料能够顺利被挤压出喷头,而且能够很好的在工作平面上成型。
工作平台的温度是用来固定铺在工作平台上材料的。
如果发生卷边现象,可以尝试增加这个参数,来提高温度。
坐标轴的运动速度实际上是个比较复杂的参数.喷头的运动有好几种运动方式.比如说,在一边喷材料一边移动时的速度。
不喷材料仅仅是喷嘴移动时的移动运动速度。
飞线(底下是空的,没有支撑材料,像是架桥。
比如打印一个空心盒子时,打印其顶面。
)时的运动速度.除此之外,你还可以设置成让它在打印第一层的时候的速度和打印其他层时候的速度不同(打印第一层时太特殊,太关键,是成败的关键)。
速度设置得太高,可能会因为电机的动态性能跟不上,而发生打印出来的丝条无法固定的现象。
速度设置得太低,就会浪费时间。
一般情况下,3D打印机厂家会给出一边喷材料和一边移动时速度的一个推荐值。
当你发现,采用这个推荐值,打印过程总出现丝条移动,而喷头高度又合适时,你就需要减低这个推荐值了.至于其他的速度,软件内部会有一个算法来根据这个速度来生成。
当然,你觉得其他速度也需要修改时,请一定要在软件中修改。
材料进给速度会根据前文所述喷头在一边喷材料一边移动的速度有关联。
喷头移动得越快,这个进给速度也快。
所以反过来,喷材料的进给速度也会影响喷头的运动速度.这两个速度是耦合的。
每一层的高度,这是一个至关重要的参数。
它必须尽可能的与现实相吻合。
一般它略小于喷头口的直径.而且,这个参数还可以做多样化设定.你可以设定成第一层和其他层的高度不一样.(还是那个理由,第一层很特殊,它直接铺在工作平台上,容易出问题,而其他层是铺在材料本身上)
材料的填充百分比指的是填充实心物体时,材料所占体积的百分比。
在我们打印一个实心体积比较大的物体时.比如你想打印一个100x100x100mm的立方体.如果全部是实心的话,会非常的浪费材料。
通常我们没有必要让它成为实心。
我们可以通过一个算法,用一种类似与蜂窝的结构来填充实心部分。
这就是3D打印机节省材料的一个关键。
这个参数就可以设置在算法生成时,采用节省多少体积的结构.这里我们需要注意,省材料的同时也会导致材料的强度下降。
所以,在强度要求较高的场合,请不要过于节省材料.
边界层数这个参数是紧随填充百分比这个参数而定义的。
在给实心物体生成填充结构时,我们可以设置包围这些填充结构的层数。
就像是蜂窝的外壳一样。
设置外壳的层数越多,打印出来的部件强度就越高。
所以你可以选择增加这个参数来提高零件的强度。
当然你还可以配置更多的参数,来控制3D打印机G代码生成方式。
你甚至可以在生成G代码后,加入自己特定G代码。
比如在打印后保留加热板的温度,以便于接下来继续工作,等等。
按照以上的内容,操作打印机,有时候往往还会发生很多意想不到的问题。
比如说,工作表面平面度不好.比如说工作表面即使温度高到极限了,打印机依然有卷边现象。
又比如说即使电机电流调到很合适了,在打印工作刚刚开始的时候还会出现喷出来的细丝粘上喷嘴的现象.为了进一步解决这些问题,工程师们还为我们提供了软件解决方案。
2、软件补偿性能方案
在工作表面先铺一层材料网格是一个非常优秀的解决方案.这可以很好的解决平面度不好的问题.软件才用这个方案后,更具背打印的物体在工作面上的接触面生成一个纱窗似的地面。
在打印真实的物体之前,先铺一层这样的“纱窗"。
这样,真正打印的底面就会放在这样一层材料上,而不是直接接触工作表面了。
在打印完成后,再用刀子或者其他工具把这一层“纱窗”刮掉就可以了。
当然,这也是这个方案的弱点,手动刮,通常会刮不干净。
最后结果是一层粗糙的底面。
在硬件操作方案中,我们说过,为了解决卷边现象,有三种方案。
这里将提到的就是第三种软件解决方案。
材料铺在底面的边缘不是容易卷起来吗?
好,让你卷.把底面的边缘给它扩大.就像是给这个被打印件穿一件裙子一样.找一个“替死鬼”去让它卷.这部分卷起来后不影响本体部件.当然这一层扩大的部分仅仅是底面那一层。
在打印完成后,用刀片可以轻松刮掉,不留痕记。
这一个设置参数的英文关键字就是“skirt”。
为了应对打印最开始的时候不稳定的问题,软件上也给出了一个解决方案.那就是在开始的时候,先喷出一些材料来。
可以给被打印部件打印一个边缘.比如说,在打印这个部件之前,先让这个喷头绕着将要被占用的面接画一个圆。
这样就让喷头在打印之前,有了个预先打印的过程。
这样不仅仅改善的动态性能,还可以通过这个过程来判断工作平面的平面度是否良好.