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打印机的硬件操作还包括一些细节,比如说每次工作前要擦拭工作平台表面的灰尘等等。这些工作看起来不起眼,但你不做,可能会导致整个工程的失败。工程作业是严谨的,虽然我们永远无法做出完美的工程,但你必须尽可能做到完美。硬件问题