数控加工几何仿真中基于STL模型的交线环求取算法的制作方法

文档序号:12271859阅读:309来源:国知局
数控加工几何仿真中基于STL模型的交线环求取算法的制作方法与工艺

本发明涉及一种虚拟数控加工领域,特别是关于一种数控加工几何仿真中基于STL模型的交线环求取算法。



背景技术:

目前,国内在基于SLT模型求取交线环的方法很少,主要有两种求取交线环的方法:

(1)通过建立三角形点线面的索引信息,给每个三角形边建立ID编号,通过对三角形进行相交测试,求出所有相交的三角面片的交点,然后再一一提取出交线环的每段交线段,达到提取交线环目的。该算法整体思路较为清晰,但是在三角形相交测试方面并未给出全面具体的方法,且求交过程计算量大,计算较为繁琐,运算效率低。

(2)通过建立三角形之间的拓扑关系,利用六元组的方法记录交线段,对每段交线进行六元组的赋值,根据三角面片的相交情况,分别存储记录交线段和交点,运用邻边的特点在存储记录中一一找出所有的交线段,最终提取交线环。该方法只适用于部分STL模型的布尔运算,在三角形相交情况及交线段的求取上并没有给出具体的方法,运算效率及精确度有待提高。

在整个交线环的求取过程中,涉及到三角面片的相交判断,已有Tropp、Deviller和Guigue等传统算法。其中算法是其它算法的基础,它从几何角度对命题进行简化,最终简化为两段线段的相交判断,此算法思路明确,但整体性能较弱,在共面情况时需进行投影降维另行处理,比较繁琐;Tropp算法是运用代数的方法,采用蛮力算法的思路求解线性方程组,指出方程组是强烈相关的,并充分利用方程组中的共同单元以及矩阵操作中的线性关系来加速问题的解决,虽然算法速度提高了,但由于主要是数值计算,精度会受到累积误差的影响,这对算法的稳定性和准确性会有一定的影响;Deviller和Guigue的算法有些类似,通过构造行列式判断三角形对的初始状态和排除不相交的情况,再从几何角度判断三角形是否相交,是在算法的基础上的改进。



技术实现要素:

针对上述问题,本发明的目的是提供一种数控加工几何仿真中基于STL模型的交线环求取算法,该算法能有效克服现有算法中运算效率低、误差大、考虑不全面等问题,可以有效的提高运算效率及精确度。

为实现上述目的,本发明采取以下技术方案:一种数控加工几何仿真中基于STL模型的交线环求取算法,其特征在于,该算法包括以下步骤:1)建立被加工工件和刀具扫掠体的最小包围盒,滤除不相交的三角面片,运用空间解析法快速求出此求交范围内一组相交的三角面片对;2)利用向量的点乘和叉乘特点,建立矢量判别模型,判断三角面片是否相交,得到相交三角面片对;3)求解步骤2)中确定的相交三角面片对的交线,利用相邻交线段共端点的特点,结合相交三角面片对法向量与交线的关系,依次求出余下交线,得到交线环。

进一步,所述步骤1)中,快速求出一组相交的三角面片对过程如下:1.1)建立包含被加工工件三角面片的最小包围盒A,包含刀具扫掠体三角面片的最小包围盒B,记包围盒表面指向外部的法向方向为正;1.2)滤除在最小包围盒A外的刀具扫掠体上所有完整的三角面片,保留刀具扫掠体上剩余三角面片,滤除在最小包围盒B外部的工件上所有完整的三角面片,保留工件上剩余三角面片;1.3)更新最小包围盒A、最小包围盒B,循环步骤1.2),直到剩余的总三角面片数不再增加为止,建立剩余总三角面片的最小包围盒C;1.4)对最小包围盒C进行空间网格划分,划分为若干个边长为d的小正方体,并对这些正方体网格进行编号,坐标轴上以小正方体的一个边长距离为单位进行标记;1.5)记录并存储每个三角面片所占据的空间网格,选取占据有相同空间网格的三角面片进行相交判断,当检测到相交三角面片对时,停止并且记录此相交三角面片对;反之,则工件与刀具扫掠体不相交。

