基于直线离散的多轴无支撑打印轨迹生成方法与流程

文档序号:35854873发布日期:2023-10-25 23:34阅读:32来源:国知局
基于直线离散的多轴无支撑打印轨迹生成方法与流程

本发明涉及3d打印,具体为一种基于直线离散的多轴无支撑打印轨迹生成方法。


背景技术:

1、医用的外固定支具主要起到固定病人损伤肢体部分的作用,从而减少损伤肢体部位的运动,有利于患者损伤部位的康复。随着3d打印在医学领域应用的不断发展,通过3d打印外固定支具能够有效减少由以前的石膏或者夹板固定所带来的缺点,包括石膏固定部位无法清洗、夹板固定的松紧程度需要凭借医生的经验等。这些因素都使得石膏和夹板的使用受到了限制。从而推动了3d打印外固定支具在医学领域应用的发展。

2、使用现有的cad软件对模型进行切片打印,需要对悬垂部分生成支撑结构,保证模型的正常打印,这导致打印时间增加,支具支撑机构后处理也将导致支具表面质量较差,制作时间及患者等待时间过长。因此申请人研发出一种基于直线离散的无支撑打印轨迹生成方法,简化了现有3d打印繁琐的支撑设计、去除的流程,提高了工作效率。


技术实现思路

1、本发明的目的在于提供基于直线离散的多轴无支撑打印轨迹生成方法,以解决上述背景技术中提出的使用现有的cad软件对模型进行切片打印,需要对悬垂部分生成支撑结构,已保证支具的正常打印,这导致打印时间增加,支具支撑结构后处理也将导致产生支具表面质量较差的情况。

2、为实现上述目的,本发明提供如下技术方案:基于直线离散的多轴无支撑打印轨迹生成方法,包括如下步骤:

3、步骤s1、导入需要进行无支撑打印的支具模型,并调整支具模型空间位置以及裁剪多余部分,便于后续进行无支撑切片打印;

4、步骤s2、计算支具的包围盒尺寸{xmin,xmax,ymin,ymax,zmin,zmax},下标问题确定支具下端面的中心点p,根据用户交互式确定的旋转点m,得到支具的z向高度差h差,设置最大旋转层高度hmax,当h差>hmax时,则将分为三部分,分别为底部平切层部分、中间旋转层部分和顶部平切层部分,分割出底部平切层部分,底部平切层高度为h底=h差-hmax,否则将模型分为两部分,中间旋转层部分和顶部平切层部分;

5、步骤s3、当存在底部平切层部分时,对底部平切层部分进行平面切片,计算该部分包围盒尺寸{xmin,xmax,ymin,ymax,zmin,zmax},再由底部切片层高h底计算切片层数num=(zmax-zmin)/h底,切片平面的法向量为(0,0,1),顶点位置为vi,其中,vi.x=p.x,vi.y=p.y,vi.z=zmin+i*h底,i表示切片层数,由顶点和法向量确定切片平面位置,从而进行底部平切层部分切片;

6、步骤s4、分割出中间旋转层部分并切片,计算模型顶面与底面的夹角θ,以θ角为参考值,用户交互式选择旋转角度β,β值根据θ值来调整,但保证(θ-β)<45°,根据旋转切片层高h旋和旋转切片层部分总高度h旋,计算旋转切片层数num2=h旋/h旋,再由旋转角度β计算得到平均每层旋转角度为α=β/num2,以中心点p沿z轴方向分布各层切片点,各层切片角度由平均每层旋转角度α逐层累加得到,由切片点和切片角度确定切片平面,完成旋转层部分的切片;

7、步骤s5、根据旋转角度β对顶层部分模型绕打印机旋转中心o进行旋转,将旋转后的顶层部分模型根据顶层切片层高h顶进行平面切片,切片平面法向量为(0,0,1);

8、步骤s6、合并多个打印部分路径点集,优化打印点集,得到打印的gcode文件。

9、进一步的,步骤s2中,还包括以下步骤:

