[发明专利]基于病人个性化外固定3D打印模型设计方法及切片系统有效
申请号: | 201811346465.7 | 申请日: | 2018-11-13 |
公开(公告)号: | CN109394410B | 公开(公告)日: | 2022-03-22 |
发明(设计)人: | 刘朋;石志良 | 申请(专利权)人: | 武汉必盈生物科技有限公司 |
主分类号: | A61F5/058 | 分类号: | A61F5/058;B33Y10/00;B33Y30/00;B33Y50/00 |
代理公司: | 北京中北知识产权代理有限公司 11253 | 代理人: | 李新昂 |
地址: | 430073 湖北省武汉市东湖新技术*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 病人 个性 化外 固定 打印 模型 设计 方法 切片 系统 | ||
1.一种基于病人个性化外固定3D打印模型设计方法,其特征在于,该3D打印模型设计方法包括:
S1:对病人病区部位表面三维扫描数据进行处理;
S2:采用空间姿态矩阵变换方法,进行三维点云和面片的位姿调整,并自动对齐3D打印机的打印方位;
S3:获取三维扫描模型的包围盒,赋予包围盒三个方向的移动和旋转功能,通过包围盒的旋转和大小调整,与三维网格模型进行布尔减运算,快速得到合适大小的初始外固定三维网格模型;
S4:在适应3D打印方向上,将包围盒的大小缩小一半,进行布尔减运算,得到初始外固定的两个半剖、非封闭的三维网格模型;
S5:对外固定两个半剖三维网格模型,构建顶部和底部的卡扣模型,外固定两个半剖三维网格模型分别与顶部和底部的卡扣模型进行布尔减运算,得到四个网格模型;
S6:顶部和底部的卡扣模型分别与外固定两个半剖三维网格模型进行点云和面片的拓扑融合,得到外固定的两个带卡扣的半剖三维网格模型;
S7:利用定制孔大小的包围盒、或圆柱面、或椭圆柱面,与初始外固定的两个半剖的非封闭三维网格模型进行布尔减运算,获得含透气孔的外固定两个半剖三维网格模型;
S8:分别获取两个带卡扣的含透气孔外固定的半剖网格模型的包围盒,设定切片层高,循环定义不同大小的与原包围盒方位相同的包围盒,分别切割半剖网格模型,获取并存储每层相交求得的直线;
S9:针对分层相交求得的直线,依据拓扑关系进行相交点排序,判断边界点,相邻边界点之间为空轨迹,其余点连线为需要轨迹;
S10:依据异形打印头的尺寸,对轨迹进行偏置,并根据打印精度的要求,采用插补算法优化轨迹,生成3D打印机所需要的优化的GCODE代码,发送给打印机,进行外固定的快速实物打印;
空间姿态调整:
空间姿态调整主要是调整模型的空间位置,便于模型后期打印与模型切割;
(1)导入模型后,读取并采用链表存储vertices坐标信息,Mesh的点拓扑关系;
(2)调整模型姿态,移动和转动模型的实现均通过屏幕点击,捕捉鼠标的点击和释放信号,记录移动的方向和距离,转化为相应的X,Y,Z轴旋转角度及移动量,由鼠标交互生成的移动和旋转信息,转化为4×4的空间变换矩阵C[];
(3)获取该模型Mesh的点云信息,将该模型中所有的点vertices的坐标乘以该空间变换矩阵C[],得到新的点云坐标,更新Mesh点云坐标,完成模型的空间坐标变换;
模型整形分割:
(1)比较模型内vertices坐标值,获得Xmax、Xmin、Ymax、Ymin、Zmax、Zmin,并将已获取到值,存入两个点,b1=(Xmax,Ymax,Zmax),b2=(Xmin,Ymin,Zmin),创建模型包围盒;
(2)改变包围盒的大小,通过鼠标交互拖动包围盒控制图柄,调整包围盒的长、宽、高尺寸,更新b1=(Xmax,Ymax,Zmax),b2=(Xmin,Ymin,Zmin)的值,创建出新的包围盒;
(3)旋转包围盒,旋转指定坐标轴,鼠标交互获得旋转角度,生成一个4×4旋转矩阵R[],然后将网格Mesh内坐标所有vertices乘以旋转矩阵R[],更新网格Mesh,将原来的网格转动到包围盒内部;
(4)截取模型,获取整体模型Mesh的面片triangles,点坐标vertices信息,进行网格求交,将mesh中的面片依次与box的-X平面求交,若存在交点,则两交点与该面片的点相连,构成新的面片,将属于-X平面左侧的面片、与mesh不相交的面片,赋以特殊索引号,添加进outsideMesh,将outsideMesh作为循环运算的mesh与box的+X平面求交,生成新的面片,将位于+X平面右侧的面片,与mesh不相交的面片一起更新存放到outsideMesh,再与-Y,+Y,-Z,+Z求交,即为模型与包围盒求交之后的网格insideMesh,由insideMesh生成的模型Mesh.section就是截取到的模型;
(5)截取到的模型后,将模型包围盒中心自动摆正到打印中心;
(6)获取Mesh.section的坐标vertices信息,获取包围盒中心坐标(XBX,YBY,ZBZ),给定打印中心坐标值(Xp,Yp,Zp),需要将包围盒中心移动到打印中心,由公式BM[]·T[]=VP[],其中BM[]为包围盒中心坐标矩阵,VP[]为打印中心坐标矩阵,求得一个4×4的平移矩阵T[],将模型Mesh.section的所有坐标值vertices乘以平移矩阵T[]后,更新Mesh.section,模型就摆正到打印中心;
模型剖分:
截取到的整个模型,如果整体打印出来后,不方便佩戴,所以为了便于患者佩戴使用,需要将截取到的模型Mesh.section进行模型半剖分;
(1)获取到模型Mesh.section的网格信息,同样通过比较Mesh.section的坐标vertices信息,创建Mesh.section的包围盒;
(2)在交互界面上拖动包围盒控制图柄,通过该交互操作获得调整距离,调整包围盒的尺寸大小,生成新的包围盒信息;
(3)截取模型,获取整体模型Mesh.section的网格信息,面片triangles,点坐标vertices信息,进行网格求交,将mesh中的面片依次与box的-X平面求交,若存在交点,则两交点与该面片的点相连,构成新的面片,将属于-X平面左侧的面片、与mesh不相交的面片,赋以特殊索引号,添加进outsideMesh,将outsideMesh作为循环运算的mesh与box的+X平面求交,生成新的面片,将位于+X平面右侧的面片,与mesh不相交的面片一起更新存放到outsideMesh,再与-Y,+Y,-Z,+Z求交,模型与包围盒求交之后的网格为insideMesh;
(4)分别将outsideMesh与insideMesh分别保存为Mesh.section1与Mesh.section2.两部分,得到剖分后的两部分模型;
构建顶部和底部卡扣模型:
(1)构建卡扣过程中,选中剖分后的模型,获取该部分模型的包围盒中心,如果该部分模型中心位于剖分面左侧,判定该部分模型提取顶部卡扣,获取该部分模型包围盒坐标信息,创建卡扣包围盒;
如果剖分面为与XOZ轴平行的平面:包围盒中心X卡<X模;
X卡max=X模max,X卡min=X模max-a
Y卡max=Y模max,Y卡min=Y模min
Z卡max=Z模max,Z卡min=Z模max-h
如果剖分面为YOZ轴平行的平面:包围盒中心Y卡<Y模;
X卡max=X模max,X卡min=X模min
Y卡max=Y模max,Y卡min=Y模max-a
Z卡max=Z模max,Z卡min=Z模max-h
创建卡扣包围盒;
(2)网格求交,获取Mesh.section1的Mesh信息,与创建的卡扣包围盒各个平面求交,求交方法与截取模型的求交方法相同;最后求交获取到outsidemesh与insidemesh两部分网格,分别生成顶部卡扣模型Mesh.section1.section1与带有顶部卡扣定位孔的半剖模型Mesh.section1.section2;
(3)如果模型中心位于剖分面右侧,如果剖分面为与XOZ平行的平面:包围盒中心X卡<X模;
X卡max=X模min+a,X卡min=X模min
Y卡max=Y模max,Y卡min=Y模min
Z卡max=Z模min+h,Z卡min=Z模min
如果剖分面为YOZ轴平行的平面:包围盒中心Y卡>Y模;
X卡max=X模max,X卡min=X模min
Y卡max=Y模min+a,Y卡min=Y模min
Z卡max=Z模min+h,Z卡min=Z模min
创建底部卡扣包围盒;
(4)网格求交,获取Mesh.section2的Mesh信息,与创建的底部卡扣包围盒各个平面求交,提取底部与卡扣包围盒内部的网格信息,求交方法与截取模型的求交方法相同,最后求交获取到outsidemesh与insidemesh两部分网格,分别生成底部卡扣模型Mesh.section2.section1与带有底部卡扣定位孔的半剖模型Mesh.section2.section2;
模型融合:
卡扣模型生成后,两个模型的几何和拓扑关系是独立,需整合成一个模型,便于切割,生成正确的加工轨迹;
(1)获取两个模型Mesh1,Mesh2的面片、点数vertices1,vertices2的信息,分别采用链表存储;
(2)申请动态内存,创造新的对象Merged Mesh;
(3)将Mesh1的面片拓扑添加进Merged Mesh结构中;
(4)添加Mesh2时,首先添加面片信息,然后将对应面片的索引号加上Mesh1的点数vertices1,更新点的索引;
自动构建透气孔:
(1)透气孔的作用是防止皮肤长时间不接触空气,细胞活性降低,严重时可能坏死;透气孔的大小为10*20的规格,每层两个,两孔分别位于当前层高的包围盒中线两侧,层数取决于打印模型的高度,模型高为0-7cm时不挖孔,7-9cm时挖一层孔,9-14cm挖两层孔,14-19cm挖三层孔,透气孔的位置和数目是基于包围盒的长和高自动生成;
(2)透气孔的实现:对选中的模型,获取包围盒信息,计算每个方形孔的空心位置,并创建一定大小的,深度为包围盒宽度的box1,利用box的六个平面依次与模型的求交,保留box1外部的mesh1,将它作为新的模型输入,与另一位置的box2求交,保留box1外部的mesh2,循环进行,直至完成所有box求交,最终mesh即为挖完透气孔的mesh;
(3)将mesh中的面片依次与box的-X平面求交,若存在交点,则两交点与该面片的点相连,构成新的面片,将属于-X平面左侧的面片、与mesh不相交的面片,赋以特殊索引号,添加进outsideMesh,将outsideMesh作为循环运算的mesh与box的+X平面求交,生成新的面片,将位于+X平面右侧的面片,与mesh不相交的面片一起更新存放到outsideMesh,再与-Y,+Y,-Z,+Z求交,最后保留下来的网格即为模型与包围盒求交之后的网格。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉必盈生物科技有限公司,未经武汉必盈生物科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811346465.7/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种骨科治疗用骨裂咬合装置
- 下一篇:一种尿液收集器