进一步,所述步骤2)中,三角面片对是否相交的精确判断方法如下:2.1)提取拟进行相交判断的两个三角面片T1和T2,设三角面片T1的3个顶点分别为A1、B1和C1,法向量为三角面片T2的3个顶点分别为A2、B2和C2,法向量为设三角面片T1所在平面为π1,三角面片T2所在平面为π2;2.2)分别计算和如果计算结果中三者为同号且不同时为零,则三角面片T1和T2不相交,则结束判断;2.3)如果计算结果为1,且则表示三角面片T1和T2在一个平面,则转化为平面三角面片相交判断问题;2.4)如计算结果不为1,三角面片T1和T2异面,分别判断线段A1B1、B1C1、C1A1和三角面片T2是否相交、线段A2B2、B2C2、C2A2和三角面片T1是否相交,如果以上判断结果均为否,则三角面片T1和T2不相交;反之,则三角面片T1和T2相交,记录参与相交的边,结束判断。

进一步,所述步骤2.3)中,平面三角面片相交判断方法如下:2.3.1)分别判断三个顶点A1、B1和C1是否在三角面片T2内、三个顶点A2、B2和C2是否在三角面片T1内,如果以上判断结果有一个为真,则三角面片T1和T2相交;如果以上判断结果均为否,进入下一步;2.3.2)判断三角面片T2的三顶点是否在三角面片T1每条边A1B1、B1C1、C1A1异侧,三角面片T1的三顶点是否在三角面片T2每条边A2B2、B2C2、C2A2异侧;如果都满足,则三角面片T1、T2相交,否则不相交。

进一步,所述步骤2.3.1)中,判断三个顶点A1、B1和C1是否在三角面片T2内、三个顶点A2、B2和C2是否在三角面片T1内的算法如下:各顶点判断方法相同,根据STL格式三角面片顶点沿指向实体外部法向方向逆时针排列,以三角面片T2的顶点A2为例,判断其是否在三角面片T1内,分别计算和若三个结果均为非正,点A2在三角面片T1内,否则不在;如果不知道三角面片顶点排列顺序,需计算

和若三个结果均为非负,则点A2在三角面片T1内,否则不在。

进一步,所述步骤2.4)中,判断异面三角面片中边是否与对方三角面片相交的算法如下:以三角面片T2的边A2B2为例,判断其是否与三角面片T1相交;计算和当两式结果都为零时,则线段A2B2与三角面片T1共面;否则线段A2B2与三角面片T1异面:①线段A2B2与三角面片T1异面:首先计算如结果为正,则线段A2B2在平面π1同侧,线段A2B2不与三角面片T1相交;否则点A2和点B2至少有一点不在平面π1上且点A2、B2在平面π1异侧;假设点A2不在平面π1上,分别计算和如果三个结果均为非负,则线段A2B2与三角面片T1相交;否则线段A2B2与三角面片T1不相交;②线段A2B2与三角面片T1共面:分别判断点A2、B2是否在三角面片T1内,若至少存在一点在三角面片T1内,则线段A2B2与T1相交;若点A2、B2都不在三角面片T1内,只有两种情况:线段A2B2与三角面片T1不相交、线段A2B2与三角面片T1相交;如果相交,只能是线段A2B2横穿三角面片T1,此时必存在T1的边与T2异面相交,故这种情况可认定为不相交或不作处理。

进一步,所述步骤3)中,交线环的具体求取过程如下:3.1)由步骤2)找到的一组三角面片对T1、T2,设三角面片T1来自被加工工件,三角面片T2来自刀具扫掠体,由所记录的相交边或顶点信息快速求出两个交点,即为相交三角面片对T1、T2交线的端点,记求出的首段交线为I1I2;3.2)由已知交线I1I2,求其相邻交线;3.3)依次求出剩余的交线,直到求得的交线端点与首段交线端点I1重合为止,最终得到交线环。