10、步骤s201、读取支具模型,计算模型的包围盒尺寸{xmin,xmax,ymin,ymax,zmin,zmax},设置顶点为((xmin+xmax)/2,(ymin+ymax)/2,zmax+0.5),法向量为(0,0,1),由点法式设置平面plane,切割底层轮廓线,取轮廓线两个端点p1、p2,计算p1与p2连线的中心点p;

11、步骤s202、根据用户交互式确定的旋转点m,计算旋转点m以下的模型高度h,判断高度h与设置的最大旋转层高度hmax,当h<=hmax时,将模型分为下部旋转层和上部平切层两部分,则旋转层高度为h旋=h,当h>hmax较大时,多余的高度为底部平切层的高度h底=h差-hmax,得到底部平切层部分,旋转层高度h旋=hmax;

12、步骤s203、若存在底部平切层部分,则根据高度h底,得到顶点位置为(p.x,p.y,p.z+h底),法向量为(0,0,1),由点法式设置平面,将底部平切层部分与其他部分分割开。

13、进一步的,步骤s4中,还包括以下步骤:

14、步骤s401、计算底面与顶面所在平面法向量夹角θ,计算模型顶面所在平面法向量n1,底面法向量为n2=(0,0,1),由向量点乘法计算两法向量之间的夹角θ=cos-1(n1*n2/|n2|),用户交互式选择旋转角度β,β值根据θ值来调整,但保证(θ-β)<45°;

15、步骤s402、根据旋转切片层高h旋和旋转切片层部分总高度h旋,计算旋转切片层数num2=h旋/h旋,再由旋转角度β计算得到平均每层旋转角度为α=β/num2,由此可以计算得到每一层的旋转角度,第i层的旋转角度为βi=α*i;

16、步骤s403、根据下端面中心点p和底部平切层高度h底,依次确定每层旋转切片层的顶点位置,则第i层旋转层的切片层高度为hi=p.z+h底+i*h旋;

17、步骤s404、由s402计算得到第i层切片平面的法向量为(-sinβi,0,cosβi),由步骤s403计算得到第i层切片平面的顶点为(pi.x,pi.y,hi),根据点法式确定切片平面位置,得到旋转部分模型的切片点集。

18、进一步的,步骤s5中,还包括以下步骤:

19、步骤s501、根据s4中最后一次切片平面所在位置,顶点为(p.x,p.y,hnum2),法向量为(-sinβnum2,0,cosβnum2),将模型进行分割,得到顶部平切层部分模型;

20、步骤s502、将顶部平切层部分模型进行旋转,沿打印机旋转中心o进行旋转角度β,不改变模型的拓扑关系,将模型所有点进行旋转,设旋转前某点pi,计算旋转后对应点p’i,其中,p’i.x=pi.x*cosβ+pi.z*sinβ,p’i.z=pi.z*cosβ-pi.x*sinβ,p’i.y=p.y;

21、步骤s503、计算旋转后模型的aabb包围盒尺寸{xmin,xmax,ymin,ymax,zmin,zmax},由切片层高h顶、包围盒最大z值和最小z值计算得到切片层数num3=(zmax-zmin)/h顶,对模型进行num3次切片,切片平面法向量为{0,0,1},中心点为{(xmin+xmax)/2,(ymin+ymax)/2,(zmin+i*h顶)},i表示第i次切片。

22、与现有技术相比,本发明的有益效果是:

23、该3d打印方法,通过计算支具模型的包围盒尺寸,获取支具模型边界点集,根据用户交互式确定的旋转点,得到支具的z向高度差,进而将支具模型分成两个部分或者三个部分进行切片,再对底部和顶部平切层部分进行平面切片,最后根据旋转切片层高、中间旋转层总高度,沿边界点集确定每一层旋转切片层的切片点,然后根据用户交互式选择的旋转角度,计算平均每层旋转角度,最终由切片点和旋转角度确定切片平面所在位置,对旋转层部分进行切片,进而得到最终的gcode文件,通过此种基于直线离散的多轴无支撑打印轨迹生成方法来实现对具有悬垂结构的支具3d打印,减少打印时间,简化了现有3d打印繁琐的支撑的设计、去除流程,提高了工作效率。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1