一种基于STL格式的三维模型支撑点获取方法转让专利

申请号 : CN202110575226.4

文献号 : CN113313747B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李祥友贺兵王泽敏兰新强李树寒李桐

申请人 : 华中科技大学鄂州工业技术研究院华中科技大学

摘要 :

本发明涉及3D打印技术领域,具体地说,涉及一种基于STL格式的三维模型支撑点获取方法。其包括以下步骤:快速识别出STL格式的三维模型中需要添加支撑的悬垂区域;根据悬垂区域及其水平投影区域和分层厚度元素确定候选支撑点;所有的候选支撑点进行聚类,聚类后的簇心坐标点作为支撑点,提取支撑点;依据支撑点的辐射区域与模型之间的干涉情况构建支撑中心线;所有的支撑中心线按照三维模型规则构建STL格式的支撑结构体。本发明可以有效避免悬垂区域缺少支撑点的缺陷,所有支撑点均来自于候选支撑点,能够有效减少支撑点的数量,从而缩短支撑后处理的时间和减少支撑点的残余量,消除冗余的支撑点,能够达到间接提高了产品表面质量的目标。

权利要求 :

1.一种基于STL格式的三维模型支撑点获取方法,其特征在于,包括以下步骤:识别STL格式的三维模型中需要添加支撑的悬垂区域;

根据所述悬垂区域、所述悬垂区域的水平投影区域和所述悬垂区域的分层厚度元素,确定候选支撑点;

将所有的所述候选支撑点进行聚类,聚类后的簇心坐标点作为支撑点,提取所述支撑点;

依据提取的所述支撑点的辐射区域与模型之间的干涉情况构建支撑中心线;

根据所有的所述支撑中心线按照三维模型规则构建STL格式的支撑结构体;

所述确定候选支撑点包括以下步骤:

将每一个悬垂区域和悬吊线与设定的分层厚度做相交运算,得到有序的三维轮廓点;

将悬垂区域投影到XOY水平面,将投影区域按照2mm‑20mm的间距划分成多个子投影区域;

确保每一个子投影区域的立体空间内必须存在一个以上的三维轮廓点;如果子投影区域的立体空间仅存在一个三维轮廓点,则该三维轮廓点为候选支撑点;如果子投影区域的立体空间不存在三维轮廓点,则子投影区域的中心坐标映射到悬垂区域的坐标点为候选支撑点;如果子投影区域的立体空间存在一个以上的三维轮廓点,则将同一层的三维轮廓点中,线段长度<0.5mm的起始坐标点剔除,且将同一层的相邻线段之间夹角θ≥150°的中间三维轮廓点剔除,剔除后剩余的三维轮廓点就是候选支撑点。

2.根据权利要求1所述的基于STL格式的三维模型支撑点获取方法,其特征在于:所述悬垂区域的基本元素包括:悬垂三角面片,采用多线程的方式从模型中快速提取所有法向量的Z分量Fz≤η的三角面片,其中,‑1≤η≤‑0.5;

悬吊线,根据相关特征从模型中快速提取对应的悬吊线;

悬吊点,根据相关特征从模型中快速提取对应悬吊点。

3.根据权利要求1所述的基于STL格式的三维模型支撑点获取方法,其特征在于:所述提取支撑点包括以下步骤:将独立悬垂区域内所有的候选支撑点集合按照簇的最大半径和最小间距分割成多个簇,所述最大半径为0.5‑5mm,所述最小间距为1‑15mm;

采用聚类算法对所有的候选支撑点进行聚类,所述聚类算法能够将三维空间坐标相近的候选支撑点划分到同一个簇中,所述聚类算法包括K‑Means算法、k‑medoids算法、k‑modes算法、k‑medians算法和kernelk‑means算法中的其中一种;

待聚类结束后,靠近簇心最近的候选支撑点作为支撑点、簇中最远的候选支撑点的间距作为支撑点的直径。

4.根据权利要求1所述的基于STL格式的三维模型支撑点获取方法,其特征在于:所述聚类算法包括以下步骤:随机地选择k个数据对象,每个数据对象代表一个簇中心,即选择k个初始中心;