进一步,所述步骤3.2)中,相邻交线具体求取过程为:3.2.1)以为方向求下一段交线,则I2为两交线段的公共端点,根据其与三角面片对T1、T2的关系求下段交线所在三角面片对;3.2.2)求交线另一端点:由已求出的相交三角面片对T3、T4,根据三角面片T3的法向量三角面片T4的法向量得到三角面片T3、T4交线所在直线方向向量从而求出交线所在直线L,算出直线L与三角面片T3、T4各边的交点,其中仅有一个满足在三角面片T3或者三角面片T4内部,此点即为交线的另一端点记为I3,求得第二段交线I2I3,同时记录端点I3与三角面片T3、T4的关系为求下一段交线作准备。

进一步,所述步骤3.2.1)中,由公共端点I2与被加工工件上的三角面片T1的关系求第一个相交三角面片,当公共端点I2在三角面片T1内部时,则三角面片T1为所求三角面片;当公共端点I2在三角面片T1边上时,则三角面片T1上公共端点I2所在边的另一个三角面片为所求;当公共端点I2在三角面片T1顶点上时,则三角面片T1上公共端点I2所在顶点所属若干三角面片中的一个为所求,只需对公共端点I2的若干三角面片与刀具扫掠体上求得的三角面片进行相交判定即可;同理由端点I2与三角面片T2的关系求出在刀具扫掠体上的第二个相交三角面片。

进一步,所述步骤3.3)中,每求出一条交线环,则剔除包围盒C中与交线环相交的所有三角面片,在更新的包围盒C中重新检测是否存在相交三角面片对,如果存在,根据上述步骤求出下一条交线环,以此循环直到包围盒C中不存在相交三角面片对为止。

本发明由于采取以上技术方案,其具有以下优点:1、本发明采用包围盒排除法,大大提升了整个算法的速度。2、本发明中的三角面片对的精确判断方法考虑情况全面,计算要求低,判断精度高,鲁棒性好。3、本发明中的三角面片对的精确判断方法不仅可运用于STL格式的三角面片(顶点沿指向实体外部法向方向逆时针排列),也可运用于其它格式的三角面片的判断。4、本发明交线求取效率高,充分利用封闭环的特点,减少运算量。

附图说明

图1是本发明的整体流程示意图;

图2是本发明采用包围盒法快速滤除大部分不相交的三角面片,缩小求交范围并建立包围盒C;

图3是本发明对包围盒C进行空间解析法划分为若干个边长为的的小立方体;

图4a是本发明中三角面片T2三顶点在平面π1同侧时的第一种情况;

图4b是本发明中三角面片T2三顶点在平面π1同同侧时的第二种情况;

图5a是本发明中三角面片T1、T2共面时的第一种情况;

图5b是本发明中三角面片T1、T2共面时的第二种情况;

图5c是本发明中三角面片T1、T2共面时的第三种情况;

图5d是本发明中三角面片T1、T2共面时的第四种情况;

图5e是本发明中三角面片T1、T2共面时的第五种情况;

图6a是本发明中平面内判断点是否在三角面片内的第一种情况;

图6b是本发明中平面内判断点是否在三角面片内的第二种情况;

图6c是本发明中平面内判断点是否在三角面片内的第三种情况;

图6d是本发明中平面内判断点是否在三角面片内的第四种情况;

图7a是本发明中三角面片T2顶点在平面π1异厕时的第一种情况;

图7b是本发明中三角面片T2顶点在平面π1异厕时的第二种情况;

图7c是本发明中三角面片T2顶点在平面π1异厕时的第三种情况;

图7d是本发明中三角面片T2顶点在平面π1异厕时的第四种情况;

图7e是本发明中三角面片T2顶点在平面π1异厕时的第五种情况;

图8a是本发明中三角面片T2一顶点在平面π1上,另两点同侧时的第一种情况;

图8b是本发明中三角面片T2一顶点在平面π1上,另两点同侧时的第二种情况;

图9a是本发明中三角面片T2一顶点在平面π1上,另两点异厕时的第一种情况;

