立体打印装置及其接续打印的方法与流程

文档序号:15617052发布日期:2018-10-09 21:37阅读:187来源:国知局
本发明涉及一种打印装置的打印方法,尤其涉及一种立体打印装置及其接续打印的方法。
背景技术
:随着科技发展,立体打印(3dprinting)技术已成为最主要发展的技术之一。立体打印技术又被称为积层制造(additivemanufacturing;am)技术,属于快速成型技术的一种,它可以基于数位成型图档,运用例如粉末状金属或塑料等可黏合材料,并通过逐层打印的方式来建构立体实物。目前的立体打印装置可通过执行打印指令来移动打印头至特定的位置以进行立体打印。当执行立体打印的途中发生了诸如断电、出料不足或非预期的故障等原因而致使立体打印装置强制停机时,立体打印装置在重新开机后往往会因为无法得知前次强制停机时上述打印指令的实际执行进度,导致立体打印装置无法接续打印。如此一来,之前打印的半成品便无法使用而形成浪费。为了克服上述问题,许多厂商在立体打印装置上加装不断电系统(uninterruptiblepowersupply;ups)以确保当发生强制停机时,立体打印装置能完整地执行完当前的打印指令。然而,加装不断电系统容易导致立体打印装置的成本及体积增加。因此,是否有其他方式使立体打印装置在发生打印中断可执行接续打印,便是各厂商努力研究的目标之一。技术实现要素:本发明提供一种立体打印装置及其接续打印的方法,可在立体打印装置发生打印中断后,计算出打印中断发生时的中断位置,使得立体打印装置在进行接续打印时,可由正确的中断位置接续执行先前的打印。本发明提出一种接续打印的方法,适用于立体打印装置,所述方法包括:依序执行多个打印指令以控制立体打印装置的打印头进行打印;当发生打印中断时,获得发生所述打印中断时正在执行的第一打印指令,并依据所述第一打印指令来接续地进行打印。另一观点而言,本发明提出一种立体打印装置。此立体打印装置包括打印头以及控制器。控制器耦接于打印头,并且依序执行多个打印指令以控制打印头进行打印。其中当发生打印中断时,控制器执行下列步骤:获得发生所述打印中断时正在执行的第一打印指令,并依据所述第一打印指令来接续地进行打印。基于上述,本发明提供一种立体打印装置及其接续打印的方法,其可在立体打印装置发生打印中断后,计算出打印中断发生时的中断位置。当立体打印装置欲进行接续打印时,控制器可将打印头移动至正确的中断位置,并可将打印中断发生时尚未完成的打印指令接续完成。藉此,本发明的立体打印装置可于打印中断发生时,在不装设不断电系统的情况下,正确地执行立体接续打印。为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。附图说明图1是依据本发明一实施例显示立体打印装置的示意图;图2是依据本发明一实施例显示打印平台以及计算中断位置的范例的示意图;图3是依据本发明一实施例显示接续打印的方法的流程示意图。附图标记说明:100:立体打印装置101:打印头103:控制器105:非易失性存储器200:打印平台201:g代码10769行的执行起始位置203:g代码10770行的执行起始位置205:g代码10768行的执行起始位置207:中断位置d:移动距离tp、tp1:时间段x:中断位置的x轴座标y:中断位置的y轴座标位移向量位移量具体实施方式立体打印装置的非预期打印中断往往发生于执行某个打印指令的过程中。假设有某个打印指令可控制打印头以特定的速度移动一时间段,当非预期的中断打印发生在所述时间段尚未结束的当下,在重新启动立体打印装置后,立体打印装置并无法判断中断打印发生在所述时间段中的确切时间点,也无法判断中断打印发生时打印头所在的位置。也就是说,若要在打印中断发生后续行打印,立体打印装置需要能够计算出打印中断时打印头所在的位置,才能开始接续进行先前的打印。另外,立体打印装置在重新开机之后,还要有办法可以知晓在打印中断时所执行的打印指令为何者。为此,本发明实施例所述的立体打印装置及其接续打印的方法可在立体打印装置发生打印中断后,可利用非易失性存储器中的信息得知打印中断时所执行的打印指令为何者,并通过立体打印装置中的控制器对于当前打印指令的执行时间长度来计算出打印中断发生时的中断位置,使得立体打印装置在进行接续打印时,可由正确的中断位置接续执行先前的打印。图1是依据本发明一实施例显示立体打印装置的示意图。请参照图1,立体打印装置100可包括打印头101以及控制器103。立体打印装置100可例如是三维打印机(3dprinter)。打印头101可例如是使用选择性激光烧结技术、选择性激光熔融技术、石膏3d打印成型(plaster-based3dprinting;pp)技术以及熔融沉积成型(fuseddepositionmodeling;fdm)技术。控制器103可例如是具备可程式化的一般用途或特殊用途的中央处理器(cpu)、微处理器(micro-processor)或嵌入式控制器(embeddedcontroller)。控制器103耦接于打印头101,并且依序执行多个打印指令以控制打印头101进行打印打印指令可例如是g代码(g-code,又称rs-274),g代码的范例如表一所示。表一行数g代码指令10767g1x08.000y44.000e4.7432510768g1x15.000y20.000f1200.000e4.7432910769g1x24.000y32.000e4.7644710770g1x27.000y36.000e4.79192如表一所示,立体打印装置100可通过依序执行多行g代码的方式来进行立体打印。g代码主要包括目的地位置以及打印头的速率。以第10768行的g代码作为举例来进行说明。栏位“f1200.000”表示立体打印装置100会控制打印头以1200mm/min的速率移动,也就是说,“f1200.000”为g代码的打印头速率栏位。栏位“x15.000y20.000”表示在执行完第10768行的g代码时,打印头最后所在的目的地座标,也就是(15,20),换句话说,“x15.000y20.000”为g代码的x轴座标以及y轴座标。部分的g代码会有z轴座标,表示打印头的高度需要被调整。栏位“e4.74329”表示打印头的出料速度。部分的g代码并没有打印头的速率栏位(如,“fxxx”)或是出料速度栏位(如,“exxx”),表示立体打印装置100沿用前面的g代码的速率栏位信息或出料速度栏位信息来做为此g代码的速率或是出料速度。举例而言,当控制器103执行第10768行的g代码时,打印头101会以1200mm/min(毫米/分)的速率向目的地座标(15,20)移动,并在移动的过程中以4.74329mm/min的速度进行出料。同样地,当控制器103执行第10769行的g代码时,打印头101会以继续1200mm/min的速率向目的地座标(24,32)移动,并在移动的过程中以4.76447mm/min的速度进行出料。在本发明的其他实施例中,立体打印装置100还可以包括非易失性存储器105。非易失性存储器105可例如是nand快闪存储器或nor快闪存储器。非易失性存储器105耦接控制器103,其根据一预设周期以周期性地纪录计数值。当控制器103执行任一个打印指令时,控制器103会将计数值加1。非易失性存储器105可以在控制器103执行任一个打印指令时,纪录对应于所述打印指令的计数值。举例而言,当控制器103执行第1行的g代码时,控制器103还会通过非易失性存储器105以记录对应于第1行的g代码的计数值“1”。接着,当控制器103执行第2行的g代码时,控制器103除了将计数值加1以外,还会通过非易失性存储器105以将更新后的计数值,也就是对应于第2行的g代码的计数值“2”,纪录起来。当进行立体打印的过程中,若因故停机而导致打印中断时,控制器103可获得发生打印中断时正在执行的第一打印指令,并依据第一打印指令接续地进行打印。详细而言,控制器103可执行以下程序以使立体打印装置100可由打印中断的位置接续打印。首先,由控制器103读取非易失性存储器105中的计数值以获得与计数值相对应的第一打印指令,且获得立体打印装置100在执行第一打印指令至发生打印中断的时间段。举例而言,以表一所示部分的g代码为例,其依序纪录第10768行的g代码、对应于第10769行的g代码以及对应于第10770行的g代码。当打印中断发生时,控制器103可读取非易失性存储器105中的计数值。若非易失性存储器105中所读取的计数值为10769,控制器103可由此判断出当中断打印发生时,立体打印装置100正执行第10769行的g代码,换言之,控制器103将第10769行的g代码作为第一打印指令。同理,假设当打印中断发生时,若控制器103读出的计数值为10770,则控制器103可由此判断出当中断打印发生时,立体打印装置100正执行第10770行的g代码,换言之,控制器103将第10770行的g代码作为第一打印指令。立体打印装置100也可以依据使用需求或实际硬件处理速度来调整纪录计数值的预设周期,例如当立体打印装置100的硬件功能较为不佳时,立体打印装置100可延长纪录计数值的预设周期,使非易失性存储器105可以在控制器103执行任两行或任三行打印指令时,才纪录一次计数值。以预设周期为两行打印指令为例,当控制器103执行第1行的g代码时,控制器103通过非易失性存储器105以记录对应于第1行的g代码的计数值“1”。接着,当控制器103执行第2行的g代码时,控制器103虽然会对计数值加1,但不会通过非易失性存储器105来纪录计数值。再接着,当控制器103执行第3行的g代码时,控制器103通过非易失性存储器105可将对应于第3行的g代码的计数值“3”纪录起来。使用者可依据使用需求调整预设周期的长度,本发明不加以限制。执行第一打印指令至发生打印中断的时间段可例如由控制器103内部的计时器获得,本发明不限定于此。本发明实施例的控制器103中的计时器可暂存本次运行的指令在执行时的时间长度信息,直到本次运行的指令已执行完成后才将上述的时间长度信息消除。换句话说,当打印中断发生时,控制器103中的计时器便会存储前次运行的指令在执行时的时间长度信息。此时间长度信息可作为开始执行某一g代码至打印中断发生之间的时间段。举例而言,以表一所示的g代码为例,假设打印中断发生后,控制器103可以从非易失性存储器105读取出的计数值为10768,并将第10769行的g代码作为第一打印指令。另一方面,控制器103还会由其内部的计时器获得开始执行第10769行的g代码至打印中断发生之间的时间段。在控制器103获得第一打印指令以及获得执行第一打印指令至发生打印中断的时间段之后,控制器103可根据第一打印指令、在第一打印指令之前执行的第二打印指令以及在执行第一打印指令至发生打印中断的时间段以计算出打印中断发生时的中断位置,并控制打印头101从中断位置以第一打印指令来接续地进行打印。举例而言,以表一所示g代码为例,假设打印中断发生于第10769行的g代码的执行过程中,且非易失性存储器105存储的计数值为10769,则控制器103可根据与计数值10769相对应的第10769行的g代码(即第一打印指令)、在第10769行的g代码之前执行的第10768行的g代码(即第二打印指令)以及从第10769行的g代码开始执行至打印中断发生时的时间段,计算出打印中断发生时的中断位置。以下将更具体地说明计算打印中断发生时的中断位置的方法,请参照图2及表一。图2是依据本发明一实施例显示打印平台200以及立体打印装置100计算中断位置的范例的示意图。以图2及表一所示的g代码为例,假设打印中断发生于第10769行的g代码的执行过程中,且此时非易失性存储器105存储的计数值为与第10769行的g代码相对应的计数值10769。通过读取非易失性存储器105,控制器103可得知当中断发生时,立体打印装置100正执行第10769行的g代码。此外,控制器103也可例如由其内部的计时器而获得从第10769行的g代码开始执行至打印中断发生时的时间段tp(未显示于图中)。在每次纪录计数值的同时,控制器103会将计时器归零并重新开始计算,直到执行下一次的计数值纪录为止。除了使用控制器103内部的计时器之外,控制器103也可例如使用耦接于控制器103的微处理单元(microcontrollerunit;mcu)来获得上述时间段tp,本发明并不限定于此。控制器103除了获得时间段tp,还可根据第一打印指令中的打印位置与第二打印指令中的打印位置,计算出一位移向量及对应于所述位移向量的位移量。以图2及表一所示的g代码为例,假设第一打印指令为第10769行的g代码且与第二打印指令为第10768行的g代码,则控制器103可对第10769行的g代码的打印位置(x24.000;y32.000)与第10768行的g代码的打印位置(x15.000;y20.000)进行座标相减,以计算出对应于第二打印指令(即第10768行的g代码)中的打印位置的点201与对应于第一打印指令(即第10769行的g代码)中的打印位置的点203之间的位移向量以及位移量此外,控制器103还会根据对应于第一打印指令(即第10769行的g代码)的打印头移动速率(即第10768行的g代码中的f1200.00指令)与时间段tp以计算出移动距离d。在本实施例中,假设打印头移动速率为1200mm/min=20mm/sec(毫米/秒)并且在执行第一打印指令至发生打印中断的时间段tp为0.25秒,则如图2所示的移动距离d可表示为d=20×0.25=5mm。在获得第一打印指令的打印位置,即第10769行的g代码中的打印位置(x24.000;y32.000)、位移向量位移量以及移动距离d之后,控制器103可根据第二打印指令的打印位置,即第10768行的g代码中的打印位置(x15.000;y20.000)、位移向量位移量以及移动距离d以获得中断位置205。中断位置的座标(x,y)可由下列公式获得:据此,可计算出中断位置205的座标(x,y):值得注意的是,当立体打印装置100在执行第一打印指令至发生打印中断的时间段tp的数值为零时,代表当发生打印中断时,第一打印指令刚被执行且打印头101尚未开始移动,此时控制器103可将第二打印指令的打印位置当作中断位置,以接续地进行打印。举例而言,当发生打印中断时,第一打印指令为第10769行的g代码且时间段tp=0,则控制器103可将第10768行的g代码的打印位置(x15.000;y20.000)当作中断位置,以接续地进行打印。在上述图2的实施例中,立体打印装置100主要是通过对应于计数值的第一打印指令(例如表一中第10769行的g代码)以及第一打印指令之前的第二打印指令(例如表一中第10768行的g代码)来计算出打印中断的位置。然而,根据非易失性存储器105用来纪录计数值的预设周期的不同,第一打印指令与计数值的相对关系可能也会有所变化。假设非易失性存储器105是根据一较长的预设周期来纪录计数值,例如每执行两行打印指令,非易失性存储器105才纪录一次计数值。基此,非易失性存储器105并无法在执行每一行g代码时都将其对应的计数值纪录下来,也因此当中断发生时,控制器103无从精确地得知中断发生时立体打印装置100正执行的g代码是哪一行。然而,通过本发明一实施例,控制器103就算无从得知中断发生时正执行的g代码为哪一行,也可计算出打印中断发生的位置。具体而言,控制器103可由对应于当前计数值的第一打印指令、第一打印指令之前的第二打印指令、第一打印指令开始执行至打印中断发生时的时间段以及对应于第一打印指令的打印头移动速率,来估算出中断发生时,立体打印装置100正执行的g代码,进而将其作为新的第一打印指令,以计算出打印发生中断的位置。以图2及表一所示的g代码为例。在本实施例中,假设打印中断发生时非易失性存储器105存储的计数值为与第10768行的g代码相对应的计数值10768,换言之,此时的第一打印指令为g代码第10768行。通过读取非易失性存储器105,控制器103可得知打印中断发生于第10768行的g代码开始执行之后。假设第10768行的g代码开始执行至打印中断发生时的时间段tp2(未显示于图中)为0.25秒,且对应于第10768行的g代码的打印头移动速率为20mm/sec。通过第10767行的g代码(即第二打印指令)中的打印位置可得知,第10768行的g代码的起始位置为点205。而通过第10768行的g代码中的打印指令可得知,g代码第10769行的起始位置为点201。接着,控制器103可计算出点207与点201的位移量藉此,可由位移量与打印头移动速率(20mm/sec)计算出第一打印指令(即第10768行的g代码)的执行时间tp1(未显示于图中)=25÷20=1.25sec。在计算出第一打印指令的执行时间tp1后,控制器103可比较执行时间tp1与第一打印指令开始执行至打印中断发生时的时间段tp2的长度。若执行时间tp1大于所述中断发生时的时间段tp2时,如本实施例中,执行时间tp1=1.25秒,大于时间段tp2=0.25秒,则表示当发生打印中断时,立体打印装置100正执行与非易失性存储器105中的计数值相对应的第一打印指令。反之,当第一打印指令的执行时间tp1小于所述中断发生时的时间段tp2时,则表示当发生打印中断时,立体打印装置100已执行完与非易失性存储器105中的计数值相对应的第一打印指令。以发生打印中断时计数值为10768为例,当执行时间tp1小于时间段tp2时,控制器可依据计数值为10768而将所述计数值所对应的第一打印指令(即第10768行g代码)之后的打印指令作为新的第一打印指令(即第10769行g代码),将原本的第一打印指令(即第10768行g代码)作为新的第二打印指令,并将所述时间段tp2减去执行时间tp1,藉以作为新的第一打印指令开始执行至打印中断发生时的时间段tp2'(未显示于图中)。如此,通过重复执行上述获得新的第一打印指令的步骤,控制器103最终可估算出中断发生时,立体打印装置100正执行的g代码行数。在本发明的一实施例中,当立体打印装置100自打印中断重新启动时,立体打印装置100的控制器103可解析出已执行过的g代码,以快速地找出打印中断发生时正执行的g代码的行数。具体而言,以图2为例,当执行第10769行的g代码时,若发生打印中断且立体打印装置100被重设以进行接续打印时,由于无法直接搜寻这些g代码以找到想要行数的特定g代码,因此控制器103将会从头由第1行的g代码开始读取,并将行数小于非易失性存储器105中的计数值的g代码忽略,直至读取到对应于非易失性存储器105中的计数值的第一打印指令(即第10769行的g代码)为止。在读取到第一打印指令之前,控制器103只会读取而不会执行第一打印指令之前的多个已执行打印指令(即第10769行之前的g代码),也就是不会让打印头相应的进行移动,藉以加快接续打印的执行程序并避免不必要的功率消耗。当控制器103读取到对应于非易失性存储器105中的计数值的第一打印指令后,控制器103可依据第二打印指令的打印位置(即本实施例中第10768行的g代码的打印位置)获得正确起始位置。接着,控制器103可依据所述正确起始位置、对应于第一打印指令(即第10769行的g代码)中的打印头移动速率、执行第一打印指令至发生打印中断的时间段以及第一打印指令(即第10769行的g代码)中的打印位置来计算中断位置。只是计算打印头的所在位置而已。在此过程之中,立体打印装置100可例如使用其内部的控制器103以计算出再执行所述多个已执行打印指令之后,打印头101在执行第一打印指令时的正确起始位置(第二打印指令的打印位置,即本实施例中第10768行的g代码的打印位置)。当第二打印指令的打印位置与计算出的所述正确起始位置相同时,控制器103可依据所述正确起始位置、对应于第一打印指令(即第10769行的g代码)的打印头移动速率、执行第一打印指令至发生打印中断的时间段以及第一打印指令(即第10769行的g代码)中的打印位置来计算中断位置。图3是依据本发明一实施例显示接续打印的方法的流程示意图,此流程适用于立体打印装置100。在步骤s301中,控制器103可依序执行多个打印指令,藉以控制立体打印装置100的打印头101进行打印,且在执行任一个打印指令时将一计数值加一。在步骤s303中,非易失性存储器105可根据一预设周期,藉以周期性地纪录所述计数值。步骤s301及步骤s303的顺序可由使用者根据需求调整,本发明并不限定于此。接着,在步骤s305中,控制器103可判断是否发生打印中断,若未发生打印中断,则回到步骤s301。反之,则进入步骤s307。在步骤s307中,控制器103读取非易失性存储器105中的计数值,藉以获得与计数值相对应的第一打印指令,且获得立体打印装置100在执行第一打印指令至发生打印中断的时间段tp。接着,在步骤s309中,控制器103通过比较第一打印指令的执行时间与第一打印指令开始执行至打印中断发生时的时间段,判断对应于当前计数值的第一打印指令是否为打印中断时立体打印装置100正执行的打印指令,若所述第一打印指令并非打印中断时正执行的打印指令,则进入步骤s311。具体而言,控制器103可由对应于当前计数值的第一打印指令、第一打印指令之前的第二打印指令、第一打印指令开始执行至打印中断发生时的时间段以及对应于第一打印指令的打印头移动速率,来估算出中断发生时,立体打印装置100正执行的g代码。接着,在步骤s311中,控制器103将原第一打印指令之后的打印指令作为新的第一打印指令,将原第一打印指令作为新的第二打印指令,并将立体打印装置100在执行原第一打印指令至发生打印中断的时间段减去步骤s305中的执行时间,以作为新的第一打印指令开始执行至打印中断发生时的时间段tp。接着,重新执行步骤s309。在步骤s309中,若控制器103判断第一打印指令为打印中断时正执行的打印指令,则进入步骤s313。在步骤s313中,控制器103根据第一打印指令、在第一打印指令之前执行的第二打印指令以及所述时间段,藉以计算打印中断发生时的中断位置。详细而言,控制器103可根据第一打印指令中的打印位置与第二打印指令中的打印位置以计算出一位移向量及对应于所述位移向量的一位移量。并且,控制器103可根据对应于第一打印指令的打印头移动速率与所述时间段以计算出一移动距离。最后,控制器103可根据第二打印指令中的打印位置、所述位移向量、所述位移量以及所述移动距离以获得打印中断发生时的中断位置。当步骤s313执行完毕时,在步骤s315中,控制器103可从中断位置以第一打印指令来接续地进行打印。综上所述,本发明提供一种立体打印装置及其接续打印的方法,可在立体打印装置发生打印中断后,计算出打印中断发生时的中断位置。当立体打印装置欲进行接续打印时,控制器可将打印头移动至正确的中断位置,并可将打印中断发生时尚未完成的打印指令接续完成。藉此,本发明的立体打印装置可于打印中断发生时,在不装设不断电系统的情况下,正确地执行立体接续打印。值得一提的是,除了应用在非预期的打印中断的情况,本发明提出的接续打印方法也可应用于例如使用两台不同的立体打印装置来完成一立体打印的情形。举例而言,使用者可利用本发明提出的接续打印方法,于不同地点使用不同的立体打印装置及相同的打印代码集来接续完成同一立体打印,打印代码集可例如通过云端的方式交换于两台立体打印装置之间,本发明并不限定于此。虽然本发明已以实施例揭示如上,然其并非用以限定本发明,任何所属
技术领域
中技术人员,在不脱离本发明的精神和范围内,当可作些许的更改与润饰,故本发明的保护范围当视权利要求所界定的为准。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1