对剩余的每个对象,根据其与各簇中心的相似度,将它赋给与其最相似的簇中心对应的簇;

然后重新计算每个簇中所有对象的平均值,作为新的簇中心;

不断重复以上这个过程,直到簇中心不发生明显的变化。

5.根据权利要求1所述的基于STL格式的三维模型支撑点获取方法,其特征在于:所述构建支撑中心线采用树状的枝干连接法则,树状的枝干连接法则用于实现支撑点衍生出树状支撑的中心线段。

6.根据权利要求5所述的基于STL格式的三维模型支撑点获取方法,其特征在于:所述树状的枝干连接法则包括以下步骤:将所有支撑点按照坐标的z分量从高到低进行排序,得到有序的支撑点链表;

链表中的每两个支撑点之间做干涉处理,得到最大干涉距离的新支撑点;

将支撑点P1及满足条件的支撑点Pi从支撑点链表中剔除,同时将交点坐标插入支撑点链表;

将支撑点P1从支撑点链表中剔除,并提取下一支撑点P2替代上述支撑点P1做上述相同的操作,直到支撑点链表是空为止,确定支撑中心线。

7.根据权利要求6所述的基于STL格式的三维模型支撑点获取方法,其特征在于:所述干涉处理包括以下步骤:从链表中提取首个支撑点P1与后续每一个支撑点Pi在XOY平面内的投影点组成的平面

0 0

内做向下做5‑60角度的锥形辐射,得到交点坐标P;

如果支撑点P的z分量小于等于0,则认为支撑点P1与另外一个支撑点Pi无法衍生支撑中心线,由此提取下一个支撑点Pi+1与P1做干涉处理,依次类推,直到链表中无候选支撑点可以提取;

如果支撑点P的z分量大于0,将支撑点P1和P组成线段L1、Pi和P组成线段L2,将这两条线段与STL格式的三维模型做预干涉处理,Pi中,i为整数。

8.根据权利要求1所述的基于STL格式的三维模型支撑点获取方法,其特征在于:所述三维模型规则根据支撑中心线为轴、以顶齿宽度为半径、支撑形状、齿的顶宽及间距参数,将支撑中心线扩充为支撑结构,将支撑结构转换为STL格式的三维模型。

说明书 :

一种基于STL格式的三维模型支撑点获取方法

技术领域

[0001] 本发明涉及3D打印技术领域,具体地说,涉及一种基于STL格式的三维模型支撑点获取方法。

背景技术

[0002] 支撑点是支撑结构与模型实体之间接触区域的中心坐标点。它作为支撑结构的关键部分,直接关系着支撑结构在3D打印的过程中能否辅助材料顺利堆积成型。合理部署的支撑点不仅能够确保所有悬垂面(模型实体的)都能得到支撑结构的辅助,而且能够避免支撑结构的冗余;
[0003] 然而,当前主流获取支撑点的方法是从悬垂元素的相关区域中提取出支撑点。这种方法获取的支撑点是从悬垂区域在XOY平面的投影区域网格中提取的坐标点(一般是网格的中心坐标点),因此,该方法获取的支撑点与实际需求的支撑点存在位置和数量上的偏差;而非主流获取支撑点的方法则是从各分层轮廓之间的差区域中提取出支撑点,该方法的运算量与模型的层厚、高度、精度成正相关。在部分大模型、高精度模型或者精细分层的情况下,该方法存在等待时间过长、内存消耗过大等显著缺陷,鉴于此,我们提出一种基于STL格式的三维模型支撑点获取方法。

发明内容