图9b是本发明中三角面片T2一顶点在平面π1上,另两点异厕时的第二种情况;

图9c是本发明中三角面片T2一顶点在平面π1上,另两点异厕时的第三种情况;

图9d是本发明中三角面片T2一顶点在平面π1上,另两点异厕时的第四种情况;

图9e是本发明中三角面片T2一顶点在平面π1上,另两点异厕时的第五种情况;

图9f是本发明中三角面片T2一顶点在平面π1上,另两点异厕时的第六种情况;

图9g是本发明中三角面片T2一顶点在平面π1上,另两点异厕时的第七种情况;

图10a是本发明中三角面片T2两顶点在平面π1上时的第一种情况;

图10b是本发明中三角面片T2两顶点在平面π1上时的第二种情况;

图10c是本发明中三角面片T2两顶点在平面π1上时的第三种情况;

图10d是本发明中三角面片T2两顶点在平面π1上时的第四种情况;

图11a是本发明中判断异面直线是否与三角面片相交的第一种情况;

图11b是本发明中判断异面直线是否与三角面片相交的第二种情况;

图11c是本发明中判断异面直线是否与三角面片相交的第三种情况;

图12a是本发明中判断共面直线是否与三角面片相交的第一种情况;

图12b是本发明中判断共面直线是否与三角面片相交的第二种情况;

图12c是本发明中判断共面直线是否与三角面片相交的第三种情况;

图13是本发明求T1、T2两三角面片的交线示意图;

图14是本发明已知一段交线求相邻交线示意图;

图15a是本发明刀具扫掠体与工件在图示情况下交界处的局部图;

图15b是本发明刀具扫掠体与工件在图15a示情况下所形成的交线环;

具体实施方式

下面结合附图和实施例对本发明进行详细的描述。

如图1所示,本发明提供一种数控加工几何仿真中基于STL模型的交线环求取算法,其包括以下步骤:

1)快速找到一组相交的三角面片对:建立工件和刀具扫掠体的最小包围盒,滤除不相交的三角面片,缩小求交范围,再运用空间解析法求出此求交范围内一组相交的三角面片对;具体包括以下步骤:

1.1)如图2所示,建立包含工件三角面片的最小包围盒A,包含刀具扫掠体三角面片的最小包围盒B,记包围盒表面指向外部的法向方向为正;

1.2)滤除在最小包围盒A外的刀具扫掠体上所有完整的三角面片,保留刀具扫掠体上剩余三角面片,再滤除在最小包围盒B外部的工件上所有完整的三角面片,保留工件上剩余三角面片;

1.3)更新最小包围盒A、最小包围盒B,循环步骤1.2),直到剩余的总三角面片数不再增加为止,建立剩余总三角面片的最小包围盒C;

1.4)如图3所示,对最小包围盒C进行空间网格划分,划分为若干个边长为d的小正方体,并对这些正方体网格进行编号,取(i,j,k)来唯一的标识一个网格,其中i、j、k分别表示网格在X、Y、Z坐标轴上的编号,坐标轴上以小正方体的一个边长距离为单位进行标记,以使每个小立方体都有唯一的坐标与之对应;

1.5)记录并存储每个三角面片所占据的空间网格,选取占据有相同空间网格的三角面片进行相交判断,当检测到相交三角面片对时,立即停止并且记录此相交三角面片对;如果没有检测到相交三角面片对,则工件与刀具扫掠体不相交;其中,选取的优先顺序依据占据相同网格数的多少而定。

2)相交三角面片对的精确判断:利用向量的点乘和叉乘特点,建立矢量判别模型,快速全面判断三角面片对是否相交;具体步骤为:

2.1)提取拟进行相交判断的两个三角面片T1和T2,由STL格式可知三角面片3个顶点沿指向实体外部的法矢量方向逆时针排列,设三角面片T1的3个顶点分别为A1、B1和C1,法向量为三角面片T2的3个顶点分别为A2、B2和C2,法向量为设三角面片T1所在平面为π1,三角面片T2所在平面为π2

