发明内容
众所周知,CNC、三维实体生成、打印材料是3D打印的三大基础技术。
现有3D打印釆用的都是源于传统的减材制造的基于IEEE定义的CNC系统,已不能适应3D打印的发展。
为了更清楚地说明本申请的技术原理,进一步揭示G代码程序与插补迭代控制所存在的问题,将现有CNC系统与计算机系统进行对比。
事实上,计算机系统本身就是一个CNC系统。例如,一台PC机与一台二维打印机便构成一个CNC系统。
打印机的坐标轴为X轴、Y轴。文字由直线、曲线构成,其几何结构是确定性的。文字,例如汉字,事先被离散为x/y平面上的一个点阵,并固化在字库中。点阵在字库中的地址称为内码。汉字不同,其点阵、内码均不同。
当打印机准备就绪后,向操作系统发出中断请求,操作系统响应中断,将word编辑的文件发送给打印机。打印一个汉字时,根据其内码,从字库中读取其点阵中各点的x坐标与y坐标,打印头打印该点阵,也就是该点阵所构成的汉字。
从CNC的观点来看,打印机的CNC系统具有下述特点:
1)、事先规划汉字的离散几何结构即点阵,并存储在字库中。
2)、可以采用多种技术手段精细地规划汉字点阵。
3)、采用word编辑文件,对于汉字,用户无须编写与G代码程序相类似的打印程序。
4)、在文件的编辑过程中完成辅助功能的控制,例如,换行、空格等。
5)、无须配置实时操作系统,操作系统只是支持word编辑文件,以及响应打印机的中断请求,并不掌控文件的打印过程,特别是不参入汉字点阵的生成过程。
6)、不受计算机分时周期的限制,打印速度大为提高。
7)、为此付出的代价是,必须为字库配置大容量存储器,也就是以空间换时间。
8)、一旦打印对象复杂化,其基本技术手段是,扩展存储空间,8G、16G、32G等等。
将打印头视为刀具,打印文件视为刀路曲线,各种汉字视为刀路曲线中的直线、圆弧等,打印文件的打印过程视为刀路曲线的加工过程。采用现有CNC系统作为打印机的控制系统,则具有下述特点:
1)、由插补算法实时插补得到每个汉字的离散几何结构即点阵。
2)、插补算法只是一种不超差的保守算法,不是最优算法,难以精细地规划汉字点阵。
3)、针对汉字中的曲线,必须用相应的插补指令编写G代码打印程序。
4)、对于辅助功能的控制,必须插入相应的功能指令。
5)、必须配置实时操作系统,实时操作系统掌控文件的全部打印过程,特别是汉字点阵的生成过程。
6)、受计算机插补周期的限制,打印速度必然降低。
7)、其优点是,无须配置字库,节省存储空间。
8)、一旦打印对象复杂化,其基本技术手段是,配置32位高速CPU及其实时操作系统、64位高速CPU及其实时操作系统等等。
通过上述对比,可得到下述结论:
第一,计算机的本质有二。一是用最快的速度做最简单的事,二进制算术运算与二进制逻辑运算无疑是最简单的运算。二是“存储信息控制”,不只是计算机的运行规则(即根据算法用编程语言编写的程序)被事先存储,相关的数据也被事先存储,根据算法确定的规则,计算机对相关的数据予以处理。文字(刀路曲线)的确定性离散几何结构只是一个事先规划问题,不需要实时插补。现有CNC系统采用插补迭代控制,在实时操作系统的掌控下,进行实时插补,完全违背了存储信息控制的基本原理。
第二,文字的离散几何结构与进给速度无关。刀路曲线的离散几何结构也与进给速度无关。
汉字(刀路曲线)纯粹是一个几何问题,这是一个基本事实。因而,汉字(刀路曲线)的离散几何结构是一个与与进给速度无关的几何不变量。插补迭代控制将进给速度与汉字(刀路曲线)的几何结构耦合在一起,其技术原理落后于时代,是过时的。
第三,在计算机系统中,时间的控制是最简单的。
通过插补迭代控制,现有CNC系统将进给速度与汉字(刀路曲线)的几何结构耦合在一起,时间被插补周期锁定为系统参数,不再是自由变量。这就将最简单的问题高度复杂化,产生了进给速度前瞻控制等伪问题。
第四,控制对象不同,实时控制过程也不同。现有CNC系统采用插补迭代控制,将实时操作系统的管理机制与应变机制当作一种普适的控制机制,完全违背了具体问题具体分析的基本原则,背上了实时操作系统这个沉重的包袱。
针对基于IEEE定义的现有CNC系统所存在的问题,为告別G代码编程,实现“每个人都会使用3D打印机”,“每个人都会编程”的大众化目标,降低3D打印的技术准入门槛与成本,本申请提出一种用于3D打印的CNC系统与编程界面,以及打印文件的生成方法与三维实体的打印方法。
本申请的技术方案如下。
一种用于3D打印的CNC系统,用于控制3D打印机的坐标轴,所述坐标轴通过联动以打印三维实体的所有二维实体中的打印曲线,包括硬件平台、软件平台和应用软件系统,所述硬件平台为PC系统,所述软件平台为图形界面操作系统;其特征在于,所述应用软件系统包括CANC规划组件,NC信息库,打印文件规划组件,实时内核组件;
(1)、CANC规划组件
所述CANC规划组件包括离散坐标系生成模块、L分割规划模块、T分割规划模块;
(1-1)所述离散坐标系生成模块用于按照给定的离散标度,用距离为所述离散标度的等距线将坐标平面网格化,在屏幕上建立离散坐标系;
(1-2)根据打印方位,所述L分割规划模块用于在所述离散坐标系中规划打印直线L1,…,Lm的L分割δLi,其中,i=1,…,n;
所述打印直线L1,…,Lm包括所述打印曲线中的所有直线的加速段/减速段、匀速段,所有圆弧的逼近折线;
(1-3)根据加工工艺,所述T分割规划模块用于校核坐标轴的运动平稳性,规划所述打印直线L1,…,Lm的T分割δti,其中,i=1,…,n;
(2)、NC信息库
所述NC信息库用于存储控制坐标轴联动的数字控制信息,所述数字控制信息包括所述打印直线L1,…,Lm中的每条打印直线的联动表与随动表;
所述联动表用于存储所述打印直线L1,…,Lm的L分割δLi;所述L分割δLi用于存储所述联动坐标轴的进给量,控制坐标轴联动以产生合成位移;
所述随动表用于存储所述打印直线L1,…,Lm的T分割δti;所述T分割δti用于存储所述进给量之间的时间间隔,控制所述合成位移的进给速度;
所述NC信息库还包括所述打印直线L1,…,Lm中的每条打印直线的状态字;所述状态字用于指定所述联动坐标轴及其进给方向;
所述NC信息库还包括NC信息库索引表,所述NC信息库索引表用于存储所述打印直线L1,…,Lm中的每条打印直线的联动表的首地址、随动表的首地址与末地址;
(3)、打印文件规划组件
所述打印文件规划组件包括NC信息库生成模块、打印指令生成模块、NC信息库索引表生成模块、NC信息库索引生成模块、打印文件生成模块;
(3-1)对于所述打印直线L1,…,Lm的L分割与T分割,所述NC信息库生成模块用于按照给定的数据格式在存储空间构造所述打印直线L1,…,Lm中的每条打印直线的联动表与随动表,生成所述NC信息库;
(3-2)根据加工工艺,所述打印指令生成模块用于将第i层二维实体的所有打印直线分为若干段,对应地生成若干条打印指令;
(3-3)对于每条打印指令中的每条打印直线,所述NC信息库索引表生成模块用于生成NC信息库索引表;所述NC信息库索引表对应地存储每条打印指令中的每条打印直线的联动表的首地址、随动表的首地址与末地址;
(3-4)对于每条打印指令中的每条打印直线,所述NC信息库索引生成模块用于生成NC信息库索引,所述NC信息库索引链接用于所述NC信息库索引表;
(3-5)根据打印工艺,所述打印文件生成模块用于在所述第i层二维实体的打印指令中,插入若干条开关指令、若干条状态指令,生成所述第i层二维实体的打印文件;所述开关指令用于控制Z轴的锁紧与松开;所述状态指令用于控制打印过程的启动、结束、暂停,坐标系设定、原点返回;
根据打印工艺,在k层二维实体之间,插入若干条开关指令、若干条状态指令,生成三维实体的打印文件;
(4)、实时内核组件
所述实时内核组件包括打印文件处理模块、联动坐标轴设置模块、联动命令设置模块、节律控制模块、喷射控制模块、终点控制模块、Z轴控制模块;
(4-1)CNC系统接收打印作业的启动指令后,所述操作系统设置实时内核运行标志,启动实时内核;
(4-2)所述打印文件生成模块从第1层二维实体的打印文件中读取第1条打印指令,根据所述打印指令中的第1条打印直线的NC信息库索引,从所述NC信息库索引表中读取所述第1条打印直线的联动表的首地址、随动表的首地址与末地址,从所述NC信息库中读取所述第1条打印直线的状态字;
(4-3)所述联动坐标轴设置模块将所述联动表首地址写入L指针;将所述随动表首地址写入T指针;将所述状态字写入状态字寄存器,指定所述联动坐标轴及其进给方向;
(4-4)根据所述T指针,所述联动命令设置模块读取所述随动表中的控制节律δti并写入T分割定时器;
(4-5)所述T分割定时器中的定时时间到,所述节律控制模块通过联动接口向所述状态字指定的所述联动坐标轴发送所述L指针指定的进给量,驱动所述联动坐标轴按所述状态字指定的进给方向进给,产生合成位移;
(4-6)根据打印工艺,跟随所述控制节律δti,所述喷射控制模块控制打印头喷射打印材料;
(4-7)所述终点控制模块判断所述T指针是否等于所述随动表末地址,如果所述T指针等于所述随动表末地址,所述第1条打印直线打印完毕,所述打印文件处理模块从所述NC信息库索引表中读取下一条打印直线的联动表的首地址、随动表的首地址与末地址,从所述NC信息库中读取所述下一条打印直线的状态字;否则,执行步骤(4-4),T指针指向δti+1,继续打印所述第1条打印直线;
(4-8)重复步骤(4-2)至步骤(4-7),直至所述第1条打印指令中的所有打印直线打印完毕;
(4-9)重复步骤(4-2)至步骤(4-8),直至所述第1层二维实体的打印文件中的所有打印指令执行完毕;
(4-10)所述Z轴控制模块控制工作台下降δz2,所述δz2为第2层二维实体的厚度;
(4-11)重复步骤(4-2)至步骤(4-10),直至第k层二维实体的打印文件中的所有打印指令执行完毕,所述终点控制模块关闭运行标志。
进一步地,所述基于3D打印的CNC系统,其特征还在于,所述联动表包括“主动轴”字段、“基底”字段、“周期”字段、“状态字”字段;所述“主动轴”字段用于标识主动轴,主动轴数据流为默认值全“1”;所述“基底”字段用于标识联动轴数据流在一个周期中的“0”/“1”分布;所述“周期”字段用于标识所述基底的个数,所述周期等于所述打印直线的终点坐标的最大公约数;所述“状态字”字段用于标识联动坐标轴及其进给方向。
进一步地,所述基于3D打印的CNC系统,其特征还在于,包括显示组件;所述显示组件包括显示校验模块与动态显示模块;
所述显示校验模块读取所述三维实体的NC信息库,在所述离散坐标系中显示所述k层二维实体的生成过程与所述三维实体的生成过程,校验所述k层二维实体与所述三维实体;
跟随所述控制节律δti,其中,i=1,…,n,所述动态显示模块从所述L指针指定的联动表中实时读取所述打印直线的x数据流、y数据流、状态字,在屏幕上显示所述打印直线的打印过程,显示所述二维实体与所述三维实体的打印过程。
进一步地,所述基于3D打印的CNC系统,其特征还在于,所述应用软件系统还包括收缩补偿模块;所述收缩补偿模块根据厚度补偿系数,对所述δzi(其中,i=1,…,k)进行厚度补偿,所述δzi用于控制Z轴下降的进给量;根据宽度补偿系数与长度补偿系数,对每层二维实体的填充曲线进行宽度补偿与长度补偿。
进一步地,所述基于3D打印的CNC系统,其特征还在于,所述图形界面操作系统包括编程界面;所述编程界面包括CANC规划功能区、打印文件规划功能区;
所述CANC规划功能区包括离散坐标系生成窗口、L分割规划窗口、T分割规划窗口;所述离散坐标系生成窗口链接所述离散坐标系生成模块、所述L分割规划窗口链接所述L分割规划模块、所述T分割规划窗口链接所述T分割规划模块;
所述打印文件规划功能区包括NC信息库生成窗口,轨迹指令编辑窗口,NC信息库索引表生成窗口,NC信息库索引生成窗口、打印文件生成窗口;所述NC信息库生成窗口链接所述NC信息库生成模块,所述轨迹指编辑窗口链接所述轨迹指令编辑模块,所述NC信息库索引表生成窗口链接所述NC信息库索引表生成模块,所述NC信息库索引生成窗口链接所述NC信息库索引生成模块,所述打印文件生成窗口链接所述打印文件生成模块。
进一步地,所述基于3D打印的CNC系统,其特征还在于,采用触控方式操作所述编程界面中的所述各功能区与所述各窗口。
一种基于所述编程界面的打印文件生成方法,其特征在于,包括下述步骤:
(1)CANC规划步骤
所述CANC规划步骤包括:
(1-1)离散坐标系生成步骤
所述离散坐标系生成模块按照给定的离散标度,用距离为所述离散标度的等距线将坐标平面网格化,在屏幕上建立离散坐标系;
(1-2)L分割规划步骤
根据打印方位,所述L分割规划模块在所述离散坐标系中规划所述打印直线L1,…,Lm的L分割;包括下述步骤:
在所述离散坐标系中生成第1层二维实体的第1条打印直线,从所述第1条打印直线的起点开始,沿允许运动方向进给一个离散标度,分别到达两个不同的格点,计算并比较所述两个格点与所述第1条打印直线的距离,选择散误差最小的格点;
重复上述步骤,直至所述第1条打印直线的终点,生成所述第1条打印直线的L分割;
重复上述步骤,直至生成所述第1层二维实体的所有打印直线的L分割;
重复上述步骤,直至生成第k层二维实体的所有打印直线的L分割;
(1-3)T分割规划步骤
根据加工工艺,所述T分割规划模块校核坐标轴的运动平稳性,规划所述打印直线L1,…,Lm的T分割;包括下述步骤:
(1-3-1)校核坐标轴运动平稳性约束条件:
︱Fi+1,d-Fi,d︳≤δF;
式中,Fi,d为所述打印直线Li的主动轴D的进给进度,Fi+1,d为所述打印直线Li+1的主动轴D的进给进度;δF为坐标轴进给速度的允许跳变量,由加工工艺指定,对于圆弧的微线段,则取δF/λ作为进给速度的允许跳变量,λ为坐标轴稳定系数,λ≥5;
对于第1层二维实体的打印直线Li与Li+1,如果所述坐标轴运动平稳性约束条件不滿足,加速时可降低Fi+1,减速时可提高Fi+1;式中,Fi+1为Li+1的进给进度;
(1-3-2)基于调整后的进给速度,依公式ti=Li/Fi,求得所述打印直线L1,…,Lm的加工时间t1,…,tm;
(1-3-3)规划所述打印直线Li的T分割δti,其中,i=1,…,n:
按公式
δti,j+1=δti,jni/(δFδti,j±ni)
求得δti,j+1,j=1,…,n1,式中,加速时取“+”,减速时取“-”;ni为所述打印直线Li的主动轴数据流中“1”的个数,δti,j、δti,j+1为与δLi,j、δLi,j+1相对应的时间区间,δti,1=ti/ni,ti为所述打印直线Li的加工时间;
重复上述步骤,生成所述打印直线Li的T分割δti,其中,i=1,…,n1;
重复上述步骤,直至生成所述第1层二维实体的所有打印直线的T分割;
重复上述步骤,直至生成第k层二维实体的所有打印直线的T分割;
(2)打印文件规划步骤
所述打印文件规划步骤包括:
(2-1)NC信息库生成步骤
对于所述打印直线L1,…,Lm的L分割与T分割,所述NC信息库生成模块按照给定的数据格式在存储空间构造所述打印直线L1,…,Lm中的每条打印直线的联动表与随动表,生成所述NC信息库;
(2-2)打印指令生成步骤
根据打印工艺,所述打印指令生成模块将第i层二维实体的所有打印直线分为若干段,对应地生成若干条打印指令;
重复上述步骤,生成所述第k层二维实体的打印指令;
(2-3)NC信息库索引表生成步骤
对于每条打印指令,所述NC信息库索引表生成模块生成NC信息库索引表;所述NC信息库索引表对应地存储每条打印指令中的每条打印直线的联动表的首地址、随动表的首地址与末地址;
(2-4)NC信息库索引生成步骤
对于每条打印指令中的每条打印直线,所述NC信息库索引生成模块生成NC信息库索引,所述NC信息库索引用于链接所述NC信息库索引表;
(2-5)打印文件生成步骤
根据打印工艺,打印文件生成模块在所述第1层二维实体的打印指令中,插入若干条开关指令、若干条状态指令,生成所述第1层二维实体的打印文件;重复上述步骤,直至生成第k层二维实体的打印文件;
根据打印工艺,在k层二维实体之间,插入若干条开关指令、若干条状态指令,生成三维实体的打印文件。
进一步地,所述打印文件生成方法,其特征还在于,所述L分割规划模块在所述离散坐标系中生成1条圆弧,从所述圆弧的起点开始,沿允许运动方向进给一个离散标度,分别到达两个不同的格点,计算并比较这两个格点与所述圆弧的距离,选择散误差最小的格点;重复上述步骤,直至所述圆弧的终点;生成所述圆弧的L分割δLi,其中,i=1,…,s,s为所述圆弧的主动轴数据流中“1”的个数;
按照所述圆弧的联动轴数据流的分布周期,将所述圆弧的L分割δLi转换为k条打印直线L1,…,Ls,k<s。
一种基于所述3D打印的CNC系统的三维实体打印方法,其特征在于,包括下述步骤:
(1)实时内核启动步骤
所述CNC系统接收打印命令后,所述操作系统设置实时内核运行标志,启动所述实时内核;
(2)打印文件生成步骤
所述打印文件生成模块从所述打印文件中读取第1层二维实体的打印文件中的第1条打印指令,根据所述第1条打印指令的NC信息库索引,从所述NC信息库索引表中读取第1条打印直线的联动表的首地址、随动表的首地址与末地址,从所述NC信息库中读取所述第1条打印直线的状态字;
(3)联动坐标轴设置步骤
所述联动坐标轴设置模块将所述联动表的首地址写入L指针;将所述随动表的首地址写入T指针;将所述状态字写入状态字寄存器,指定联动坐标轴;
(4)联动命令设置步骤
根据所述T指针,所述联动命令设置模块读取所述随动表中的控制节律δti并写入T分割定时器;
(5)节律控制步骤
所述T分割定时器中的定时时间到,所述节律控制模块通过联动接口向所述状态字指定的所述联动坐标轴发送所述L指针指定的进给量,驱动所述联动坐标轴按所述状态字指定的进给方向进给,产生合成位移;
(6)喷射控制步骤
跟随所述控制节律δti,所述喷射控制模块启动打印头喷射打印材料;
(7)终点控制步骤
所述终点控制模块判断所述T指针是否等于所述随动表的末地址,如果所述T指针等于所述随动表的末地址,所述第1条打印直线打印完毕,执行步骤(2),所述打印文件处理模块从所述NC信息库索引表中读取第2条打印直线的联动表的首地址、随动表的首地址与末地址,从所述NC信息库中读取所述第2条打印直线的状态字;否则,执行步骤(4),T指针指向δti+1,继续打印所述第1条打印直线;
(8)重复步骤(2)至步骤(7),直至所述第1条打印指令中的所有打印直线打印完毕;
(9)重复步骤(2)至步骤(8),直至所述第1层二维实体的打印文件中的所有打印指令执行完毕;
(10)Z轴控制步骤
所述Z轴控制模块控制工作台下降δz2,所述δz2为第2层二维实体的厚度;
(11)重复步骤(2)至步骤(10),直至第k层二维实体的打印文件中的所有打印指令执行完毕,所述终点控制模块关闭运行标志。
本申请与现有技术对比所具有的有益效果是:
1、3D打印取代增材制造,并非是术语的简单更換,而是创新理念的改变。在本质上,3D打印机是一种新发明的工具。作为工具,3D打印机可以用于制造业,也可以用于其他产业。3D打印的内涵远远大于增材制造。
3D打印机的大众化是3D打印发展的必然趋势。每个人都用得起3D打印机,每个人都会使用3D打印机,每个人都会编写打印程序;每个人都会改装3D打印机。
本申请提出的用于3D打印的CNC系统,对用户完全开放,可重构。用户不需要研发、配置相应的实时插补模块,可以自己动手改装3D打印机,完全适应DIY的要求。
本申请采用实时内核支持的步进型CNC系统,无须配置须实时操作系统,体系结构简单,可靠性高,显著降低了CNC系统的成本。
2、插补迭代控制与G代码程序相结合,所产生的后果是,将打印曲线所涉及的时间、空间、工艺要求、机电系统的运动学/动力学特征等要素全部紧密耦合在一起。这就导致打印曲线的生成成为现有CNC技术中研究最为广泛深入的问题。
打印曲线纯粹是一个几何问题,这是一个基本事实。换言之,进给速度与打印曲线的几何结构是相互独立的。在进给中,联动坐标轴的进给量只取决于打印曲线的几何结构与加工精度。因而,打印曲线的生成问题与G代码程序无关,与插补迭代控制无任何本质联系;相邻进给速度之间的跳变量也与G代码程序无关,与插补迭代控制与无任何本质联系。二者都是规划问题。
本申请将打印曲线的生成转化为NC信息库的的生成,针对坐标轴进给速度跳变量的周期性剧烈变化,引入坐标轴稳定系数,解决了打印曲线的生成问题。
本申请可采用种种技术手段对NC信息库进行高精度规划,以提高加工精度与坐标轴的运动平稳性。NC信息库的结构简单,处理速度快,占用的存储空间小。
3、本申请通过CANC规划,构造打印曲线的NC信息库,并进一步构造NC信息库索引表与NC信息库索引,从而将编写NC程序转化为生成打印文件,编程界面设置在CNC系统的人机界面,采用触控方式操作,只须点击滑动,便可完成打印文件的生成与编辑。
打印文件的生成类似word文档的编辑,其生成过程全程可视化,控制信息透明、开放。
本申请用打印文件取代了通常的G代码打印程序,取消了G代码编程,编写打印程序犹如使用word编写短信,“开数控就像玩手机,编程就像发信息”,实现了“每个人都会编程”的大众化目标,显著降低了3D打印的准入门槛。
4、本申请无须配置实时操作系统,没有插补周期。另一方面,本申请取消了G代码程序,没有与G代码程序相关的作业,例如G代码程序的解释与预处理等。因而,本申请显著提高了打印速度。
5、现有编程系统基于G代码,并独立于CNC系统,成为CNC系统的标准配置,且价格不菲。
本申请将CNC系统与编程系统融为一体,不需要配置专业的编程系统,从而降低了3D打印的成本。
6、G代码标准是信息技术起步阶段的原始产物,各个厂商因而对G代码都进行了基本语义之外的扩张,所扩张的指令代码及格式也各不相同,导致G代码程序与相应硬件的依赖,G代码程序在不同的CNC系统之间不具有互换性。
G代码程序的这一缺陷导致各种专用后置处理程序高达上千种之多,以至在现有CNC技术体系中,后置处理理论与技术竟成为现有CNC技术的重要内容,耗费了大量的资源。
在本申请中,不存在打印文件的后置处理问题,显著提高了打印文件的通用性。
7、G代码程序的编制是十分个性化的工作,导致现有编程技术为封闭的个体式编程,并需要专业的编程人员,人工成本高昂,其费用大约为普工的3倍。
本申请不需要配置专业的编程人员,“每个人都会编程”,进一步降低了3D打印的成本。
8、本申请取消了插补周期,无须配置实时操作系统,体系结构简单,可靠性高,显著降低了CNC的技术门槛与CNC系统的成本。
9、本申请将时间还原为自由变量。在打印曲线的实时控制过程中,实时内核以最快的速度向相关伺服驱动器输出离散进给信息,“停”的时间最短;另一方面,本申请取消了G代码程序,没有与G代码程序相关的作业,例如G代码程序的解释与预处理等。因而,本申请显著提高了加工速度。
10、进给速度前瞻控制是现有CNC的核心技术之一。在本申请中,不存在进给速度前瞻控制,加减速问题成为T分割规划的特例,并可采用种种技术手段对刀路曲线进行精细的T分割规划。
特别是,加工圆弧时,现有CNC技术未区分圆弧特有的几何特征,未考虑坐标轴进给速度跳变量的周期性剧烈变化,也未考虑主动轴与联动轴的运动平稳性的巨大差异,对于联动轴,没有坐标轴稳定系数的概念。本申请对联动坐标轴的离散进给信息与运动平稳性进行高精度规划,消除了圆弧的非欧误差,设置坐标轴稳定系数λ,显著提高了坐标轴的运动平稳性与圆弧的加工质量。
11、本申请的编程界面可安装在手机上。手机是高度普及的移动信息处理系统,通过移动通信网与互联网,为3D打印的创意玩家提供了一个信息共享的开放式平台,必将有力地促进3D打印的大众化。
具体实施方式
众所周知,3D打印可分为两类成型技术,选择性沉积与选择性连接。选择性沉积将熔化的打印材料选择性沉积,固比成型。选择性连接先铺放打印材料,然后选择性喷射粘接剂,粘合成型;或激光选择性扫描,固比成型。
一般来说,无论是哪种成型技术,3D打印机的基本原理为,一个可升降的工作台,用于铺放打印材料。一个或多个喷嘴,用于喷射(塑料/金属/粘接剂)液滴、(塑料/陶瓷/金属)粉末;或者用于发射激光束。喷嘴在X轴/Y轴控制下相对于工作台作曲线运动,Z轴控制工作台的升降。
任何复杂的三维实体,都可以分解为一系列厚度为δzi的k层二维实体的叠加,δzi不一定相等。X轴/Y轴联动,喷嘴同步喷射打印材料,在工作台上固化后生成二维实体;或者X轴/Y轴联动,喷嘴同步发射激光束,将工作台上事先铺放的打印材料烧结后生成二维实体。一层二维实体打印后,Z轴控制工作台下降δzi,再打印下一层二维实体。
由于每层二维实体都足够薄,δzi足够小,实际上可视为x/y平面上的一个区域。由此可见,打印二维实体是3D打印的基础。
发明于1988年的STL文件格式(STereo Lithography)已成为3D打印的事实上的行业标准。一般通过3D建模软件或3D扫描仪建立3D模型,生成3D模型的STL文件,然后通过分层软件将三维实体分解为一系列二维实体。二维实体不一定是实心的,因而有外轮廓曲线与内轮廓曲线之分。外轮廓曲线与内轮廓曲线之间的实心区域需要填充,但一般不必全部填充,而是由若干填充曲线来填充。
填充曲线一般为直线,外轮廓曲线与内轮廓曲线则由若干直线、圆弧、非圆曲线构成。
此外,对于选择性沉积成型技术,还必须设置由支撑曲线构成的支撑结构。
STL文件分层处理不涉及填充曲线与内轮廓曲线,外轮廓曲线则为一系列直线。
从喷嘴喷射的材料有一定的宽度,固化成型后又必然产生收缩,包括长度收缩,宽度收缩,以及Z方向的厚度收缩。收缩影响3D打印的精度。这就需要进行补偿,分别称之为长度补偿,宽度补偿(类似减材制造中的刀具半径补偿)以及厚度补偿。对填充曲线进行长度补偿与宽度补偿后得到打印曲线,它是喷嘴中心相对于x/y平面的运动轨迹。
长度补偿系数Le,宽度补偿系数we,厚度补偿系数He均作为3D打印机的系统参数储存在工艺参数库中。
任何曲线只存在两种数字映像,即微观数字映像与增量型数字映像,前者的坐标轴离散进给信息为“0”“1”形态的步进脉沖,其CNC系统称之为步进型CNC系统,后者的坐标轴离散进给信息为坐标值增量,其CNC系统称之为增量型CNC系统。对应地,相关坐标轴进给一个离散当量或若干个离散当量。
与传统的减材制造相比,在3D打印中,打印曲线的离散误差较大,一般为0.1mm至0.01mm数量级,加上材料固化成型的时间長,打印速度较低。这就表明,3D打印的CNC系统宜采用步进型CNC系统。
X轴/Y轴联动要求X轴/Y轴具有起点同步与终点同步。起点同步与终点同步正是步进型CNC系统的内禀属性。
本申请仅涉及用于3D打印的CNC系统,不涉及三维实体与二维实体的生成。
若干定义
预先设定的离散误差称为离散标度,记为e。以离散标度将坐标轴离散,相互之间的距离为离散标度的平行线将坐标平面网格化。由此建立的坐标系称之为离散坐标系。
离散标度ex、…、ey是离散坐标系的系统参数。每个坐标轴的离散标度可以不同。
坐标轴的运动方向相互垂直的离散坐标系称之为正交离散坐标系,如图1所示的正交直角离散坐标系。
图1中,距离为离散误差的平行线将坐标平面网格化。彼此平行的等距线之交点称为格点,如图1中的a、b、c、d等格点。
只有格点才是坐标轴的离散运动实际到达的位置。
曲线上的点称为原像,如图1中的m点。
一个格点,如果与曲线上的某个原像的距离小于或等于离散误差,则称为该原像的数字映像,简称为映像,如图1中的格点b、c、d。
曲线的全部映像构成一个集合,称之为该曲线的映像集。例如,对于直线OA,e为离散标度,与直线OA距离为e的两条平行线构成直线OA的数字映像的边界,边界上与边界内的全部格点就是该圆的映像集。
在给定的离散坐标系中,曲线的映像集及其在离散坐标系中的分布完全取决于该曲线的几何结构。
显然,对于曲线上的一个原像,存在多个映像;反之,对于一个映像,在该曲线上则存在多个原像。
在CNC系统中,通过坐标轴联动合成打印曲线,坐标轴的运动方向是受约束的。例如,对于x/y坐标工作台,运动方向为±x方向、±y方向、以及X轴和Y轴联动所形成的+x/+y、+x/-y、-x/+y、-x/-y四个方向。这8个运动方向称之为机械系统的允许运动方向。
打印是喷嘴中心相对于二维实体的运动过程,存在逆时针与顺时针两种运动方向。打印的这种方向性称之为打印方位。例如,对于第1象限的逆时针圆弧,打印方位为西北方位。
打印方位约束了坐标轴的运动方向。例如,当打印方位为西北方位时,只有-x方向、+y方向与-x/+y方向是允许运动方向,其他方向为排斥运动方向。
对于坐标轴来说,所需要的进给量是一种时间与打印方位支配下的离散进给信息的状态流,称之为关联数据流。
步进型关联数据流是“1”“0”形态的离散进给信息,增量型关联数据流的离散进给信息是坐标值增量。
按离散标度将曲线离散为映像的一个序列。如果映像之间的坐标值增量为一个离散标度,即只能等于“1”或“0”,该数字映像序列称为曲线的微观数字映像。
将曲线的微观数字映像按时序排列,所产生的“0”与“1”的离散位置信息就是该曲线的步进型关联数据流。
曲线的微观数字映像描述了该曲线的精细微观结构。
打印曲线的生成
80年代以前,计算机硬件是昂贵的。30余年过去了,大容量存储器极为便宜、其价格已低至可忽略不计。制约CNC发展的物质条件发生了如此翻天覆地的变化,制造业对CNC提出了更高的要求,现有CNC的原理与方法必须适应这一变化,以满足制造业对CNC提出的高速高速精度的要求。
打印曲线纯粹是一个几何问题,这是一个基本事实。换言之,进给速度与打印曲线的几何结构是相互独立的。在进给中,联动坐标轴的进给量只取决于打印曲线的几何结构与加工精度。因而,打印曲线的生成问题与G代码程序无关,更与插补迭代控制无任何本质联系。相邻进给速度之间的跳变量也与G代码程序无关,与插补迭代控制与无任何本质联系。二者都是规划问题。
因而,打印曲线生成的基本问题是,对于加工工艺所要求的离散误差与进给速度,如何规划打印曲线中相关坐标轴的进给量,使得相邻进给量之间进给速度的跳变量满足运动平稳性的要求。
表1为离散坐标系x/y中打印曲线的2维步进型关联数据流的示意图。离散标度为e,打印曲线为x、y的函数。
表1
表1中,时间T被离散为n个区间:δti(i=1,…,n)。在每个δti内,X、Y轴的进给量即步进脉冲不是“0”就是“1”,分别记为(1,1),(1,0),称为步进型关联数据流的状态。
步进型关联数据流的状态序列称之为打印曲线的L分割;δt1,…,δtn之总和称之为打印曲线的T分割。δti的长短取决于打印速度F。
为简便起见,L分割记为δLi(i=1,…,n),其中,每个δLi不是(1,1)就是(1,0);T分割记为δti(i=1,…,n)。
因而,打印曲线的x/y步进型关联数据流就是打印曲线的L分割δLi(i=1,…,n)按照T分割δti(i=1,…,n)进行排序后的状态流。
打印曲线是X、Y轴联动时的合成位移。位移的合成一方面要求X、Y轴必须联动,另一方面要求以最优进给速度连续实现位移的合成。位移的合成与合成位移的连续实现是性质不同的两个问题。位移的合成取决于打印曲线的L分割,涉及打印曲线的几何结构;合成位移的连续实现取决于打印曲线的T分割,涉及打印时的进给速度。
L分割用于描述坐标轴的离散位置信息及其联动性,以产生所要求的合成位移。T分割用于描述所述合成位移之间的随动性,控制所述合成位移之间的时间间隔,也就是打印速度。
在基于IEEE定义的现有CNC系统中,T分割δti(i=1,…,n)为实时操作系统的分时周期,是等长的,称之为插补周期,记之为Ti。在数据流关联控制中,T分割中的δti(i=1,…,n)不是等长的。
有别于插补周期Ti,δti称之为控制节律,记之为δt1,…,δtn。
L分割与T分割在存储空间的数字映像称之为联动表与随动表。
在每个δti内,X轴总是进给“1”,即X轴的步进脉冲全为“1”,或者说,X轴数据流全为“1”,X轴称为主动轴,“1”的个数等于主动轴的终点坐标值;在每个δti内,Y轴进给“0”或“1”,即Y轴的步进脉冲不是“0”就是“1”,或者说,Y轴数据流不全为“1”,Y轴称为联动轴,“1”的个数等于联动轴的终点坐标值。
这就意味着,主动轴数据流可视为离散自变量,联动轴数据流则是主动轴数据流的分布。进而,对于直线,其联动轴数据流必然是主动轴数据流的周期分布。一个周期中联动轴数据流中“1”的个数仅取决于该直线的斜率。
打印曲线纯粹是一个几何问题。因而,打印曲线的L分割与T分割之间不存在耦合关系。L分割决定打印曲线的几何特征;T分割决定打印质量与打印效率,与L分割无关。
打印曲线的L分割确定之后,进给速度F只是一个效率问题,只决定于打印工艺所要求的生产率以及轴的运动平稳性,与工艺师所制定的打印工艺和机电系统的运动学/动力学特征有关,与δLi无关。
L分割是打印曲线的几何不变量。因而,不需要实时插补,许多离散算法均可用来获得打印曲线的L分割。
从表1中可清楚地看出,数字控制信息包括两部分。
第一部分是坐标轴的离散位置信息及其联动性,即L分割δLi(i=1,…,n):在δti内,X、Y轴联动,产生所要求的合成位移。
第二部分是合成位移之间的随动性,也就是合成位移之间的时间间隔,即T分割δti(i=1,…,n)。
按给定的数据格式,L分割δLi(i=1,…,n)在存储空间生成的数字映像称之为打印曲线的联动表。
按给定的数据格式,T分割δti(i=1,…,n)在存储空间生成的数字映像称之为打印曲线的随动表。
数字控制的基本问题就是制造关联数据流,即制造打印曲线的联动表与随动表。由于联动表与随动表的制造过程不是实时的,与操作系统的实时性无关。因而,打印曲线的L分割与T分割的生成过程是计算机辅助下的规划过程,称之为计算机辅助数字控制(Computer Aided Numerical Control,CANC),简称CANC规划。
CANC规划的第一个基本问题是,对于给定的离散误差e与优化目标,规划打印曲线的L分割δLi(i=1,…,n),控制相关坐标轴在△ti期间产生相应的进给脉沖,通过坐标轴联动产生所要求的合成位移。简单地说,就是规划L分割,生成打印曲线的联动表。
CANC规划的第二个基本问题是,根据用户指定的打印速度,控制δti的长短,即相关坐标轴的进给速度(生产率),使得相邻δLi之间打印速度的跳变值满足运动平稳性的要求,从而确定T分割δti(i=1,…,n)。简单地说,就是规划T分割,生成打印曲线的随动表。
1)、直线的L分割规划
现有CNC系统一般采用逐点比较法或数字织分法作为插补算法。逐点比较法、数字织分法只是一种不超差的保守算法,不是最优算法。
在一个插补周期中,逐点比较法产生的步进脉冲不是X轴脉冲,就是Y轴脉冲。X轴与Y轴不联动(不同时进给);数字织分法还产生“空穴”、对角包等冗余信息。因而,插补算法破坏了刀路曲线的精细微观结构,降低了加工精度与加工速度。
如图1所示,在离散坐标系x/y中,直线LO,A位于第1象限,起点为坐标原点O,终点A的坐标为(15,12),斜率为tgα=4/5。打印方位为东北方向,+x方向与+x/+y方向为允许运动方向,X轴为主动轴,Y轴为联动轴。两条与直线LO,A的距离为离散标度e的虚线构成直线LO,A的边界。
从起点O开始,沿+x方向与+x/+y方向进给一个离散标度,分别到达两个不同的格点,计算并比较这两个格点与直线LO,A的距离,按照路径最短、离散误差最小等优化目标,选择相应的格点,例如,选择离散误差最小的格点,以“●”标识之;重复上述步骤,直至终点A。由此得到直线LO,A的步进型关联数据流,即L分割δLi(i=1,…,15):
x数据流:1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
y数据流:1 1 0 1 1 1 1 0 1 1 1 1 0 1 1
其中,x数据流为15个连续的“1”;y数据流以3为周期,每个周期中的分布为1 1 01 1。
联动坐标轴及其进给方向用状态字指定,直线LO,A的状态字为:(+x,+y)。
直线LO,A的L分割δLi(i=1,…,15)可直接在存储空间生成联动表。主动轴数据流全“1”,不占用存储空间;直线较长时,联动轴数据流占用的存储空间相当大。
可采用下述方式将联动表压缩,但执行速度稍慢。
联动轴数据流在一个周期中的“0”/“1”分布称之为步进型关联数据流的基底。
联动表在存储空间的记录由字段“主动轴”、“基底”、“周期”、“状态字”构成。
“状态字”字段用于标识联动的坐标轴及其进给方向;“主动轴”字段用于标识主动轴,主动轴数据流为默认值全“1”;“基底”字段用于标识联动轴数据流在一个周期中的“0”/“1”分布;“周期”字段用于标识基底的个数,周期等于直线的终点坐标的最大公约数,例如,终点的x坐标与y坐标的最大公约数。
上述步进型关联数据流的基底为:1 1 0 1 1,周期为3,其联动表在存储空间的记录为:
主动轴:X;
周期:3;
基底:+11011;
状态字:(+x,+y)。
周期3,系直线LO,A的终点坐标(15,12)的最大公约数。在一个周期中,x数据流5个“1”,y数据流4个“1”。
联动轴数据流的周期性是直线的离散几何不变量。
由此可见,直线的L分割与联动表既非常精细又非常简单。
2)、圆弧的L分割规划
圆弧是打印曲线中的基本曲线,非圆曲线只限于某些特殊零件。
对于打印曲线中的非圆曲线,以离散标度为逼近误差,先用一族密切圆逼近,从而转化为一族圆弧。因而,非圆曲线的L分割规划转化为圆弧的L分割规划。
过坐标原点的45°斜线与135°斜线将4个象限划分为8个区间。这两条斜线与圆弧的交点称为特征点。在特征点,圆弧从一个区间进入另一个区间,X轴与Y轴将改变主动/联动属性。
如图2所示,在离散坐标系x/y中第1区间的逆圆Os,e,其半径r为60,起点S的坐标为(60,0),终点E的坐标为打印方位为西北方向,+y方向与-x/+y方向为允许运动方向,Y轴为主动轴,X轴为联动轴。半径为(60+e)、(60-e)的两条圆弧为逆圆Os,e的边界(以虚线表示)。
从起点S开始,沿+y方向与-x/+y方向进给一个离散标度,分别到达两个不同的格点,计算并比较这两个格点与逆圆Os,e的距离,按照路径最短、离散误差最小等优化目标,选择相应的格点,例如,选择离散误差最小的格点,以“●”标识之;重复上述步骤,直至终点E。由此得到逆圆Os,e的步进型关联数据流,即L分割δLi(i=1,…,42):
x数据流:0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 1 0 0 1 0 1 0 1 0 1 0 10 1 1 0 1 1 1 0 1 1 1
y数据流:1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1 1 1
其中,Y轴为主动轴,y数据流为42个连续的“1”;X轴为联动轴,x数据流17个不连续的“1”。
与直线的步进型关联数据流比较,圆弧的步进型关联数据流的区别在于:第一,在一个区间内,坐标轴的主动轴/联动轴属性保持不变,过区间、过象限时则改变。第二,在一个区间内,联动轴数据流丧失了周期性。第三,将X轴、Y轴互换,相邻区间的两个步进型关联数据流是对称的。
按照x数据流的分布周期,可将逆圆Os,e的L分割δLi(i=1,…,42)转换为9条逼近折线Li(xe,ye),xe,ye为其终点的x坐标与y坐标:
L1(0,7),周期为1;L2(1,1),周期为1;L3(0,4),周期为1;L4(1,1),周期为1;L5(0,3),周期为1;L6(1,3),周期为2;L7(1,2),周期为5;L8(1,1),周期为2;L9(3,4),周期为2。
由此可见,在一个区间内,圆弧由不同周期的逼近折线构成,其长度的变化是杂乱的。换言之,以逼近折线作为圆弧的数字映像,逼近折线的长度必不相等。现有CAM系统将圆弧视为欧几里得空间中的圆弧,根据圆弧的方程,采用等间距直线、等程序段直线、等误差直线来构造圆弧的逼近折线,所生成的逼近折线是等长的。这种误差称之为非欧误差。
在现有CNC技术中,插补算法与CAM系统均用等长的逼近折线来离散圆弧,必然产生上述非欧误差。
逆圆Os,e的L分割δLi(i=1,…,42)可直接在存储空间生成联动表。主动轴数据流全“1”,不占用存储空间;半径r较大时,联动轴数据流占用的存储空间相当大。
可采用下述方式将逆圆Os,e的联动表压缩,但执行速度稍慢。
在存储空间逆圆Os,e的联动表被分为9段,对应9条微线段,每段的记录由字段“主动轴”、“基底”、“周期”、“状态字”构成。
2、T分割规划
需要指出的是,加工工艺指定的进给速度是指打印曲线中的某直线、或某圆弧的打印速度而言,并非是轴的进给速度。其次,加工工艺指定的进给速度无须精确控制,只须保持在一定范围内。
T分割规划取决于轴的加减速控制。
在现有CNC技术中,必须根据加减速要求先将直线划分为加速段/减速段、匀速段,插补算法再按照轮廓步长进一步将加速段/减速段、匀速段予以离散。在本申请中,无须将直线划分为加速段/减速段、匀速段,直线的加减速问题只是T分割规划中的一部分。
直线的加速段/减速段、匀速段的划分属常规技术。
因而,在实质上,加减速规划只是针对圆弧的逼近折线。
为叙述简便起见,本申请将打印曲线中的所有直线的加速段/减速段、匀速段,所有圆弧的逼近折线统称为打印直线,记为L1,…,Lm,m<n。
不失一般性,可以认为,根据加工工艺指定的进给速度,对于打印直线L1,…,Lm,其进给速度为F1,…,Fm。通过简单计算,可得到X轴、Y轴的进给进度F1,x,…,Fm,x,F1,y,…,Fm,y。
打印直线L1,…,Lm的L分割简记为δL1,…,δLm。
所谓T分割规划就是,对于打印直线L1,…,Lm,如何规划T分割,使坐标轴的进给速度之间的跳变量满足运动平稳性约束条件:
︱Fi+1,x-Fi,x︳≤δF,
︱Fi+1,y-Fi,y︳≤δF;
式中,δF为X轴、Y轴的进给速度的允许跳变量,取决于轴的动力学特征,如加速度等,由加工工艺确定;Fi,x、Fi,y为△Li的X轴、Y轴的进给进度,Fi+1,x、△Fi+1,y为Li+1的X轴、Y轴的进给进度。
由于主动轴数据流为连续的“1”,只须校核主动轴的运动平稳性即可。以D表示主动轴,则运动平稳性约束条件为:
︱Fi+1,d-Fi,d︳≤δF。
其次,打印直线Li进一步被离散为δLi(i=1,…,ni),其中ni为Li的主动轴数据流中“1”的个数。因而,还应校核δLi之间的进给速度跳变量。
δF是对轴而言,并未区分打印曲线的几何特征。因而,δF仅适用于直线的打印。
打印圆弧时,联动轴的进给速度跳变量与主动轴的进给速度跳变量相差很大。
以第1象限第1区间中的逆圆逆圆Os,e为例说明之。
逆圆Os,e的半径为r;起点S在X轴上,坐标为(r,0);终点E为特征点,坐标为X轴为联动轴,Y轴为主动轴。从起点到特征点,联动轴X的进给量从0逐渐增加,其总进给量为0.3r,进给速度从0逐渐加速到其进给速度的总改变量大致为0.7F。主动轴Y的进给量则从最大逐渐减小,其总进给量为0.7r,其进给速度的总改变量大致为0.3F。接近特征点时,二者的进给速度相等,为主动轴Y的总进给量大致是联动轴X的总进给量的2.3倍,联动轴X进给速度的总改变量大致是主动轴Y进给速度的总改变量的2.3倍。联动轴X的进给速度跳变量远高于主动轴Y的进给速度跳变量。
同理,对于第1象限第2区间中的逆圆,其起点为特征点终点在Y轴上,坐标为(0,r)。X轴为主动轴,Y轴为联动轴。主动轴X的进给速度从0.7F逐渐加速到F,联动轴Y的进给速度则从0.7F逐渐减速到0。联动轴Y的进给速度跳变量远高于主动轴X的进给速度跳变量。
一个区间中的圆弧,其主动轴数据流为个“1”,表示小于的最大整数。
令显然,主动轴与联动轴的进给速度必然发生k次跳变。联动轴进给速度跳变量的平均值为主动轴进给速度跳变量的平均值为主动轴进给速度跳变量的平均值与联动轴进给速度跳变量的平均值之差约为1.1F/k。
因而,坐标轴进给速度的跳变次数k与r成正比,跳变量的平均值之差与F成正比,与r成反比。这就意味着,加工圆弧时,进给速度F越高,半径r越小,联动轴的进给速度的跳变次数则越多,其进给速度的跳变量与主动轴相差越大,运动平稳性越恶劣,导致小半径圆弧的加工质量显著下降。
对于逆圆,在8个区间内,其X轴、Y轴的主动/联动属性与进给速度跳变量如表2、表3所示。
表2X轴的主动/联动属性与进给速度跳变量
表3Y轴的主动/联动属性与进给速度跳变量
|
区间1 |
区间2 |
区间3 |
区间4 |
区间5 |
区间6 |
区间7 |
区间8 |
主动/联动 |
主动轴 |
联动轴 |
主动轴 |
联动轴 |
主动轴 |
联动轴 |
主动轴 |
联动轴 |
F跳变量 |
小 |
大 |
小 |
大 |
小 |
大 |
小 |
大 |
对于顺圆,可得到与表2、表3类似的结论。
由此可见,在圆弧的加工过程中,每当过区间与过象限时,X轴、Y轴交替改变主动/联动属性,其进给速度的跳变量随之周期性地发生剧烈变化。
对于给定的半径r,因跳变次数k不变,为提高运动平稳性,只能降低进给速度F。
另一方面,主动轴进给速度跳变量的平均值与联动轴进给速度跳变量的平均值之比为倍,接近5倍之多。
令λ称之为坐标轴的运动平稳性稳定系数,简称坐标轴稳定系数。
注意到,λ与F、r无关,是加工圆弧时坐标轴离散运动的内禀属性。因而,加工圆弧时,必须修正主动轴的δF。
以δF/λ作为主动轴进给速度的允许跳变量。只有主动轴的进给速度跳变量≤δF/λ,才能保证联动轴的进给速度跳变量≤δF。
一般来说,取λ≥5。根据打印材料、打印质量等工艺因素λ可适当提高。
打印圆弧时,主动轴D的运动平稳性约束条件为:
︱Fi+1,d-Fi,d︳≤δF/λ,
式中,λ≥5,Fi,d为Li的主动轴D的进给进度,Fi+1,d为Li+1的主动轴D的进给进度。
因而,对于打印直线L1,…,Lm,应标识其宏观几何特征,即Li是否为圆弧的微线段。
如果︱Fi+1,d-Fi,d︳≤δF不成立,加速时可降低Fi+1,减速时可提高Fi+1,以满足运动平稳性约束条件。在这里,Fi+1为Li+1的进给进度。
基于调整后的进给速度,依公式ti=Li/Fi,求得打印直线L1,…,Lm的加工时间t1,…,tm;
其次,校核δLi之间的进给速度跳变量。
打印直线Li的主动轴D的进给速度为Fi,d=ni/ti。
按ni将ti等分:δti,j=△ti/ni,j=1,…,n1,即每隔δti,j发送进给1个进给脉冲,其进给速度为1/δti,j,进给速度的跳变量为1/δti,j+1-1/δti,j,因1/δti,j+1=1/δti,j,跳变量为0。由于打印直线Li+1的主动轴进给速度Fi+1,d大于打印直线Li的主动轴进给速度Fi,d,故ti不能等分,δti,j应逐渐减小,从而逐渐加速,并使δLi与δLi+1之间的进给速度跳变量满足运动平稳性约束条件;同理,如果打印直线Li+1的主动轴进给速度Fi+1,d小于打印直线Li的主动轴进给速度Fi,d,δti,j应逐渐增大,从而逐渐减速。
显然,δLi之间的进给速度允许跳变量应取为δF/ni。
令1/δti,j+1±1/δti,j=δF/ni,j=1,…,n1,式中,ni为打印直线Li的主动轴数据流中“1”的个数,δti,j、δti,j+1为与δLi,j、δLi,j+1相对应的时间区间。
加速时,按公式δti,j+1=δti,jni/(δFδti,j+ni)求得δti,j+1;减速时,按公式δti,j+1=δti,jni/(δFδti,j-ni)求得δti,j+1,其中δti,1=ti/ni,ti为打印直线Li的加工时间;
重复上述步骤,直至生成打印直线Lm的T分割δtm(i=1,…,nm)。
按照给定的数据格式,在存储空间生成打印直线L1,…,Lm的随动表。
调整微线段之间进给速度的差异与增加微线段之间的进给速度的跳变次数是改善运动平稳性的两种主要的技术手段。在步进型CNC系统中,圆弧的微线段Li的跳变次数k等于ni。注意到,微线段Li最多只能离散为ni段,换言之,圆弧的微线段Li的跳变次数k等于ni。由于进给速度取决于加工工艺,调整的范围有限,因而,将微线段Li进一步离散并精细地规划δti,成为改善运动平稳性的基本技术手段。在本申请中,与现有CNC系统不同,时间是自由变量,可以精细地规划δti以提高运动平稳性。
现有CAM系统生成的微线段丧失了微线段的宏观几何特征,即该微线段是直线的加速段/减速段、匀速段还是圆弧的微线段。另一方面,打印圆弧时,现有CNC技术未区分主动轴与联动轴,未考虑坐标轴进给速度跳变量的的周期性剧烈变化,也未考虑联动轴的运动平稳性与主动轴的运动平稳性之间的巨大差异,对于联动轴,没有坐标轴稳定系数的概念。
NC信息库
L分割是打印直线的几何不变量,决定打印直线的几何特征。T分割决定打印质量与打印效率,与L分割无关。打印直线的L分割与T分割之间不存在耦合关系。
因而,打印直线的L分割与T分割不是一个实时插补问题,而是一个非实时的规划问题。
本申请将二维实体的填充曲线转化为一系列的打印直线,通过CANC规划,生成打印直线的L分割与T分割,按照给定的数据格式,在存储空间建立打印直线的数字控制信息库(Numerical Control Information Base),简称NC信息库。
在一条打印直线的实时打印过程中,NC信息库存储控制坐标轴联动的全部数字控制信息,即打印直线L1,…,Lm中的每条打印直线的联动表与随动表。
联动表用于存储打印直线L1,…,Lm的L分割δLi(i=1,…,n);L分割δLi(i=1,…,n)用于存储联动坐标轴的进给量,控制坐标轴联动以产生合成位移;
随动表用于存储打印直线L1,…,Lm的T分割δti(i=1,…,n);T分割δti(i=1,…,n)用于存储进给量之间的时间间隔,控制合成位移的进给速度;
NC信息库还包括打印直线L1,…,Lm中的每条打印直线的状态字;状态字用于指定联动坐标轴及其进给方向;
NC信息库还包括NC信息库索引表,NC信息库索引表用于存储打印直线L1,…,Lm中的每条打印直线的联动表的首地址、随动表的首地址与末地址。
在上述格式中,联动坐标轴的进给量由联动坐标轴的数据流构成,例如,x数据流、y数据流、u数据流、v数据流等。联动坐标轴的数据流占用的存储空间相当大。
可采用下述格式将联动表压缩,但执行速度稍慢。
主动轴数据流为全“1”,无须存储,只须标识其默认值全“1”;联动轴数据流则用基底与周期指定。
例如,联动表包括“主动轴”字段、“基底”字段、“周期”字段、“状态字”字段。“主动轴”字段用于标识主动轴,主动轴数据流为默认值全“1”;“基底”字段用于标识联动轴数据流在一个周期中的“0”/“1”分布;“周期”字段用于标识基底的个数,周期等于打印直线的终点坐标的最大公约数,例如,终点的x坐标与y坐标的最大公约数;“状态字”字段用于标识联动坐标轴及其进给方向。
打印文件
3D打印的工作过程一般可划分为辅助过程、逻辑控制过程与打印过程。辅助过程涉及辅助功能操作,逻辑控制涉及I/O装置,打印过程涉及打印直线的实时控制。相应地,CNC系统分为辅助功能操作、I/O装置的逻辑控制、打印直线的实时控制等三种工作状态。
与这三种工作状态相对应,可用状态指令ST、开关指令SW、打印指令P来描述辅助过程、逻辑控制过程与打印过程。
P指令用于控制打印直线L1,…,Lm的实时打印。
根据打印工艺,P指令生成模块将第i层二维实体的所有打印直线分为若干段,对应地生成若干条P指令。
为阅读方便,P指令用序号标识,例如Pi-5表示第i层二维实体中的第5条P指令。
每条TR指令携带NC信息库索引,用于链接NC信息库索引表,NC信息库索引表对应地存储每条TR指令中的每条微线段的联动表的首地址与末地址、随动表的首地址。
用户点击“Pi-5”便可查看或修改NC信息库中Pi-5的联动表与随动表。
ST指令用于操作辅助功能,例如设置打印作业的启动、结束、暂停等工作状态,坐标系设定、原点返回等辅助功能。不同的ST指令用序号标识,序号不同则指令码不同,例如ST1表示暂停。根据ST指令的序号,ST指令模块执行相应辅助功能。
SW指令用于控制开关量,例如Z轴的锁紧与松开,打印头的打开与关闭。不同的SW指令用序号标识,序号不同则指令码不同,例如SW1表示Z轴锁紧。根据SW指令的序号,SW指令模块控制相应的开关。
对于第i层二维实体,根据打印工艺,在其若干条P指令之间插入若干条ST指令与若干条SW指令。
若干条P指令与其中插入的若干条ST指令、若干条SW指令构成的指令流便是第i层二维实体的打印程序,本申请称之为第i层二维实体的打印文件。
根据打印工艺,在二维实体之间有时也插入若干条ST指令与若干条SW指令。由此得到三维实体的打印文件。
打印文件的生成方法
在现有3D打印技术中,与传统的减材制造一样,通过G代码程序对打印过程进行实时控制。
G代码程序是上世纪50年代初纸带/穿孔卡作为基本的输入介质的产物,可读性差,不易使用与交换共享,需要专业的编程人员。
在编程技术方面,基于IEEE定义的现有CNC系统始终停留在这种原始阶段的根本原因在于,坐标轴的控制信息,即打印直线的L分割与T分割,必须在实时操作系统的插补周期掌控下,通过相应的插补模块实时计算出来。
将通常的二维打印中的换页设想为3D打印中的换层,从数字控制来看,二维打印的数字控制过程与3D打印的数字控制过程并无任何实质性的区别。
在二维打印中,打印速度系预先设置,一般固定不变;文字被离散后,其几何结构为x/y平面上的一个点阵,预先设计并固化在字库中,是静态的。在3D打印中,必须根据打印工艺来规划打印速度,NC信息库既要携带打印直线的几何信息(联动表),也要携带打印直线的速度信息(随动表),对于不同的三维实体,NC信息库必须通过CANC规划生成,是动态的。
对于二维实体,通过CANC规划,生成打印直线的联动表与随动表;根据打印工艺,实心区域不必全部填充时,需多次打开、关闭喷嘴;打印过程需要暂停等等。因而,在打印直线之间需要插入ST指令、SW指令。P指令生成模块将二维实体的所有打印直线分段,生成若干条P指令,然后,插入若干ST指令与SW指令,二维实体的打印文件便生成完毕。
在这里,二维实体的打印文件类似word中的一页文件,换层类似换页,k层二维实体构成的三维实体的打印文件类似一篇k页的word文件。打印直线类似word中的文字,例如汉字;打印直线的L分割δLi(i=1,…,n)类似word中汉字点阵,NC信息库类似word中的汉字库,NC信息库索引表类似汉字的内码(地址码),NC信息库索引类似汉字的外码(输入码),打印曲线的加工文件则类似word中由成千上万个汉字构成的文件。
打印直线的分段类似word中的分段,P指令则类似word中的回车符。例如,根据打印工艺,打印直线分为外轮廓曲线、内轮廓曲线、填充曲线,而外轮廓曲线、内轮廓曲线、填充曲线又可分为若干小段。
这样一来,正如通常的二维打印只有文件的生成与编辑,不存在编程问题一样,3D打印的编程问题便转化为打印文件的生成与编辑问题。
第i层二维实体的打印文件的一般格式为:若干条顺序排列的P指令以及插入的若干条ST指令与SW指令。
这样一来,本申请用打印文件取代了通常的G代码打印程序。
为便于阅读,对于二维实体与三维实体的打印文件中的某些重复部分,打印文件生成模块将其编辑为循环、子程序格式。
实时内核
本申请舍弃实时操作系统,采用发明专利ZL 201110206679.6提出的实时内核。
实时内核包括打印文件处理模块、联动坐标轴设置模块、联动命令设置模块、节律控制模块、喷射控制模块、终点控制模块、Z轴控制模块。
三维实体的实时打印过程如下。
CNC系统接收打印文件启动命令后,操作系统设置运行标志后,失去控制权,设置运行标志,启动实时内核;
SW指令、SW指令的执行系常规技术。
打印文件处理模块从打印文件中读取一条P指令,根据该P指令中的第1条打印直线的NC信息库索引,从NC信息库索引表中读取该打印直线的联动表的首地址与末地址、随动表的首地址,从NC信息库中读取该打印直线的状态字;
联动坐标轴设置模块将状态字写入状态字寄存器,指定联动坐标轴,将联动表首地址写入L指针;将随动表首地址写入T指针;
根据T指针,联动命令设置模块读取随动表中的控制节律δti并写入T分割定时器;
T分割定时器中的定时时间到,通过联动接口,节律控制模块向状态字指定的联动坐标轴发送L指针指定的进给量,驱动联动坐标轴按状态字指定的进给方向进给,产生合成位移;
跟随控制节律δti,喷射控制模块控制喷嘴喷射打印材料;
T指针指向第1条打印直线的随动表的末地址,该打印直线打印完毕,加工文件处理模块处理下一条打印直线,直至该P指令执行完毕;
重复上述步骤,直至该层的所有P指令执行完毕;
第i层二维实体打印后,Z轴控制模块控制Z轴下降δz1,X/Y坐标工作台因之也下降δzi,再打印第i+1层二维实体;直至完成第k层二维实体的打印。
如此周而复始,直至三维实体打印完毕。
在发送端,联动接口类似按δti(i=1,…,n)的节律不断地单向传输状态字的并行接口;在接收端,每个坐标轴的伺服驱动器与联动接口的一个数据位连接,类似一根中断控制线。
基于上述技术构思,本申请提出的技术方案是,将三维实体分解成厚度为δzi(i=1,…,k)的k层二维实体,将每层二维实体分解为若干条填充曲线。对填充曲线进行收缩补偿后,得到喷嘴中心的运动轨迹,即若干条打印直线。然后在离散坐标系中对打印直线进行L分割规划,根据打印速度进行T分割规划,在存储空间生成打印直线的NC信息库。最后,根据打印工艺,将二维实体的所有打印直线分段,每段对应一条P指令。
P指令中的所有微线段均携带NC信息库索引,用于链接NC信息库索引表,以读取其联动表的首地址与末地址、随动表的首地址。
在P指令中插入必要的ST指令与SW指令后,生成二维实体的打印文件。
实时内核执行P指令、ST指令、SW指令,完成一层二维实体的打印过程。然后Z轴下降δzi,工作台因之也下降δzi,再打印下一层二维实体。
体系结构
图3为一种用于3D打印的CNC系统的体系结构示意图,包括硬件平台、软件平台和应用软件系统,硬件平台为PC系统,软件平台为图形界面操作系统。
应用软件系统包括:CANC规划组件,NC信息库,打印文件规划组件,实时内核。
(1)、CANC规划组件
CANC规划组件包括离散坐标系生成模块、L分割规划模块、T分割规划模块;
(1-1)离散坐标系生成模块用于按照给定的离散标度,用距离为离散标度的等距线将坐标平面网格化,在屏幕上建立离散坐标系;
(1-2)根据打印方位,L分割规划模块用于在离散坐标系中规划打印直线L1,…,Lm的L分割δLi(i=1,…,n);
打印直线L1,…,Lm包括打印曲线中的所有直线的加速段/减速段、匀速段,所有圆弧的逼近折线;
(1-3)根据加工工艺与加减速的要求,T分割规划模块用于校核坐标轴的运动平稳性,规划打印直线L1,…,Lm的T分割δti(i=1,…,n);
(2)、NC信息库
NC信息库用于存储控制坐标轴联动的数字控制信息,数字控制信息包括打印直线L1,…,Lm中的每条打印直线的联动表与随动表;
联动表用于存储打印直线L1,…,Lm的L分割δLi(i=1,…,n);L分割δLi(i=1,…,n)用于存储联动坐标轴的进给量,控制坐标轴联动以产生合成位移;
随动表用于存储打印直线L1,…,Lm的T分割δti(i=1,…,n);T分割δti(i=1,…,n)用于存储进给量之间的时间间隔,控制合成位移的进给速度;
NC信息库还包括打印直线L1,…,Lm中的每条打印直线的状态字;状态字用于指定所述联动坐标轴及其进给方向;
NC信息库还包括NC信息库索引表,NC信息库索引表用于存储打印直线L1,…,Lm中的每条打印直线的联动表的首地址、随动表的首地址与末地址;
(3)、打印文件规划组件
打印文件规划组件包括NC信息库生成模块、打印指令生成模块、NC信息库索引表生成模块、NC信息库索引生成模块、打印文件生成模块;
(3-1)对于打印直线L1,…,Lm的L分割与T分割,NC信息库生成模块用于按照给定的数据格式在存储空间构造打印直线L1,…,Lm中的每条打印直线的联动表与随动表,生成NC信息库;
(3-2)根据加工工艺,打印指令生成模块用于将第i层二维实体的所有打印直线分为若干段,对应地生成若干条打印指令;
(3-3)对于每条打印指令中的每条打印直线,NC信息库索引表生成模块用于生成NC信息库索引表;NC信息库索引表对应地存储每条打印指令中的每条打印直线的联动表的首地址、随动表的首地址与末地址;
(3-4)对于每条打印指令中的每条打印直线,所述NC信息库索引生成模块用于生成NC信息库索引,所述NC信息库索引链接用于所述NC信息库索引表;
(3-5)根据打印工艺,打印文件生成模块用于在第i层二维实体的打印指令中,插入若干条开关指令、若干条状态指令,生成第i层二维实体的打印文件;
开关指令用于控制Z轴的锁紧与松开,喷嘴的打开与关闭;
状态指令用于控制打印过程的启动、结束、暂停,坐标系设定、原点返回;
根据打印工艺,在k层二维实体之间,插入若干条开关指令、若干条状态指令,生成三维实体的打印文件。
(4)、实时内核组件
实时内核组件包括打印文件生成模块、联动坐标轴设置模块、联动命令设置模块、节律控制模块、喷射控制模块、终点控制模块、Z轴控制模块;
CNC系统接收打印作业的启动指令后,操作系统设置实时内核运行标志,启动实时内核;
打印文件生成模块从第1层二维实体的打印文件中读取一条P指令,根据该P指令中的第1条打印直线的NC信息库索引,从NC信息库索引表中读取该打印直线的联动表的首地址与末地址、随动表的首地址,从NC信息库中读取该打印直线的状态字;
联动坐标轴设置模块将随动表首地址写入T指针;将联动表首地址写入L指针,将状态字写入状态字寄存器,指定联动坐标轴;
根据T指针,联动命令设置模块读取随动表中的控制节律δti并写入T分割定时器;
T分割定时器中的定时时间到,通过联动接口,节律控制模块向状态字指定的联动坐标轴发送L指针指定的数据流,驱动联动坐标轴按状态字指定的进给方向进给,合成位移;
跟随控制节律δti,喷射控制模块控制喷嘴喷射打印材料;
终点控制模块判断T指针是否等于第1条打印直线的随动表的末地址,如果T指针等于随动表的末地址,第1条打印直线打印完毕;否则,所述T指针指向δti+1,继续打印第1条打印直线;
重复上述步骤,直至第1条打印指令中的所有打印直线打印完毕;
重复上述步骤,直至第1层二维实体的所有打印指令执行完毕;
Z轴控制模块控制工作台下降δz1;
重复上述步骤,直至第2层二维实体打印完毕;
重复上述步骤,直至第k层二维实体打印完毕,终点控制模块关闭运行标志。
应用软件系统还包括显示组件,显示组件包括显示校验模块与动态显示模块;显示校验模块读取三维实体的NC信息库,在离散坐标系中显示k层二维实体的生成过程与三维实体的生成过程,校验k层二维实体与三维实体;跟随控制节律δti(i=1,…,n),动态显示模块从L指针指定的联动表中实时读取打印直线的x数据流、y数据流、状态字,在屏幕上显示打印直线的打印过程,显示二维实体与三维实体的打印过程。
此外,应用软件系统还包括收缩补偿模块;收缩补偿模块根据厚度补偿系数,对δzi(i=1,…,k)进行厚度补偿,δzi用于控制Z轴下降的进给量;δzi用于控制Z轴下降的进给量;根据宽度补偿系数与长度补偿系数,对第k层二维实体的填充曲线进行宽度补偿与长度补偿。
编程界面
CANC规划是非实时的。因而,对于二维实体,用户建立直线、圆弧的数据文件后,可直接在屏幕上使用CANC规划,规划打印直线的L分割与T分割,进而编辑P指令、ST指令、SW指令,生成二维实体的打印文件,从而完成打印程序的编写。
类似word文件,本申请只须点击/滑动窗口,便可完成打印程序的编写。本申请称之为编程界面。
如何编辑打印指令以完成打印过程,这是编程界面的基本任务。
本申请在CNC系统的人机界面中设置编程界面,包括CANC规划功能区、打印文件规划功能区;
CANC规划功能区包括离散坐标系生成窗口、L分割规划窗口、T分割规划窗口;离散坐标系生成窗口链接离散坐标系生成模块、L分割规划窗口链接L分割规划模块、T分割规划窗口链接T分割规划模块;
打印文件规划功能区包括NC信息库生成窗口,轨迹指令编辑窗口,NC信息库索引表生成窗口,NC信息库索引生成窗口、打印文件生成窗口;NC信息库生成窗口链接NC信息库生成模块,轨迹指编辑窗口链接轨迹指令编辑模块,NC信息库索引表生成窗口链接NC信息库索引表生成模块,NC信息库索引生成窗口链接NC信息库索引生成模块,打印文件生成窗口链接打印文件生成模块。
人机界面中还设置动态显示功能区,用于动态显示打印直线的打印过程,由动态显示开关控制。在本申请中,动态显示开关视为虚拟坐标轴。
T分割定时器中的定时时间到,节律控制模块通过联动接口向状态字指定的动态显示开关发送L指针指定的数据流,在屏幕上实时显示打印曲线的打印过程。
人机交互的操作手段历经纸带/穿孔卡、键盘、鼠标,迈入触控时代。触控带来了极大的便利,不再需要鼠标和键盘便可完成人机交互,被称为指尖上的革命。
本申请采用触控方式操作上述各功能区与各窗口。
图4为上述编程界面的结构示意图。
打印文件的生成方法
本申请釆用P指令、ST指令、SW指令来描述二维实体的打印过程,通过CNC系统的人机界面编辑P指令、ST指令、SW指令,生成二维实体的打印文件,从而完成打印程序的编写。
打印文件的编辑与使用word编辑文件类似,编辑过程全程可视化,控制信息透明、开放,操作简便。
本申请告别了G代码编程,实现了“每个人都会编程”的大众化目标,编写打印程序犹如使用word编写短信,“开数控就像玩手机,编程就像发信息”,每个人都会编程,实现了编程的大众化。
基于上述编程界面,本申请提出打印文件的一种生成方法,如图4所示,包括下述步骤:
(1)CANC规划步骤
CANC规划步骤包括:
(1-1)离散坐标系生成步骤
离散坐标系生成模块按照给定的离散标度,用距离为离散标度的等距线将坐标平面网格化,在屏幕上建立离散坐标系;
(1-2)L分割规划步骤
根据打印方位,L分割规划模块在离散坐标系中规划打印直线L1,…,Lm的L分割;包括下述步骤:
在离散坐标系中生成第1条打印直线,从第1条打印直线的起点开始,沿允许运动方向进给一个离散标度,分别到达两个不同的格点,计算并比较两个格点与第1条打印直线的距离,选择散误差最小的格点;
重复上述步骤,直至第1条打印直线的终点,生成第1条打印直线的L分割;
重复上述步骤,直至生成第1层二维实体的所有打印直线的L分割;
重复上述步骤,直至生成第k层二维实体的所有打印直线的L分割;
(1-3)T分割规划步骤
根据加工工艺,T分割规划模块校核坐标轴的运动平稳性,规划打印直线L1,…,Lm的T分割;包括下述步骤:
(1-3-1)校核坐标轴运动平稳性约束条件:
︱Fi+1,d-Fi,d︳≤δF(i=1,…,n);
式中,Fi,d为所述打印直线Li的主动轴D的进给进度,Fi+1,d为所述打印直线Li+1的主动轴D的进给进度;δF为坐标轴进给速度的允许跳变量,由加工工艺指定,对于圆弧的微线段,则取δF/λ作为进给速度的允许跳变量,λ为坐标轴稳定系数,λ≥5;
对于第1层二维实体的打印直线Li与Li+1,如果所述坐标轴运动平稳性约束条件不滿足,加速时可降低Fi+1,减速时可提高Fi+1;式中,Fi+1为Li+1的进给进度;
(1-3-2)基于调整后的进给速度,依公式ti=Li/Fi,求得打印直线L1,…,Lm的加工时间t1,…,tm;
(1-3-3)规划打印直线Li的T分割δti(i=1,…,n):按公式
δti,j+1=δti,jni/(δFδti,j±ni)
求得δti,j+1,j=1,…,n1;式中,加速时取“+”,减速时取“-”;ni为微线段Li的主动轴数据流中“1”的个数,δti,j、δti,j+1为与δLi,j、δLi,j+1相对应的时间区间,δti,1=ti/ni,ti为微线段Li的加工时间;
重复上述步骤,生成打印直线Li的T分割δti(i=1,…,n1);
重复上述步骤,直至生成第1层二维实体的所有打印直线的T分割;
重复上述步骤,直至生成第k层二维实体的所有打印直线的T分割;
(2)打印文件规划步骤
打印文件规划步骤包括:
(2-1)NC信息库生成步骤
对于打印直线的L分割与T分割,NC信息库生成模块按照给定的数据格式在存储空间构造打印直线L1,…,Lm中的每条打印直线的的联动表与随动表,生成NC信息库;
(2-2)打印指令生成步骤
根据打印工艺,打印指令生成模块将第i层二维实体的所有打印直线分为若干段,对应地生成若干条打印指令;
重复上述步骤,直至第k层二维实体的最后一条打印指令编辑完毕;
(2-3)NC信息库索引表生成步骤
对于每条打印指令中的每条打印直线,NC信息库索引表生成模块生成NC信息库索引表;NC信息库索引表对应地存储每条打印指令中的每条打印直线的联动表的首地址、随动表的首地址与末地址;
(2-4)NC信息库索引生成步骤
对于每条打印指令中的每条打印直线,NC信息库索引生成模块生成NC信息库索引,NC信息库索引用于链接NC信息库索引表;
(2-5)打印文件生成步骤:根据打印工艺,打印文件生成模块在第1层二维实体的打印指令中,插入若干条开关指令、若干条状态指令,生成第1层二维实体的打印文件;重复上述步骤,直至生成第k层二维实体的打印文件;
根据打印工艺,在k层二维实体之间,插入若干条开关指令、若干条状态指令,生成三维实体的打印文件。
对于圆弧,本申请将其离散为步进型关联数据流,然后按照联动轴数据流的分布周期,将其转换为若干条打印直线。具体步骤如下:
L分割规划模块在离散坐标系中生成1条圆弧,从该圆弧的起点开始,沿允许运动方向进给一个离散标度,分别到达两个不同的格点,计算并比较这两个格点与该圆弧的距离,选择散误差最小的格点;重复上述步骤,直至该圆弧的终点;生成该圆弧的L分割δLi(i=1,…,s),s为该圆弧的主动轴数据流中“1”的个数;
按照该圆弧的联动轴数据流的分布周期,将该圆弧的L分割δLi(i=1,…,s)转换为q条打印直线L1,…,Ls,q<s。
图5为上述打印文件生成方法的流程图。
三维实体的打印方法
按照上述方法生成的打印文件取代了通常的G代码打印程序。
打印文件中只包括P指令、ST指令、SW指令。ST指令、SW指令的处理属常规技术。因而,打印三维实体的实质就是处理P指令。
三维实体的一种打印方法,如图6、7所示,包括下述步骤:
(1)实时内核启动步骤:CNC系统接收打印命令后,操作系统设置实时内核运行标志,启动实时内核;
(2)打印文件生成步骤
打印文件生成模块从第1层二维实体的打印文件中读取第1条打印指令,根据所述打印指令中的第1条打印直线的NC信息库索引,从所述NC信息库索引表中读取所述第1条打印直线的联动表的首地址、随动表的首地址与末地址,从所述NC信息库中读取所述第1条打印直线的状态字;
(3)联动坐标轴设置步骤
联动坐标轴设置模块将状态字写入状态字寄存器,指定联动坐标轴;将联动表首地址写入L指针;将随动表首地址写入T指针;
(4)联动命令设置步骤
根据T指针,联动命令设置模块读取随动表中的控制节律δti并写入T分割定时器;
(5)节律控制步骤
T分割定时器中的定时时间到,通过联动接口,节律控制模块向状态字指定的联动坐标轴发送L指针指定的进给量,驱动联动坐标轴按状态字指定的进给方向进给,产生合成位移;
(6)喷射控制步骤
跟随控制节律δti,喷射控制模块控制喷嘴喷射打印材料;
(7)终点控制步骤
终点控制模块判断T指针是否等于随动表的末地址,如果T指针等于随动表的末地址,第1条打印直线打印完毕,执行步骤(2),打印文件处理模块从NC信息库索引表中读取第2条打印直线的联动表的首地址、随动表的首地址与末地址,从NC信息库中读取第2条打印直线的状态字;否则,执行步骤(4),T指针指向δti+1,继续打印第1条打印直线;
(8)重复步骤(2)至步骤(7),直至第1条打印指令中的所有打印直线打印完毕;
(9)重复步骤(2)至步骤(8),直至第1层二维实体的打印文件中的所有打印指令执行完毕;
(10)Z轴控制步骤
Z轴控制模块控制工作台下降δz2,δz2为第2层二维实体的厚度;
(11)重复步骤(2)至步骤(10),直至第k层二维实体的打印文件中的所有打印指令执行完毕,终点控制模块关闭运行标志。
图6为上述三维实体打印方法的流程图。
图7为图6中子程序的流程图。
以上内容是结合具体的优选实施例对本申请所作的进一步详细说明,不能认定本申请的具体实施只局限于这些说明。对于本申请所属技术领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本申请的保护范围。