[0004] 本发明的目的在于提供一种基于STL格式的三维模型支撑点获取方法,以解决上述背景技术中提出的问题。
[0005] 为实现上述目的,本发明提供一种基于STL格式的三维模型支撑点获取方法,包括以下步骤:
[0006] 识别STL格式的三维模型中需要添加支撑的悬垂区域;
[0007] 根据所述悬垂区域、所述悬垂区域的水平投影区域和所述悬垂区域的分层厚度元素,确定候选支撑点;
[0008] 将所有的所述候选支撑点进行聚类,聚类后的簇心坐标点作为支撑点,提取所述支撑点;
[0009] 依据提取的所述支撑点的辐射区域与模型之间的干涉情况构建支撑中心线;
[0010] 根据所有的所述支撑中心线按照三维模型规则构建STL格式的支撑结构体。
[0011] 作为本技术方案的进一步改进,所述悬垂区域的基本元素包括:
[0012] 悬垂三角面片,采用多线程的方式从模型中快速提取所有法向量的Z分量Fz≤η(‑1<η≤‑0.5)的三角面片;
[0013] 悬吊线,根据相关特征从模型中快速提取对应的悬吊线,悬吊线需要同时满足三个条件:
[0014] ①悬吊线在Z轴负方向的矢量δ≤η;
[0015] ②所有三角面片(悬吊线是其中一条线段)的Fz>η;
[0016] ③至少有一个三角面片(悬吊线是其中一条线段)的Fz<0;
[0017] 悬吊点,根据相关特征从模型中快速提取对应悬吊点,悬吊点同样也需要满足三个条件:
[0018] ①三角面片(悬吊点是其中一个坐标点)的Fz>η;
[0019] ②它是所有三角面片(悬吊点是三角面片的其中一个坐标点)中Z分量最低的坐标点;
[0020] ③三角面片中任意一个坐标点和悬吊点组成的线段不满足悬吊线的要求;
[0021] 提取完上述三类基本元素后,将所有离散的悬垂三角面片按照共边关系联合形成一个悬垂区域。通过上述技术方案,不仅保留了快速提取特征元素的环节,又结合了层多边形差区域中精准提取支撑点的步骤。因此,具有运算效率高、内存消耗少、定位精度高等诸多优势。
[0022] 作为本技术方案的进一步改进,所述确定候选支撑点包括以下步骤:
[0023] 将每一个悬垂区域、悬吊线与设定的分层厚度(0.05‑0.5mm)做相交运算,得到有序的三维轮廓点;
[0024] 将对应的悬垂区域投影到XOY水平面,投影区域按照2mm‑20mm的间距划分成多个子投影区域;
[0025] 然后,确保每一个子投影区域的立体空间内必须存在一个以上的三维轮廓点作为候选支撑点;如果子投影区域的立体空间仅存在一个三维轮廓点,则该三维轮廓点为候选支撑点;如果子投影区域的立体空间不存在三维轮廓点,则子投影区域的中心坐标映射到悬垂区域的坐标点为候选支撑点;如果子投影区域的立体空间存在一个以上的三维轮廓点,则将同一层的三维轮廓点中线段长度<0.5mm的起始坐标点剔除;将同一层的相邻线段之间夹角θ≥150°的中间三维轮廓点剔除;所有剩下的三维轮廓点就是候选支撑点。
[0026] 由此可见,确保所有悬垂区域的关键位置都存在支撑点的辅助,可以有效避免悬垂区域缺少支撑点的缺陷。
[0027] 作为本技术方案的进一步改进,所述提取支撑点包括以下步骤:
[0028] 将独立悬垂区域内所有的候选支撑点按照簇的最大半径(0.5‑5mm)、最小间距(1‑10mm)划分成多个簇;
[0029] 采用聚类算法对所有的候选支撑点进行聚类,所述聚类算法能够将三维空间坐标相近的候选支撑点划分到同一个簇中,包括K‑Means算法、k‑medoids算法、k‑modes算法、k‑medians算法和kernelk‑means算法;
[0030] 待聚类结束后,靠近簇心最近的候选支撑点作为支撑点、簇中最远的候选支撑点的间距作为支撑点的直径;
[0031] 所有支撑点均来自于候选支撑点,即不会产生多余的支撑点。因此,能够有效减少支撑点的数量,从而缩短支撑后处理的时间和减少支撑点的残余量。同时,消除了冗余的支撑点,间接提高了产品表面质量。
[0032] 作为本技术方案的进一步改进,所述聚类算法包括以下步骤:
[0033] 随机地选择k个数据对象,每个数据对象代表一个簇中心,即选择k个初始中心;
[0034] 对剩余的所有候选支撑点,根据其与各簇中心的相似度,将它赋给与其最相似的簇中心对应的簇;
[0035] 然后重新计算每个簇中所有对象的平均值,作为新的簇中心;
[0036] 不断重复以上这个过程,直到簇中心不发生明显的变化。
[0037] 作为本技术方案的进一步改进,所述构建支撑中心线采用树状的枝干连接法则,树状的枝干连接法则用于实现支撑点衍生出树状支撑的中心线段,可以选择网格、轮廓、块状、线状、点状、肋状、综合、锥形等其他多种支撑类型。
[0038] 作为本技术方案的进一步改进,所述树状的枝干连接法则包括以下步骤:
[0039] 将所有支撑点按照坐标的z分量从高到低进行排序,得到有序的支撑点链表;
[0040] 链表中的每两个支撑点之间做干涉处理,得到最大干涉距离的新支撑点;
[0041] 将支撑点P1及满足条件的支撑点Pi从支撑点链表中剔除,同时将交点坐标插入支撑点链表;
[0042] 将支撑点P1从支撑点链表中剔除,并提取下一支撑点P2替代上述支撑点P1做上述相同的操作。以此类推,直到支撑点链表是空为止。
[0043] 作为本技术方案的进一步改进,所述干涉处理包括以下步骤:
[0044] 从链表中提取首个支撑点P1与后续每一个支撑点Pi(i=2,3…)在XOY平面内的投影点组成的平面内做向下5‑60°角度锥形辐射,得到交点坐标P;
[0045] 如果支撑点P的z分量小于等于0,则认为支撑点P1与另外一个支撑点Pi无法衍生支撑中心线。此时,提取下一个支撑点Pi+1与P1做干涉处理。依次类推,直到链表中无支撑点可以提取为止;
[0046] 如果支撑点P的z分量大于0,将支撑点P1和P组成线段L1、Pi和P组成线段L2,将这两条线段与STL格式的三维模型做预干涉处理;如果线段L1以及L2穿过STL格式的三维模型中任意一个三角面片,则判定线段L1以及L2与STL格式的三维模型存在干涉,这也意味着P1与P2无法衍生出支撑中心线;否则,记录下L1、L2以及两条线段到STL格式的三维模型的最小距离;
[0047] 待支撑点链表中P1与所有的Pi都完成预干涉处理后;如果P1与所有的Pi都无法衍生出支撑中心线,则P1做单点辐射;单点辐射是将P1与其在XOY平面投影点P1’组成直线做特定角度(如θ=2‑40°)锥形辐射;如果直线P1和P1’与三维模型存在交点P,则P1P作为支撑中心线;否则,P1P1’作为支撑中心线。如果P1与多个Pi衍生出多条支撑中心线,则将距离大于等于齿间间隙1mm的最短线段对应L1以及L2作为支撑中心线。
[0048] 作为本技术方案的进一步改进,所述三维模型规则根据支撑中心线为轴、以顶齿宽度为半径、支撑形状、齿的顶宽及间距参数,将支撑中心线扩充为支撑结构,将支撑结构转换为STL格式的三维模型。
[0049] 与现有技术相比,本发明的有益效果:
[0050] 该基于STL格式的三维模型支撑点获取方法中,通过实现快速提取特征元素的环节,又结合了层多边形差区域中精准提取支撑点的步骤,具有效率高、内存消耗少、定位精度高等优势。它在确保所有悬垂区域的关键位置都存在支撑点辅助的基础上,可以有效避免悬垂区域缺少支撑点的缺陷。同时所有支撑点均来自于候选支撑点,即不会产生多余的支撑点,因此,能够有效减少支撑点的数量,从而缩短支撑后处理的时间和减少支撑点的残余量,消除冗余支撑点,能够达到间接提高了产品表面质量的目标。