2.2)分别计算和如果计算结果中三者为同号且不同时为零,则三角面片T1和T2不相交,如图4所示,结束判断;

2.3)如果计算结果为1,且则表示三角面片T1和T2在一个平面,则转化为平面三角面片相交判断问题:

2.3.1)分别判断三个顶点A1、B1和C1是否在三角面片T2内、三个顶点A2、B2和C2是否在三角面片T1内,如果以上判断结果有一个为真,则三角面片T1和T2相交,此时可能的相交方式如图5a、图5b、图5c和图5d所示,记录相交边,结束判断;如果以上判断结果均为否,进入步骤2.3.2;

其中,判断共面点是否在三角面片内(即三个顶点A1、B1和C1是否在三角面片T2内、三个顶点A2、B2和C2是否在三角面片T1内)的算法如下:

根据STL格式三角面片顶点为沿法向方向逆时针顺序排列,以三角面片T2的顶点A2为例(各顶点判断方法相同),判断其是否在三角面片T1内,分别计算和若三个结果均为非正,则点A2在三角面片T1内,否则不在。

如果不知道三角面片顶点排列顺序,需计算和若三个结果均为非负,则点A2在三角面片T1内,否则不在。

这里已经明确知道三角面片顶点为沿法向方向逆时针排列,以图6a所示情况为例,此时和都是小于0,而大于0,所以点A2不在三角面片T1内部。若三个结果均为非正可具体分为三种情况:(1)三个结果都为负,则点A2在三角面片T1内部,如图6b所示;(2)有一个结果为0,则点A2在三角面片T1边上,如图6c所示,等于0,则点A2在A1C1边上;(3)有两个结果为0,则点A2在三角面片T1顶点上,如图6d所示,此时和的结果都为0,则点A2与点A1重合;依此可完成其它点的判断。

2.3.2)如果相交只有可能是图5e所示情况,只需判断三角面片T2的三顶点是否在三角面片T1每条边A1B1、B1C1、C1A1异侧,三角面片T1的三顶点是否在三角面片T2每条边A2B2、B2C2、C2A2异侧。如果都满足,则三角面片T1、T2相交,否则不相交。

2.4)若计算结果不为1,三角面片T1和T2异面,分别判断线段A1B1、B1C1、C1A1和三角面片T2是否相交、线段A2B2、B2C2、C2A2和三角面片T1是否相交,如果以上判断结果均为否,则三角面片T1和T2不相交,结束判断;如果以上判断结果有一个为真,则三角面片T1和T2相交,记录参与相交的边,结束判断;

异面情况可以细分为多种:当三角面片T2所有顶点不与三角面片T1共面时,所有可能情况如图7a~图7e所示;当三角面片T2存在一顶点与三角面片T1共面,其余两顶点在平面π1同侧时,所有可能情况如图8a、图8b所示;当三角面片T2存在一顶点与三角面片T1共面,其余两顶点在平面π1异侧时,所有可能情况如图9a~图9g所示;当三角面片T2存在两顶点与三角面片T1共面时,所有可能情况如图10a~图10d所示;

其中,判断异面三角面片中边是否与对方三角面片相交的算法如下,以三角面片T2的边A2B2为例,判断其是否与三角面片T1相交:

计算和当两式结果都为零时,则线段A2B2与三角面片T1共面;否则线段A2B2与三角面片T1异面:

①线段A2B2与三角面片T1异面:首先计算如结果为正,则线段A2B2在平面π1同侧,线段A2B2不与三角面片T1相交;否则点A2和点B2至少有一点不在平面π1上且点A2、B2在平面π1异侧。假设点A2不在平面π1上,分别计算和如果三个结果中存在一个结果小于0,则线段A2B2与三角面片T1不相交,如图11a所示,此时小于0,线段A2B2不与三角面片T1相交;如果三个结果均为非负,则线段A2B2与三角面片T1相交,如图11b、图11c所示,均满足三个式子结果为非负。

