产学研创新服务平台(全国)
专利申请类型:发明专利;专利名称:一种基于八叉树的支撑结构生成方法
专利类型:发明专利
专利申请号:CN202311292681.9
专利申请(专利权)人:南京林业大学
权利人地址:江苏省南京市玄武区龙蟠路159号
专利发明(设计)人:陈伟
专利摘要:本发明公开一种基于八叉树的支撑结构生成方法,属于3D打印技术领域。包括步骤1:生成模型的包围盒、模型支撑点和模型在底部投影区域;步骤2:生成八叉树;步骤3:计算最底部叶子节点的颜色值属性;步骤4:由底向上,计算其他非最底部叶子节点的颜色值属性;步骤5:计算处于栅格拐角处的所有叶子节点的角点,将其标记出来;步骤6:收集八叉树的框架线;步骤7:将框架线转换为支撑面片。本发明支撑结构生成方法能够适应多种不同的三维模型自动生成支撑结构,生成的支撑结构稳定性强,支撑强度高,原材料消耗少,保证了打印的稳定性和打印质量。
主权利要求:
1.一种基于八叉树的支撑结构生成方法,其特征在于,包括以下步骤:步骤1:生成模型的包围盒、模型支撑点和模型在底部投影区域;
步骤2:生成八叉树;
步骤3:计算最底部叶子节点的颜色值属性,具体步骤如下:步骤3.1:判断每个节点是否为最低节点,将最靠近底座的节点进行标记,称为最底部叶子节点;
步骤3.2:定义节点的八个角以及中心点为角点;
步骤3.3:计算待加支撑的实体的投影区域p,p为一系列首尾相连的线;
步骤3.4:判断p轮廓线与最底部叶子节点是否相交;
步骤3.5:过滤所有最底部叶子节点,只要某个最底部叶子节点的下部四个角点不是全处于投影区域p内部,则将其颜色值属性修改为白色;
步骤3.6:遍历所有支撑点,计算某个支撑点投影的最底部叶子节点,如果该节点的颜色值属性为白色则修改为灰色;
步骤4:由底向上,计算其他非最底部叶子节点的颜色值属性;
步骤5:计算处于栅格拐角处的所有叶子节点的角点,将其标记出来;
步骤6:收集八叉树的框架线;
步骤7:将框架线转换为支撑面片。
2.根据权利要求1所述的一种基于八叉树的支撑结构生成方法,其特征在于:步骤2中,生成八叉树的具体步骤如下:步骤2.1:定义节点为一个长方体空间;
步骤2.2:将包围盒空间用八叉树划分到不同的层,最初始情况根节点的层为0,将根节点划分成8个层为1的子节点,这8个子节点的各自子节点的层为2,依次划分,直至用户设定的最大层,此时层最大的节点称为叶子节点。
3.根据权利要求1所述的一种基于八叉树的支撑结构生成方法,其特征在于:步骤3.4中,判断p轮廓线与最底部叶子节点是否相交的方法如下:定义一个颜色值属性,判断所有最底部叶子节点,如果某个叶子节点的8个角点都处于投影区域p的内部,则颜色值属性为黑色,如果8个角点都处于投影区域p的外部,则颜色值属性为白色,反之,则颜色值属性为灰色。
4.根据权利要求1所述的一种基于八叉树的支撑结构生成方法,其特征在于:步骤4中,由底向上,计算其他非最底部叶子节点的颜色值属性的具体步骤如下:步骤4.1:收集当前八叉树的所有颜色值属性为灰色或黑色的最底部叶子节点;
步骤4.2:使用射线检测,从底向上检测步骤4.1中的节点集合,判断是否与模型相交;
步骤4.3:从底向上,从最底部叶子节点向上发射射线检测,将正上方的所有叶子节点收集起来,每个最底部叶子节点上方的所有叶子节点组合起来放在一个容器;
步骤4.4:从最大层到根部层,初始化其他所有的节点的颜色值属性。
5.根据权利要求4所述的一种基于八叉树的支撑结构生成方法,其特征在于:步骤4.2中,判断是否与模型相交的方法为:每个节点向上发射5条射线,对于相交的节点,记录其相交点中最低的点;对于不相交的节点,查找其周围相邻的邻居节点,然后在其邻居节点中查找最低相交点;如果邻居节点也不相交,则从4.1中的节点集合中删除该节点。
6.根据权利要求4所述的一种基于八叉树的支撑结构生成方法,其特征在于:步骤4.4中,从最大层到根部层,初始化其他所有的节点的颜色值属性的方法为:如果某个节点的所有子节点都为黑色或者都为白色,则该节点为黑色或白色,否则为灰色。
7.根据权利要求1所述的一种基于八叉树的支撑结构生成方法,其特征在于:步骤6中,收集八叉树的框架线包括:收集处于内部、外部、拐角、顶部的节点的框架线。 说明书 : 一种基于八叉树的支撑结构生成方法技术领域[0001] 本发明属于3D打印技术领域,具体涉及一种基于八叉树的支撑结构生成方法。背景技术[0002] 3D打印,即快速成型技术的一种,又称增材制造,它是一种以数字模型文件为基础,运用粉末状金属或塑料等可粘合材料,通过逐层打印的方式来构造物体的技术。[0003] 3D打印通常是采用数字技术材料打印机来实现的。常在模具制造、工业设计等领域被用于制造模型,后逐渐用于一些产品的直接制造,该技术在珠宝、鞋类、工业设计、建筑、工程和施工(AEC)、汽车、航空航天、牙科和医疗产业、教育、地理信息系统、土木工程、枪支以及其他领域都有所应用。[0004] 3D打印的主要流程为:导入生成的三维模型,对三维模型进行添加支撑,然后进行切片后导出数据。现有的支撑结构主要是柱形、十字形等支撑结构,这些支撑结构,其打印原材料消耗比较多,甚至对于一些特殊的三维模型,其支撑强度不够,无法支撑模型进行打印。发明内容[0005] 本发明解决的技术问题:本发明主要目的在于提供一种基于八叉树的支撑结构生成方法,旨在解决现有技术中支撑强度低、支撑稳定性差、支撑耗费原材料多等技术问题。[0006] 技术方案:为了解决上述技术问题,本发明采用的技术方案如下:[0007] 一种基于八叉树的支撑结构生成方法,包括以下步骤:[0008] 步骤1:生成模型的包围盒、模型支撑点和模型在底部投影区域;[0009] 步骤2:生成八叉树;[0010] 步骤3:计算最底部叶子节点的颜色值属性,具体步骤如下:[0011] 步骤3.1:判断每个节点是否为最低节点,将最靠近底座的节点进行标记,称为最底部叶子节点;[0012] 步骤3.2:定义节点的八个角以及中心点为角点;[0013] 步骤3.3:计算待加支撑的实体的投影区域p,p为一系列首尾相连的线;[0014] 步骤3.4:判断p轮廓线与最底部叶子节点是否相交;[0015] 步骤3.5:过滤所有最底部叶子节点,只要某个最底部叶子节点的下部四个角点不是全处于投影区域p内部,则将其颜色值属性修改为白色;[0016] 步骤3.6:遍历所有支撑点,计算某个支撑点投影的最底部叶子节点,如果该节点的颜色值属性为白色则修改为灰色;[0017] 步骤4:由底向上,计算其他非最底部叶子节点的颜色值属性;[0018] 步骤5:计算处于栅格拐角处的所有叶子节点的角点,将其标记出来;[0019] 步骤6:收集八叉树的框架线;[0020] 步骤7:将框架线转换为支撑面片。[0021] 作为优选,步骤2中,生成八叉树的具体步骤如下:[0022] 步骤2.1:定义节点为一个长方体空间;[0023] 步骤2.2:将包围盒空间用八叉树划分到不同的层,最初始情况根节点的层为0,将根节点划分成8个层为1的子节点,这8个子节点的各自子节点的层为2,依次划分,直至用户设定的最大层,此时层最大的节点称为叶子节点。[0024] 作为优选,步骤3.4中,判断p轮廓线与最底部叶子节点是否相交的方法如下:[0025] 定义一个颜色值属性,判断所有最底部叶子节点,如果某个叶子节点的8个角点都处于投影区域p的内部,则颜色值属性为黑色,如果8个角点都处于投影区域p的外部,则颜色值属性为白色,反之,则颜色值属性为灰色。[0026] 作为优选,步骤4中,由底向上,计算其他非最底部叶子节点的颜色值属性的具体步骤如下:[0027] 步骤4.1:收集当前八叉树的所有颜色值属性为灰色或黑色的最底部叶子节点;[0028] 步骤4.2:使用射线检测,从底向上检测步骤4.1中的节点集合,判断是否与模型相交;[0029] 步骤4.3:从底向上,从最底部叶子节点向上发射射线检测,将正上方的所有叶子节点收集起来,每个最底部叶子节点上方的所有叶子节点组合起来放在一个容器;[0030] 步骤4.4:从最大层到根部层,初始化其他所有的节点的颜色值属性。[0031] 作为优选,步骤4.2中,判断是否与模型相交的方法为:[0032] 每个节点向上发射5条射线,对于相交的节点,记录其相交点中最低的点;对于不相交的节点,查找其周围相邻的邻居节点,然后在其邻居节点中查找最低相交点;如果邻居节点也不相交,则从4.1中的节点集合中删除该节点。[0033] 作为优选,步骤4.4中,从最大层到根部层,初始化其他所有的节点的颜色值属性的方法为:如果某个节点的所有子节点都为黑色或者都为白色,则该节点为黑色或白色,否则为灰色。[0034] 作为优选,步骤6中,收集八叉树的框架线包括:收集处于内部、外部、拐角、顶部的节点的框架线。[0035] 有益效果:与现有技术相比,本发明具有以下优点:[0036] (1)本发明根据八叉树的特性,在收集支撑结构线的时,对于全部颜色为白色的节点,只收集较大的节点的结构线(层(level)较小),这种方法能切实减少节点的结构线,减少原材料消耗,降低成本。[0037] (2)本发明的支撑结构生成方法可适应多种不同的三维模型自动生成支撑结构,生成的支撑结构稳定性强,支撑强度高,原材料消耗少,从而保证了打印的稳定性和打印质量。附图说明[0038] 图1是一种基于八叉树的支撑结构生成方法的流程图;[0039] 图2是将包围盒空间用八叉树划分到不同的Level的结构图;[0040] 图3是以三角形三维模型为例,生成的支撑节点的结构线示意图;[0041] 图4是以三角形三维模型为例,生成的支撑节点的结构线的侧视图;[0042] 图5是以三角形三维模型为例,生成的支撑结构示意图。具体实施方式[0043] 下面结合具体实施例,进一步阐明本发明,实施例在以本发明技术方案为前提下进行实施,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围。[0044] 如图1‑5所示,本发明提出了一种基于八叉树的支撑结构生成方法,包括以下步骤:[0045] 步骤1:生成模型的包围盒、模型支撑点和模型在底部投影区域;[0046] 步骤2:生成八叉树,具体步骤如下:[0047] 步骤2.1:定义节点(node)为一个长方体空间;[0048] 步骤2.2:将包围盒空间用八叉树划分到不同的层(level),最初始情况根节点(rootnode)的层为0,将根节点划分成8个层为1的子节点,这8个子节点(childnode)的各自子节点的层为2,依次划分,直至用户设定的最大层(maxLevel),此时层最大的节点称为叶子节点(leafnode)。[0049] 步骤3:计算最底部叶子节点(lowestleafnode)的颜色值(color)属性,具体步骤如下:[0050] 步骤3.1:判断每个节点是否为最低节点(lowestnode),将最靠近底座的节点进行标记,称为最底部叶子节点;[0051] 步骤3.2:定义节点的八个角以及中心点为角点(cell),这样每个节点有9个角点;[0052] 步骤3.3:计算待加支撑的实体的投影区域p,p为一系列首尾相连的线;[0053] 步骤3.4:判断p轮廓线与最底部叶子节点是否相交,具体步骤如下:[0054] 定义一个颜色值属性,判断所有最底部叶子节点,如果某个叶子节点的8个角点都处于投影区域p的内部,则颜色值属性为黑色,如果8个角点都处于投影区域p的外部,则颜色值属性为白色,反之,则颜色值属性为灰色。此时相当于只初始化了所有叶子节点中与轮廓线相交的节点,处于轮廓内部的还未初始化颜色值属性。[0055] 步骤3.5:过滤所有最底部叶子节点,只要某个最底部叶子节点的下部四个角点不是全处于投影区域p内部,则将其颜色值属性修改为白色;[0056] 步骤3.6:遍历所有支撑点,计算某个支撑点投影的最底部叶子节点,如果该节点的颜色值属性为白色则修改为灰色。[0057] 其中,颜色值属性包括灰色(gray)、白色(white)和黑色(black)。[0058] 步骤4:由底向上,计算其他非最底部叶子节点的颜色值属性的具体步骤如下:[0059] 步骤4.1:收集当前八叉树的所有颜色值属性为灰色或黑色的最底部叶子节点;[0060] 步骤4.2:使用射线检测,从底向上检测步骤4.1中的节点集合,判断是否与模型相交,具体为:[0061] 每个节点共8个角点,上部4个,下部4个。从底部4个角点和节点的中心点,作为起点向上发射射线,即每个节点向上发射5条射线,对于相交的节点,记录其相交点中最低的点;对于不相交的节点,查找其周围相邻的邻居节点,然后在其邻居节点中查找最低相交点;如果邻居节点也不相交,则从4.1中的节点集合中删除该节点。[0062] 步骤4.3:从底向上,从最底部叶子节点向上发射射线检测,将正上方的所有叶子节点收集起来,每个最底部叶子节点上方的所有叶子节点组合起来放在一个容器;[0063] 步骤4.4:从最大层到根部层,初始化其他所有的节点的颜色值属性,方法为:如果某个节点的所有子节点都为黑色或者都为白色,则该节点为黑色或白色,否则为灰色;[0064] 步骤5:计算处于栅格拐角处的所有叶子节点的角点,将其标记出来;[0065] 步骤6:收集八叉树的框架线;[0066] 其中,八叉树的框架线包括处于内部、外部、拐角、顶部的节点的框架线。[0067] 步骤7:将框架线转换为支撑面片。[0068] 本发明提供了一种基于八叉树的支撑结构生成方法,该方法可适应多种不同的三维模型自动生成支撑结构,生成的支撑结构稳定性强,支撑强度高,原材料消耗少,解决现有的三维模型支撑强度不够,无法支撑模型进行打印的问题,保证了打印的稳定性和打印质量。[0069] 以上仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
专利地区:江苏
专利申请日期:2023-10-08
专利公开日期:2024-03-29
专利公告号:CN117341206B