附图说明

[0051] 图1为实施例1的整体流程图;
[0052] 图2为实施例1的整体算法原理图;
[0053] 图3为实施例1的三角面片原理图;
[0054] 图4为实施例1的悬垂三角面片、悬吊线、悬吊点这三类悬垂元素原理图;
[0055] 图5为实施例1的提取出候选支撑点原理图;
[0056] 图6为实施例1的提取支撑点原理图;
[0057] 图7为实施例1的构建支撑中心线原理图。

具体实施方式

[0058] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0059] 实施例1
[0060] 请参阅图1‑图7所示,本实施例提供一种基于STL格式的三维模型支撑点获取方法,具体如图1‑2所示,包括以下步骤:
[0061] S1、快速识别出STL格式的三维模型中需要添加支撑的悬垂区域;
[0062] S2、根据悬垂区域及其水平投影区域和分层厚度元素确定候选支撑点;
[0063] S3、所有的候选支撑点进行聚类,聚类后的簇心坐标点作为支撑点;
[0064] S4、依据两两支撑点辐射区域的相交线与模型之间的干涉情况构建支撑中心线;
[0065] S5、所有的支撑中心线按照三维模型规则构建STL格式的支撑结构体。
[0066] 本实施例中的快速提取特征元素的环节,如图3‑4所示。所述悬垂区域的基本元素包括:
[0067] 悬垂三角面片:采用多线程的方式从模型中快速提取所有法向量的Z分量Fz≤‑0.5的三角面片;
[0068] 悬吊线:根据相关特征从模型中快速提取对应的悬吊线。悬吊线需要同时满足以下三个基本特征:
[0069] ①吊线在Z轴负方向的矢量δ≤‑0.5;
[0070] ②所有三角面片(悬吊线是其中一条线段)的Fz>η(‑1<η≤‑0.5);
[0071] ③至少有一个三角面片(悬吊线是其中一条线段)的Fz<η(‑1<η≤‑0.5);
[0072] 悬吊点:根据相关特征从模型中快速提取对应悬吊点。悬吊点同样也需要满足三个条件:
[0073] ①三角面片(悬吊点是其中一个坐标点)的Fz>η(‑1<η≤‑0.5);
[0074] ②它是所有三角面片(悬吊点是三角面片的其中一个坐标点)中Z分量最低的坐标点;
[0075] ③三角面片中任意一个坐标点和悬吊点组成的线段不满足悬吊线的要求;
[0076] 提取完上述三类基本元素后,将所有离散的悬垂三角面片按照共边关系联合形成一个悬垂区域,实现快速提取特征元素的环节,又结合了层多边形差区域中精准提取支撑点的步骤,具有效率高、内存消耗少、定位精度高等优势。
[0077] 进一步的,从所述的悬垂区域中提取候选支撑点,过程如图5所示。确定候选支撑点包括以下步骤:
[0078] 将每一个悬垂区域和悬吊线与设定的分层厚度(z=0.2mm)做相交运算,得到有序的三维轮廓点;
[0079] 将悬垂区域投影到XOY水平面,将投影区域按照10mm间距划分成多个子投影区域;
[0080] 确保每一个子投影区域的立体空间内必须存在一个以上的三维轮廓点。如果子投影区域的立体空间仅存在一个三维轮廓点,则该三维轮廓点为候选支撑点。如果子投影区域的立体空间不存在三维轮廓点,则子投影区域的中心坐标映射到悬垂区域的坐标点为候选支撑点。如果子投影区域的立体空间存在一个以上的三维轮廓点,则将同一层的三维轮廓点中线段长度<0.5mm的起始坐标点剔除;最后,将同一层的相邻线段之间夹角θ≥150°的中间三维轮廓点剔除;所有剩余的三维轮廓点即为候选支撑点。
[0081] 该步骤能够确保所有的候选支撑点来自于悬垂区域的三维轮廓点,有效的消除了无用支撑点。
[0082] 值得说明的,为了进一步消除冗余的支撑点,本方法采用了聚类算法提取支撑点,如图6所示。所述提取支撑点的过程包括以下几个步骤:
[0083] 将独立悬垂区域内所有的候选支撑点集合按照簇的最大半径(0.5‑5)mm和最小间距(1‑15)mm分割成多个簇;
[0084] 采用聚类算法对所有的候选支撑点进行聚类,所述K‑Means聚类算法能够将三维空间坐标相近的候选支撑点划分到同一个簇中;
[0085] 待聚类结束后,靠近簇心最近的候选支撑点作为支撑点、簇中最远的候选支撑点的间距作为支撑点的直径;
[0086] 所有支撑点均来自于候选支撑点,即不会产生多余的支撑点,因此,能够有效减少支撑点的数量,从而缩短支撑后处理的时间和减少支撑点的残余量。消除冗余的支撑点,能够达到提高产品表面质量的目的。
[0087] 具体的,所述聚类算法包括以下步骤:
[0088] 随机地选择k个数据对象,每个数据对象代表一个簇中心,即选择k个初始中心;
[0089] 对剩余的每个对象,根据其与各簇中心的相似度,将它赋给与其最相似的簇中心对应的簇;
[0090] 然后重新计算每个簇中所有对象的平均值,作为新的簇中心;
[0091] 不断重复以上这个过程,直到簇中心不发生明显的变化。
[0092] 进一步的,如图7所示。为了准确的确定支撑中心线,构建支撑中心线采用树状的枝干连接法则,树状的枝干连接法则用于实现支撑点衍生出树状支撑的中心线段,可以选择网格、轮廓、块状、线状、点状、肋状、综合、锥形等其他多种支撑类型。
[0093] 其中,所述树状的枝干连接法则包括以下步骤:
[0094] 将所有支撑点按照坐标的z分量从高到低进行排序,得到有序的支撑点链表;
[0095] 链表中的每两个支撑点之间做干涉处理,得到最大干涉距离的新支撑点;
[0096] 将支撑点P1及满足条件的支撑点Pi从支撑点链表中剔除,同时将交点坐标插入支撑点链表;
[0097] 将支撑点P1从支撑点链表中剔除,并提取下一支撑点P2替代上述支撑点P1做上述相同的操作,直到支撑点链表是空为止,确定支撑中心线。
[0098] 具体的,为了使每两个支撑点之间做干涉处理更完整,所述干涉处理包括以下步骤:
[0099] 从链表中提取首个支撑点P1与后续每一个支撑点Pi(i=1,2,3…)在XOY平面内的投影点组成的平面内做向下做30°角度锥形辐射,得到交点坐标P;
[0100] 如果支撑点P的z分量小于等于0,则认为支撑点P1与另外一个支撑点Pi无法衍生支撑中心线,提取下一个支撑点Pi+1与P1做干涉处理,依次类推,直到链表中无支撑点可以提取;
[0101] 如果支撑点P的分量大于0,将支撑点P1和P组成线段L1、Pi和P组成线段L2,将这两条线段与STL格式的三维模型做预干涉处理;如果线段L1以及L2穿过STL格式的三维模型中任意一个三角面片,则判定线段L1以及L2与STL格式的三维模型存在干涉,这也意味着P1与P2无法衍生出支撑中心线;否则记录下L1、L2以及两条线段到STL格式的三维模型的最小距离;
[0102] 待支撑点链表中P1与所有的Pi都完成预干涉处理后,如果P1与所有的Pi都无法衍生出支撑中心线,则P1做单点辐射;单点辐射是将P1与其在XOY平面投影点P1’组成直线做30°锥形辐射;如果直线P1和P1’与三维模型存在交点P,则P1P作为支撑中心线;否则P1P1’作为支撑中心线;如果P1与多个Pi衍生出多条支撑中心线,则将最小距离大于等于齿间间隙
1mm的最短线段对应L1以及L2作为支撑中心线。
[0103] 除此之外,为了可以将支撑结构转换为STL格式的三维模型,所述三维模型规则根据支撑中心线为轴、以顶齿宽度为半径、支撑形状、齿的顶宽及间距参数,将支撑中心线扩充为支撑结构,将支撑结构转换为STL格式的三维模型。
[0104] 以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的仅为本发明的优选例,并不用来限制本发明,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。