本发明涉及增材快速成型领域,具体涉及一种制备生物支架的自适应直接切片方法,是针对应用数字微镜(DMD)投影式光固化快速成型方式制备具有复杂空间多孔单元结构及复杂自由曲面外轮廓生物支架的3D模型自适应直接切片方法。
背景技术:
生物支架作为组织工程三要素之一,在组织、器官修复或再生中起着十分重要的作用。生物支架的结构设计与最终制备工艺是除了材料因素以外影响其性能好坏的另一方面重要因素。合理的生物支架设计往往要求具有良好的连通性和孔隙率的微观尺度的多孔结构,而其外部轮廓往往要求与原器官或组织结构具有相同的外形,通常为复杂的自由曲面。这为生物支架的设计和制造带来了相当的困难。目前,应用专门的3D打印技术及相关设备制备具有特殊单元结构的生物支架方兴正艾。
光固化3D打印技术作为快速成型(Rapid Prototyping)技术的一种,其加工材料往往是某类光敏树脂,易通过改性获得良好的生物相容性、无毒性、可降解性等生物材料所必须的性能,因此被广泛用来制备生物支架。基于数字微镜(DMD)器件的投影式光固化成型属于面曝光成型技术,以其一次投影固化一整个截面轮廓,避免扫描式光固化成型方式的往复走刀过程,因而在固化成型效率上具有较大的优势。
主流的3D打印数据处理软件都是将目标三维模型转化为STL文件作为中间媒介,再遍历生成点表、边表、面表以建立拓扑关系最终执行切片处理。而STL文件作为原始CAD模型的一次近似,会造成相当的精度损失;另外STL文件往往具有各种先天的缺陷,需要在切片前先进行复杂的修复处理。以上两点在应用其打印宏观尺寸结构简单零件时尚可接受,而当其应用在制备具有复杂空间多孔结构单元及复杂外轮廓自由曲面的生物支架时,缺点被放大,效率极其低下甚至根本不能满足要求。而直接切片技术,避开STL文件直接对原始CAD模型进行切片处理能够有效避开上述问题,因此非常适合生物支架切片数据的获取。
应用3D打印技术制备生物支架必须先有对应支架的三维模型。而实际上由于生物支架及其复杂、高要求的几何结构,应用现有的商业三维软件对其进行三维建模会涉及到大量复杂的布尔运算,消耗大量的系统资源,因此对硬件要求非常苛刻甚至变得不能实现。如何避开上述复杂的布尔运算获得切片数据也成为亟待解决的技术问题。
应用3D打印技术制备复杂生物支架往往需要相当数量的切片,打印过程非常耗时。厚度自适应切片技术在保证打印的精度要求的前提下,通过减少切片数量,减少打印层数从而提高制备效率。目前各种厚度自适应切片技术的核心是如何表征三维模型的几何变化情况和复杂程度,各种表征参数不断被提出来,然而没有专门针对生物支架结构特点的表征参数。
技术实现要素:
本发明的目的在于克服上述现有技术的缺点和不足,提供一种制备生物支架的自适应直接切片方法。有效避开制备过程中耗费系统资源,消耗大量时间的算法或操作,能够提高效率、保证精度。
本发明通过下述技术方案实现:
一种制备生物支架的自适应直接切片方法,其包括如下步骤:
本方法是应用VC++在SolidWorks2011平台上进行的二次开发,本方法提出的核心思想和针对上述生物支架三维模型特点采用的特殊处理机制也可依托于其他软、硬件平台具体实现。其特征在于,包括以下步骤:
步骤A):向SolidWorks输入待切片处理的三维实体模型,保证模型坐标系方向与模型显示区域三重轴方向一致;如不满足应修改该三维实体模型,使其满足上述要求;
步骤B):输入初始参数,包括:最大允许层厚layer_max,最小允许层厚layer_min,层厚自适应公差δ,数据保存路径与位图切片数据保存路径;
步骤C):获得精确的输入模型包容盒参数,包括:x_min,y_min,z_min,x_max,y_max,z_max;
其中,x_min,y_min,z_min为模型包容盒的左下角点坐标;x_max,y_max,z_max为模型包容盒的右上角坐标;SolidWorks里的模型为B-reps模型,将该B-reps模型的Surface颜色设置为白色RGB(255,255,255),Body颜色设置为黑色RGB(0,0,0);
步骤D):根据实际需要选择ESD模块或IAD模块,对外表面模型采用ESD模块,对内部单元结构模型采用IAD模块;第一步,以layer_min完成初始切片数据(raw data)提取,并保存至系统和文档;
步骤E):第二步,根据层厚自适应公差δ,动态计算每层初始切片数据的ESD值或IAD值,剔除模型几何突变小的部分的切片层,保留模型几何突变大的部分的切片层,完成自适应层厚处理;若需要修改δ,只需重新执行本步,即可得到对应于新公差δ的自适应层厚参数;
步骤F):匹配硬件参数,包括:选择对应快速成型系统DMD芯片的型号,选择成形透镜系统的放缩倍率,自动对模型视图进行比例变化以满足切片位图逻辑单位与设备坐标的映射关系,对模型视图进行平移、旋转变换使其处于图幅的合适位置;
步骤G):干涉检查,检查该模型尺寸是否超出DMD芯片一次投影光固化的最大尺寸范围;
步骤H):执行直接切片操作,即直接对三维实体模型切片;将24位位图的位图切片数据保存至指定路径;
步骤I):设置灰度阈值,将24位位图抖动成单色位图。
上述步骤A)中输入的三维实体模型指具有复杂空间多孔结构单元及复杂外轮廓自由曲面的生物支架三维模型;而且,为避免用商用三维软件对上述生物支架模型进行实体建模时复杂布尔运算难以完成或实现的窘境,输入的模型并非完整的上述生物支架模型,而是根据实际需要选择的单外部自由曲面的三维模型或者内部单元结构的三维模型。
上述步骤B)中最大允许层厚layer_max,最小允许层厚layer_min依据对应快速成型系统的硬件指标;层厚自适应公差δ的理论取值范围为(0.1);大多数情况不操过0.2,其具体取值应根据具体三维模型决定。也可以先试切再做调整。
上述步骤C)中的Surface和Body分别指B-reps模型里的面和体;该颜色设置处理实际上是把输入模型的表面设为白色,内里设为黑色。该操作能在不使用复杂的图像识别、提取算法前提下,准确高效提取模型指定层的截面轮廓,过滤掉其他层的干扰。特别适合含有很多孤岛、内部封闭环的模型截面。
上述步骤D)中IAD(Internal Architecture Dominate)因子与ESD(External Surface Dominate)因子均为生物支架三维模型的衡量其相邻切片层几何变化情况的表征量。
上述步骤D)与步骤E)所述的层厚自适应操作的“两步”机制。首先,相对于其他自适应切片算法先以最大允许厚度切片,再在需要的地方插补一层或多层切片以保证精度的处理方式,步骤D)先以最小厚度切片能够在硬件性能条件下,最大程度上提取模型的特征细节,全面分析模型相邻切片层直接的几何变化情况,避免某些关键细小特征的遗漏;步骤E)在步骤D)掌握模型全局情况的前提下,根据公差δ执行自适应操作,其处理对象不再是三维模型,而是步骤D)所提取的数字信息,大大提高数据处理的速度与效率。其最大的特点与优点在于可以动态的修改公差δ的值,重新计算层厚信息而不需要再次执行低效费时的切片操作,使得算法效率提高的同时也增强了鲁棒性。
上述步骤F)所述的匹配DMD芯片与投影透镜倍率,自动调整视图大小。除此之外,对于硬件参数库中没有包含的工况,还可以手动输入三维模型最大尺寸在1024×768图幅中所占的像素点数目,从而调整位图数据,以满足更多更复杂的工况。
上述步骤H)所述直接切片指直接对三维实体模型进行切片,而不通过STL文件作为媒介。
本发明既能进行上述的自适应层厚的直接切片操作,也能进行均匀层厚的直接切片操作。该开关选项在步骤H)可选。
本发明是基于SolidWorks 2011平台的二次开发,但本方法的主要思想和处理机制不限于SolidWorks平台,亦可用于其他软、硬件平台。能够直接对B-reps模型进行切片,避免以STL文件作为中间媒介造成的精度损失及复杂耗时的缺陷修复算法。
根据生物支架3D模型的特点,针对其外部曲面轮廓几何变化情况采用ESD(External Surface Dominate)参数作为衡量标准,针对复杂内部单元结构几何变化情况采用IAD(Internal Architecture Dominate)参数作为衡量标准,实现切片厚度自适应处理,在保证精度的前提下,通过减少切片数量提高打印效率;采用如下机制:第一步,以最小厚度对模型切片得到初始切片数据;第二步,根据IAD因子或ESD因子逐步增大模型几何突变小于公差要求部分切片层的厚度。该“两步”机制能够在只对3D模型做一次切片操作的前提下,获得任意自适应厚度公差值对应的切片数据,避免了重复切片,提高了效率。
将生物支架的外部曲面轮廓三维模型和内部单元结构的三维模型分开进行切片,分别以单色位图作为切片数据格式存储,再叠加生成完整的位图切片数据,不仅可以直接输入DMD芯片,更能避免应用商用三维软件对具有极其复杂空间多孔结构的生物支架进行3D建模以及切片时复杂耗时的、占用大量系统资源的布尔运算,增强了切片方法的鲁棒性。根据DMD芯片尺寸和投影透镜的放缩倍率调节位图分辨率以满足逻辑单位与设备坐标的映射关系,以适应各种复杂的工况。
附图说明
图1是本发明具体实施方式的全局流程图;
图2是本发明ESD步骤中的算法流程图;
图3是本发明IAD步骤中的算法流程图;
图4是本发明直接切片步骤中的算法流程图;
图5是本发明实例对三维模型外表面轮廓进行切片图之一;
图6是本发明实例对三维模型外表面轮廓进行切片图之二;
图7是本发明实例对三维模型外表面轮廓进行切片图之三;
图8是图1剖面图。
图9是本发明实例对三维模型外表面轮廓进行切片图之四;
图10是图9剖面图。
图11是本发明实例对三维模型外表面轮廓进行切片图之五;
图12是图11剖面图。
图13是本发明实例对一种单元空间结构切片图;
图14是单元空间结构切片层转动惯量变化情况图谱以及单元空间结构IAD因子变化情况图谱。
图15是对图13切片的情况。因其具有周期性,故图15仅为一个周期的情况。高度为18.82mm,以layer_min=1mm对其切片,共19层。
具体实施方式
下面结合附图及具体实施例对本发明作进一步具体详细描述。
实施例
如图1所示,本发明主要分为四部分,①预处理、②厚度自适应处理(ESD与IAD)、③直接切片以及④后处理。其中厚度自适应处理的两个组成本分ESD子步骤与IAD子步骤是两个完全独立的步骤,没有操作数和操作对象上的重叠。
厚度自适应处理②与直接切片步骤直接也是相互独立,直接切片步骤可以接受厚度自适应处理步骤处理后的数据执行厚度自适应直接切片操作,也可以跳过厚度自适应处理步骤直接接受预处理步骤处理后的数据执行均匀厚度直接切片操作。这四个步骤构成一个基于对话框的应用程序,其用户界面具有人机交互性。这个对话框类的继承关系是”class Slicer_Dlg:public CDialog”,Slicer_Dlg类的public成员包含上述四个步骤运行过程中传递的各种数据,包括:厚度自适应处理的传递和存放三维模型信息和切片参数的数据变量,传递和存放每层切片IAD与ESD数据的结构体;直接切片步骤的传递和存放整个模型IAD与ESD数据的list容器,根据公差执行厚度自适应操作的list容器,直接切片步骤中的传递和存放切片层厚序列的vector容器。另外,这四个步骤在运行过程中会将自身数据设定格式写入用户指定的文件,作为日志文件。
如图1所示,为用于表征三维模型外轮廓自由曲面变化情况的参数,即ESD因子。默认以Z轴为增材方向,用SolidWorks API提供的方法GetSectionProperties2提取当前层i截面相对于其形心轴的惯性矩以及形心轴相对于模型坐标的偏移。为比较模型不同层的二次矩值,需要将其放在统一的基准下。因此,对于某层i,其原始基准为C(XC,YC,Zi)其计算基准为D(Xmin,Ymin,Zi),其中Xmin,Ymin为整个模型包容盒左下角点,相对于模型为常值;Zi为当前层高度。转换关系如下:
其中,A为当前切片截面的面积;a,b,为坐标系变换参数;I,I'分别是移轴变换前后的惯性矩;L为角度变换后截面相对于基准D的二次矩。
则,第i层切片与第i+1层切片的ESD因子值为:
二次矩的本质是二维截面上的点到轴距离平方在整个截面区域内的积分,它本生能够反映指定方向上截面形状连续分布的情况。而ESD为相邻两层切片截面在同一基准下,同时考虑X,Y两个方向二次矩变化情况的几何平均值。因此,它具有反映三维模型外轮廓的自由曲面在二维截面上几何分布及变化情况的理论依据。从实验出发,该ESD因子经过许多具有代表性的三维模型的测试,在后文将具体叙述一个有代表性的实例。
如图1所示,是用于表征三维模型内部结构几何变化情况的参数,即IAD因子。默认以Z轴为增材方向,用SolidWorks API提供的IMassProperty接口,提取当前层i与i+1层所夹生成的厚板区域的主轴方向,及主轴惯性矩。为使不同层之间的惯性矩能够相互比较,必须将其放在统一的基准下。记第i层与第i+1层之间的厚板为Si,i+1,则其计算基准为整个模型包容盒左下角点在第i层切片平面上的投影,即D(Xmin,Ymin,Zi),其中,其中Xmin,Ymin为整个模型包容盒左下角点,相对于模型为常值;Zi为当前层高度。转换关系如下:
DC={(Xc-Xmin),(Yc-Ymin),(Zc-Zmin)}
其中:为主轴的方向向量
其中:
α=-arcsin(-z1)
C(Xc,Yc,Zc),m分别为厚板Si,i+1的质心和质量;D(Xmin,Ymin,Zmin)是计算基准,DC,PX,PYPZ为向量,P是主轴惯性矩,P'是P的移轴变换
α,θ,β分别是饶Y,X,Z轴的转角,为角度变换因子
则,第i与i+1层所Si,i+1夹厚板的IAD因子为:
惯性矩本质上是三维区域内的点到轴距离的平方在整个质量分布的三维区域内的积分。与ESD同理,IAD也具有反映三维模型内部几何结构分布的变化情况的理论依据。不同点在于,ESD只反映两个方向(X,Y)的面积分布情况,对于自由曲面在二维截面上的投影来说足够;而IAD需要反映厚板体在三维空间质量分布情况,因此它需要同时考虑X,Y,Z三个方向的量。从实验出发,该IAD因子经过许多具有代表性的三维模型的测试,在后文将具体叙述一个有代表性的实例。
在预处理阶段将模型的Surface设置RGB(255,255,255),将Body设置RGB(0,0,0)。其中,Surface和Body分别指B-reps模型里的面和体。该颜色设置处理实际上是把输入模型的表面设为白色,内里设为黑色。该操作能在不使用复杂的图像识别、提取算法前提下,准确高效提取模型指定层的截面轮廓,过滤掉其他层的干扰。特别适合含有很多孤岛、内部封闭环的模型截面。
如图2为ESD步骤中的算法流程图。以Z轴为默认增材方向,算法运行过程叙述如下:
1.以“前视基准面”为参考插入一张参考基准面,偏移d=layer_min*i,i为循环因子;
2.以第1步的参考基准面为修剪工具创建一个分割特征,将模型分割成多实体;
3.识别上述分割过程得到的多实体IBody集合,通过这些IBody集合获得相应截面IFace集合;
4.提取上述IFace集合的形心坐标,位置,二次矩,根据变换算法,计算在新参考点的二次矩,并存入每层切片数据的结构体SectionFace_Info,并将其压栈存入模型的切片数据list容器;
5.利用SolidWorks参数化建模的特点,进入下次循环,i++,动态修改第1步参考基准面的偏移d,进而分割特征也自动修改,跳到3、4步;
6.判断参考平面是否达到模型最高点。是,结束循环;否,跳第5步;
7.建立新的list容器,将上述list容器复制到当前新建的list容器,并将数据存入文档;
8.判断当前数据是否满足删除条件。是,删除;否,下一个;遍历容器;
9.获得厚度自适应处理以后的切片序列,存入文档。
图3为IAD步骤中算法流程图。以Z轴为默认增材方向。其算法原理与上述ESD基本思想相同。不同处叙述如下:
1.以“前视基准面”为参考插入一张参考基准面,偏移d=layer_min*i,i为循环因子;
2.以第1步创建的参考面为基准,再次插入一张参考基准面,偏移d1=layer_min;
3.以上述2张基准面为剪裁工具,创建分割特征;
4.识别夹在两剪裁面之间的实体IBody集合;
5.提取上一步IBody集合的重心坐标,主轴方向,转动惯量,根据变换算法,计算在新参考点下的惯性矩,存入每层切片数据的结构体Sectionslab_Info,并压栈入切片数据的list容器;
后面步骤与IAD模块相似,不做累述。
图4为直接切片模块的算法流程图。以Z轴为默认增材方向,算法运行过程叙述如下:
1.查看用户选择均匀切片/自适应切片的开关量S,为S=1,执行均匀切片;为S=0,执行自适应切片;
2.若S=1,直接切片厚度序列vector容器压入0-layer_sum的均匀序列;若S=0,该vector容器压入从ESD/IAD模块日志文档里读取的厚度序列;
3.匹配DMD型号和透镜倍率,调整视图为“前视图”,将视图调整至合适位置;
4.自动/手动调整视图大小,以满足逻辑单位与设备坐标的映射关系;
5.将模型显示方式设置为“上色”模式;
6.以“前视基准面”为参考,创建SectionView;
7.调用SaveBMP方法,以1024×768图幅保存剖视图与指定路径;
8.判断模型是否切完。是,结束;否,跳第9步;
9.按照vector容器里的厚度序列值修改SectionView的偏移量,跳第6步;
图5是牙齿的三维模型。
图6为应用本方法对牙齿模型进行切片的情况。默认沿Z轴为增材方向,该牙齿模型关于X-Y平面对称。单边高7.601mm,以layer_min=0.1mm,共有76层切片,整个模型152层切片。图中所示数字下标即为切片层的厚度序列。
图7至图12。其中图7所示是测试ESD模块性能的测试模型1,用来测试外轮廓有内凹区域的情况。由图8(测试模型1-b)来反映,经ESD模块成功识别内凹的有槽区域并将其切片厚度保留为最小厚度以保证精度,而对底部则采用大的切片厚度。图9(测试模型2)用来测试外轮廓有内凹、外凸以及孔洞的情况。由图10(测试模型2-b)反映,ESD模块成功识别有孔区域、外凸的斜面区域以及内凹的弧面区域,并将其厚度保留为最小值。图11(测试模型3)用来测试外轮廓曲面曲率连续变化的情况。由图12(测试模型3-b)反映,ESD模块对模型的脖颈部以及裙部保留最小的切片厚度,而上述区域也是整个模型曲率变化相对大的部分。因此,本发明方法的ESD模块能够满足要求。
图13是一种多孔的单元结构。通过观察可以发现,图13所示的模型实际沿Z轴方向具有周期性,共有3层,为3个周期。应用本方法提出的IAD模块对其几何信息进行提取,结果如图14所示。IAD因子成功捕捉并反映了模型几何变化上的周期性。图15所示为本方法对其切片的情况。因其具有周期性,故图15仅为一个周期的情况。高度为18.82mm,以layer_min=1mm对其切片,共19层。
以上内容是结合具体的优选实施方式对对本发明所做的进一步详细说明,不能认定本发明的具体实施只局限于以上说明。本发明主要强调上述说明的实现厚度自适应切片操作的ESD、IAD因子的思想和数学原理;强调在上述说明所阐述的针对生物支架三维模型的特点,为避免因低能低效的算法耗费大量计算机资源而导致生物支架三维模型切片困难这种情况的发生,而提出的相应的机制和方法。
对于本发明所属的技术领域的技术人员来说,在不脱离本发明构思的前提下,还可以做出若干等同替代或者明显变型,而且性能或用途相同,如,在本发明构思上应用其他商用三维软件(非SolidWorks),将三维实体模型分成外部轮廓与内部结构分别进行切片,获得单色位图切片数据;亦如,用其他软、硬件获取本发明所提出的每层切片的二次矩,转动惯量后再计算ESD/IAD因子。都应当视为属于本发明的保护范围。