实施方案
[0035] 下面结合具体实施例来对本发明进行进一步说明,但并不将本发明局限于这些具体实施方式。本领域技术人员应该认识到,本发明涵盖了权利要求书范围内所可能包括的所有备选方案、改进方案和等效方案。
[0036] 本实施例提供了一种基于Hilbert曲线改进的3D打印路径填充方法,其具体步骤如下:
[0037] (1)在MATLAB中绘制一条Hilbert曲线,将其各个控制点的坐标保存为txt文本文件,为优化提供原始数据;
[0038] Hilbert曲线是一种空间填充曲线,它是将已知区域分成2的指数个正方形区域,然后将其中心点按照一定规律连接起来形成的。现设置曲线的阶数为4,在MATLAB中绘制,其结果如图1所示。将其控制点的坐标保存到“point_x.txt”和“point_y.txt”中供优化使用。
[0039] (2)将控制点的坐标在Visual Studio C++中进行其三次B样条曲线拟合,将拟合好的曲线进行插值光滑。所述的三次B样条曲线拟合方法中,n次B样条曲线的参数表达式为:
[0040]
[0041] 式中Pi为给定的n+1个控制点Pi(i=0,1,0,..n)的坐标,Fi,n(t)为n次B样条曲线的基函数,其形式为:
[0042]
[0043] 其中 而三次B样条曲线的基函数为:
[0044]
[0045] 其中 表示阶乘,即上式可以写为:
[0046]
[0047]
[0048]
[0049]
[0050] 具体的,1)以曲线的控制点的坐标为输入,首先指定每一个样条曲线内插入点的个数为10个。
[0051] 2)然后将其平滑到B样条曲线上,不增加点的数目。将其平滑到B样条曲线上需要首先将折线两端点换成延长线上的两点,然后分别对第一段,最后一段和中间段进行平滑,会将所有点的坐标替换成新的平滑点的坐标。
[0052] 3)平滑到B样条曲线后,对其进行三次B样条拟合,计算需要插入的总点数,将延长线上的两点加入作为首点和尾点,对每条线段均匀插入点,即得到了所有的新的数据点。
[0053] 4)将新的数据点的坐标保存到“Bspline_test2_x.txt”和“Bspline_test2_y.txt”中,方便后续的仿真模拟。
[0054] (3)在MATLAB中利用步骤(2)中所有控制点绘制优化后的Hilbert曲线,并对曲线长度进行计算,并进行3D仿真打印,计算打印时各方向电机的转向情况;
[0055] 具体的,1)将所求新的数据点输入到MATLAB中进行曲线的绘制,完成后结果见图2。
[0056] 2)计算曲线的长度;
[0057] 3)仿真3D打印机的喷头移动,输入一个喷头运行的速度,进而计算喷头在相邻两个样本点打印所需时间,最后求得打印时在相邻两样本点间x轴方向和y轴方向的运行速度。
[0058] 4)绘制x轴方向和y轴方向的运行速度图,见图3。计算打印时喷头停止的次数绘制曲线优化前后打印时各方向喷头停止次数柱状图,见图4。
[0059] (4)将使用三次B样条插值拟合Hilbert曲线的方法写入到3D打印切片软件silc3r中,使用silc3r对模型进行路径填充及切片处理,最后导出为G‑code代码,使用3D打印机进行打印。
[0060] 本发明以四阶Hilbert曲线为例,设置打印速度为5,原曲线的控制点为256个,曲线的总长度为255,打印时x轴和y轴电机以最大速度5交替运动,x轴电机总停止次数为120次,y轴电机的总停止次数为94次;而经过三次B样条曲线拟合后,曲线的控制点为25655个,曲线的总长度为201.33,打印时x轴电机总停止次数为41次,y轴电机的总停止次数为30次。由此可见,通过使用本发明的打印路径进行打印,可以使打印路径缩短,同时x轴方向和y轴方向电机的停止次数大大减少,电机的速度变化平缓。