②线段A2B2与三角面片T1共面:利用步骤2.3.1)中共面点是否在三角面片内的判断方法分别判断点A2、B2是否在三角面片T1内,若至少存在一点在三角面片T1内,则线段A2B2与T1相交,如图12a、图12b所示;若点A2、B2都不在三角面片T1内,只有两种情况:线段A2B2与三角面片T1不相交、线段A2B2与三角面片T1相交。此时如果相交,只能是线段A2B2横穿三角面片T1,这时三角面片T1中必有边与三角面片T2异面相交,如图12c所示,此时T1的边A1C1、B1C1都与T2异面相交。由于三角面片T1、T2的每一条边都要作相交判断,所以当点A2、B2都不在三角面片T1内,可认定为不相交或不作处理,此时不影响三角面片T1、T2相交判定最终结果。

3)交线环的求取:求解步骤2)中确定的相交三角面片对的交线,利用相邻交线段共端点的特点,结合相交三角面片对法向量与交线的关系,依次求出余下交线,得到交线环;具体步骤如下:

3.1)求相交三角面片对交线:由步骤2)找到的一组三角面片对T1、T2,设三角面片T1来自工件,三角面片T2来自刀具扫掠体,由所记录的相交边或顶点信息快速求出两个交点,即为相交三角面片对T1、T2交线的端点,记求出的首段交线为I1I2,如图13所示;

对于相交的三角面片对,交线的端点是由其中一个三角面片的边与另一三角面片相交而得,所以端点与三角面片的关系有且仅有三种:①在三角面片内部;②在三角面片边上;③在三角面片顶点上。

3.2)由已知交线I1I2,求其相邻交线:

3.2.1)求相邻交线所在的相交三角面片对:以为方向求下一段交线,则I2为两交线段的公共端点,根据其与三角面片对T1、T2的关系求下段交线所在三角面片对:

由公共端点I2与工件上的三角面片T1的关系求第一个相交三角面片,当公共端点I2与三角面片T1的关系为情况①(即在三角面片内部)时,则三角面片T1为所求三角面片;

当公共端点I2与三角面片T1的关系为情况②(即在三角面片边上)时,则三角面片T1上公共端点I2所在边的另一个三角面片为所求;

当公共端点I2与三角面片T1的关系为情况③(即在三角面片顶点上)时,则三角面片T1上公共端点I2所在顶点所属若干三角面片中的一个为所求,只需对公共端点I2的若干三角面片与刀具扫掠体上求得的三角面片进行相交判定即可。

同理由端点I1与三角面片T2的关系可求出在刀具扫掠体上的第二个相交三角面片;

例如,如图14所示,I2在T1内部,所以工件上的三角面片T1即为所求,可令其为T3;I2在三角面片T2的边A2C2上,所以刀具扫掠体上与T2有公共边A2C2的相邻三角面片为所求设为T4

3.2.2)求交线另一端点:由步骤3.2.1)已求出相交三角面片对T3、T4,根据三角面片T3的法向量三角面片T4的法向量得到三角面片T3、T4交线所在直线方向向量从而可求出交线所在直线L,算出直线L与三角面片T3、T4各边的交点,其中仅有一个满足在三角面片T3或者三角面片T4内部,此点即为交线的另一端点记为I3,求得第二段交线I2I3,同时记录端点I3与三角面片T3、T4的关系为求下一段交线作准备。

3.3)根据步骤3.2)的方法依次求出剩余的交线,直到求得的交线端点与首段交线端点I1重合为止,最终得到交线环,图15a所示,此时只有一条交线环如图15b所示。考虑到刀具扫掠体与工件可能存在多条交线环,所以每求出一条交线环,则剔除由步骤3)求出的包围盒C中与交线环相交的所有三角面片,在更新的包围盒C中重新检测是否存在相交三角面片对,如果存在,继续重复后续步骤求出下一条交线环,以此循环直到包围盒C中不存在相交三角面片对为止。

上述各实施例仅用于说明本发明,各部件的结构、尺寸、设置位置及形状都是可以有所变化的,在本发明技术方案的基础上,凡根据本发明原理对个别部件进行的改进和等同变换,均不应排除在本发明的保护范围之外。

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