插补处理方法以及插补处理装置的制作方法

文档序号:6478134阅读:286来源:国知局
专利名称:插补处理方法以及插补处理装置的制作方法
技术领域
本发明涉及对点群数据进行插补或近似,来生成曲线或者曲面的拟合处理方法、拟合处理装置、以及使CPU执行该拟合处理的程序。

背景技术
在船舶、汽车、飞机等各种工业产品的机体上使用自由曲面,兼具功能性和美感这两方面的优点,并且在家用电子产品或多种消费品的外观等具有创造性美感的外形的设计中使用自由曲面。
近年来,通过3D激光扫描可以高速并且容易地收集高密度的点群数据,可以高精度地测定物体形状。例如,在3D建模领域中,使用所谓的形状的逆向工程的方法,即通过3D激光扫描测量设计者通过手工作业作成的实体模型,根据输入到计算机中的点群数据或多边形数据,生成为了生产产品所需要的曲面数据等CAD数据。
一般通过实体模型或NURBS或B-Spline等曲面碎片,在计算机上表现3D模型。
已知在CAD/CAM中根据点群的位置信息对B-Spline、NURBS、细分等曲线或曲面进行插补或近似的方法(非专利文献1、专利文献1)。在该插补或近似中,除了各点的位置信息之外还附加法线信息,由此可以提高设计的自由度,可以提高偏移曲线或曲面的近似精度。
非专利文献1les Piegel,Wayne Tiller“The NURBS Book”P373~P376Springer-Verlag Berlin Heidenberg 1995 and 1997 专利文献1特开2004-192209号公报

发明内容
在包含法线的插补中,与仅对点群的位置进行修正的情况相比,控制点的个数增加。例如,在为曲线时,控制点的点数是插补点数的2倍,在为曲面时,控制点的点数是插补点数的3倍。
并且,在为了指定法线而使用的切线矢量中,除了与方向有关的信息之外,还需要在各插补点指定大小的信息。因为通过人工反复进行在各插补点的切线矢量大小的指定以及根据指定的大小得到的曲线或曲面的插补结果的评价,所以该切线矢量大小的指定需要花费插补处理的大量时间和负担。
因此,在除了点群的位置信息之外通过附加法线信息进行的插补处理中,由于控制点的增加和切线矢量的方向和大小的指定等,存在需要设定的数据量增加的问题。该数据量的增加除了引起运算处理的处理时间增加之外,还有人工要进行的处理也会变多的问题。
另外,控制点增加时,有时会在曲线中产生不需要的振动。
因此,本发明的目的在于解决上述现有的问题点,在使用了点群的位置信息和法线信息的插补处理中,降低处理数据的数据量。
更详细地说,目的在于在使用了点群的位置信息和法线信息的插补处理中,抑制控制点的增加,此外,目的还在于不需要指定切线矢量的大小。
本发明根据成为拟合对象的点群被给出的状态,求出对该点群进行插补的曲线或曲面。首先,使成为拟合对象的点群为初始控制点,使用该控制点群的控制点生成曲线或曲面。通过该控制点表示的曲线可以应用B-Spline,此外,通过控制点表示的曲面可以应用B-Spline曲面或细分曲面。
然后,使相同的点群为插补点,通过使生成曲线或曲面时得到的控制点移动,使用生成的曲线或曲面对插补点进行插补。以下将曲线或曲面表记为曲线·曲面来进行说明。
在本发明的插补处理中,在使用生成的曲线·曲面对插补点进行插补时,使用构成点群的插补点的位置信息和在各插补点设定的单位方向矢量的矢量信息,计算出使控制点移动的移动矢量,使控制点在该移动矢量的移动方向上移动移动量。
通过重复进行上述的、对插补点进行插补的曲线·曲面的生成以及控制点移动的工序,求出对于点群的位置以及单位方向矢量拟合曲线·曲面的控制点位置。
在本发明中,关于在插补点决定的位置和方向,在位置误差和角度误差小于预定的大小之前,一直重复进行第一工序、第二工序以及第三工序,所述第一工序求出与各点群的距离最短的曲线·曲面上的点,所述第二工序求出具有曲线·曲面上的切线和所设定的单位方向矢量垂直的切线的点,所述第三工序求出从第二工序求得的点向各点群的矢量使各控制点移动该矢量。
关于位置误差,在点群和曲线·曲面的距离满足阈值之前,此外在小于阈值之前,一直重复进行上述的第一、第二、第三工序来使其减小。此外,关于角度误差,在曲线·曲面上的与点群的距离最短的点的法线矢量和在插补点设定的单位方向矢量的角度差满足阈值之前,此外在小于阈值之前,一直重复进行第一工序、第二工序以及第三工序来使其减少。由此,生成对点群进行拟合的曲线·曲面。
本发明具有插补处理方法的方式和插补处理装置的方式。
插补处理方法的方式是根据由控制点定义的曲线·曲面对点群进行插补的插补处理方法,点群具有插补点的位置信息、以及决定在该插补点的曲线或曲面的方向的单位方向矢量的矢量信息。
插补处理包含第一插补工序、第二插补工序和第三插补工序,第一插补工序进行在由控制点定义的曲线·曲面中,根据插补点的位置信息,求出从插补点落在曲线·曲面上的垂线的垂足来作为第一点的几何算法的运算,第二插补工序进行根据矢量信息,求出与单位方向矢量垂直相交的曲线的切线或曲面的切平面的切点来作为第二点的几何算法的运算,第三插补工序进行求出从第一点向插补点的矢量、从第二点向所述插补点的矢量、以及从第二点向第一点的矢量来作为移动矢量,使用从所述三个移动矢量选择出的移动矢量移动定义曲线或曲面的控制点的位置,将移动后的位置决定为新的曲线或曲面的控制点的位置的几何算法的运算。通过纳入了几何算法的运算单元来执行进行这些各插补工序的运算处理。
此外,在插补处理装置的方式中,是通过由控制点定义的曲线或曲面对点群进行插补的插补处理装置,点群具有插补点的位置信息、以及在该插补点决定曲线或曲面的方向以及曲率的单位方向矢量的矢量信息。
作为进行插补处理的结构,插补处理装置具有第一~第三几何运算单元。
第一几何运算单元,通过在由控制点定义的曲线或曲面中,根据插补点的位置信息,求出从插补点下落到曲线上或曲面上的垂足来作为第一点的几何算法,来进行第一插补工序。
第二几何运算单元,通过根据矢量信息,求出与单位方向矢量垂直相交的曲线的切线或曲面的切平面的切点来作为第二点的几何算法,来进行第二插补工序。
第三几何运算单元,通过求出从第一点向插补点的矢量、从第二点向所述插补点的矢量、以及从第二点向第一点的矢量来作为移动矢量,使用某一个移动矢量移动定义曲线或曲面的控制点的位置,将移动后的位置决定为新的曲线或曲面的控制点的位置的几何算法,来进行第三插补工序。
在此,第一几何运算单元、第二几何运算单元以及第三几何运算单元,可以做成具备用于通过软件执行各几何算法的CPU以及存储装置,或用于通过硬件执行各几何算法的电路的结构。
在本发明中,决定曲线·曲面的方向或曲率的单位方向矢量可以仅具有方向的信息,不具有与大小有关的信息。此外,除了使该单位方向矢量为对插补点进行插补的曲线或曲面上的插补点处的法线矢量之外,还可以为与法线矢量具有预定的角度关系的方向矢量。
插补处理的结束,一直重复到被判断为曲线·曲面充分地对插补点进行了插补的时刻。基于该重复的收敛,可以将距离和角度差作为指标来进行。
在以距离为指标进行重复时,根据通过运算处理得到的控制点求出新的曲线·曲面,把插补点与求出的曲线或曲面的距离和阈值进行比较,在该距离满足阈值之前,或者在小于阈值之前,一直重复第一插补工序、第二插补工序以及第三插补工序。
此外,在以角度为指标进行重复时,根据通过运算处理得到的控制点求出新的曲线·曲面,求出在各插补点设定的单位方向矢量和在第一插补工序中求出的成为垂足的第一点处的曲线或曲面的法线矢量所形成的角度差,将该两矢量的角度差与阈值进行比较,在角度差满足阈值之前,或者在小于阈值之前,一直重复第一插补工序、第二插补工序以及第三插补工序。
上述的以距离为指标的收敛和以角度差为指标的收敛,除了各自单独地进行之外,还可以将双方组合起来进行。
此外,在本发明的插补处理中,当首先在点群被给出的状态下开始插补处理时,在第一次进行的各插补工序中,将所给出的点群的插补点作为初始控制点来生成曲线·曲面,通过进行各几何算法的运算来生成控制点。然后,在第二次及以后进行的插补工序中,把在插补工序中得到的控制点的位置作为新的控制点的位置,通过进行各几何算法的运算来修正控制点,重复以上的插补工序。
本发明的插补处理因为局部地处理各控制点,所以在不需要线性系统本身的基础上,可以仅通过几何学的工序生成对点群进行拟合的曲线·曲面。因此,根据本发明的插补处理,与现有方法相比,在为曲线时可以将定义曲线·曲面的控制点的数量减少到二分之一,在为曲面时可以将定义曲线·曲面的控制点的数量减少到三分之一。
此外,在本发明的插补处理中,在插补点设定的单位方向矢量作为矢量信息仅包含方向,而不需要有关大小的信息。在现有的使用切线矢量的处理中,需要一边通过目视观察曲线或曲面的形状一边逐次在曲线或曲面上的各点进行切线矢量的大小的变更,来进行拟合,需要较多的劳力和时间,但根据本发明,在从工序开始到结束的期间内,可以无需人工介入地进行曲线·曲面的拟合。另外,在此所说的拟合假定为是包含插补和近似这两方面。
如上所述,根据本发明,在使用点群的位置信息和法线信息的插补处理中,可以抑制控制点的增加,可以减低处理数据的处理量。
此外,在使用点群的位置信息和法线信息的插补处理中,不需要指定切线矢量的大小,可以使自动插补变得容易。
此外,可以抑制伴随控制点的增加而产生的、插补时的不必要的振动。



图1是用于说明本发明的插补处理的概要的概要图。
图2是用于说明本发明的插补处理的概要的流程图。
图3用于说明本发明的插补处理的第一、第二插补工序。
图4用于说明本发明的插补处理的第三插补工序。
图5是本发明的插补处理装置的概要结构图。
图6是用于说明由本发明的二维点群生成曲线的情形的流程图。
图7是用于说明由本发明的二维点群生成曲线的情形的控制点和曲线的概要图。
图8是用于说明由本发明的二维点群生成曲线的情形的控制点和曲线的概要图。
图9是用于说明由本发明的二维点群生成曲线的情形的控制点和曲线的概要图。
图10表示对本发明的二维点群进行插补的曲线例子。
图11将本发明的插补结果与现有方法的插补结果进行比较。
图12将本发明的插补结果与现有方法的插补结果进行比较。
图13是用于说明由三维点群生成曲面的情形的流程图。
符号说明 1输入单元、2存储单元、2a数据存储部、2b运算工具程序存储部、2c运算处理程序存储部、2d一次存储部、2e运算结果存储部、3运算单元、4显示单元、5输出单元
具体实施例方式 以下一边参照附图一边对本发明的实施方式进行详细说明。以下,作为由控制点定义的曲线·曲面,主要说明B-Spline曲线·曲面,但本发明并不限于B-Spline曲线·曲面,关于使用控制点表现的细分曲面等曲线·曲面,也可以同样地应用。
图1是用于说明本发明的插补处理的概要图,图2是用于说明本发明的插补处理的流程图,图3、图4用于说明本发明的插补处理。此外,图5是本发明的插补处理的概要结构图。此外,图5是本发明的插补处理装置的概要结构图。
图1、图2、图3、图4概要性地表示了给予包含位置信息以及单位方向矢量的矢量信息的点群Q,根据这些点群Q求出B-Spline曲线的顺序。以下作为单位方向矢量说明法线矢量的例子。在单位方向矢量为法线矢量以外的矢量时,通过相对于法线矢量设定预定的角度关系,由此可以确定单位方向矢量的方向。
此外,在此,将成为插补对象的点群简单地称为点群,把通过输入对各点群给出的法线矢量简单地称为法线矢量。
在此主要说明曲线,但在曲面中也可以同样地处理。
以下,使用图1的概要图和图2的流程图,说明根据所给出的点群Q生成B-Spline曲线·曲面的顺序。
首先,将所给出的点群Q作成初始控制点P0。点群Q包含各点的位置信息和在各点设定的方向信息。方向信息是决定对点群进行插补的曲线或曲面的方向或曲率的信息,可以通过单位方向矢量来表示。单位方向矢量可以仅具有方向的信息,而不具有大小的信息。除了使单位方向矢量为该点的法线矢量之外,例如还可以为相对于该法线矢量具有预定的角度关系的矢量。以下,作为单位方向矢量,说明法线矢量的例子。图1中(S1)所示的部位的左方表示点群Q和在该点的法线矢量N*(在图中N上表记为箭头),右方表示以该点群Q为初始控制点,通过直线连接这些初始控制点时的形状(S1)。
在第一次的B-Spline曲线·曲面的生成中,因为没有设定控制点,所以将所给出的点群作为初始控制点,根据该初始控制点生成B-Spline曲线C0。在图1中,附加了(S2)的箭头表示根据连接初始控制点形成的形状生成B-Spline曲线·曲面的状态(S2)。
然后,通过插补处理移动控制点,形成更加忠实地对插补点进行插补的B-Spline曲线·曲面。
在该插补处理中,根据B-Spline曲线·曲面上的点和插补点的关系求出移动矢量,通过使用求出的移动矢量移动控制点的位置来进行插补处理。更详细地说,如后所述,通过三个插补工序(S3a)~(S3c)进行插补处理。在图1中,附加了(S3)的箭头表示了通过插补工序求出了新的控制点的状态(S3)。
在通过S3的插补处理移动了控制点的位置后,根据移动的控制点生成B-Spline曲线Cn。在图1中,附加了(S4)的箭头表示使用移动后的控制点,生成B-Spline曲线·曲面的状态(S4)。
将生成的B-Spline曲线·曲面和点群Q进行比较,在B-Spline曲线良好地对点群Q进行插补之前,一直重复S3的插补处理。重复进行该S3的插补处理,直到点群Q的各点与B-Spline曲线·曲面上与该点群Q对应的点之间的距离误差、对点群Q的各点赋予的法线矢量和在B-Spline曲线·曲面上在该点群Q对应的点的法线的角度差收敛。通过在距离误差、法线的角度差满足阈值之前一直重复进行S3的工序,由此来进行收敛。
关于上述的B-Spline曲线·曲面的收敛,除了使用以点之间的距离误差作为收敛条件和以法线之间的角度差作为收敛条件的这两个收敛条件来进行之外,还可以使用某一方的收敛条件来进行(S5)。
以下说明以上的S3的插补处理。S3的插补处理具备三个插补工序S3a、S3b和S3c。
在第一插补工序S3a中,求出使垂线从插补点向B-Spline曲线·曲面上下落时的垂足。可以将该垂足决定为在B-Spline曲线·曲面上与插补点的距离为最短的最短距离点。
在第二插补工序S3b中,在对各个插补点所给出的法线矢量和B-Spline曲线·曲面上的切线或切平面垂直相交时,求出具有这样的切线或切平面的曲线·曲面上的切点。
在第三插补工序S3c中,求出在第一插补工序以及第二插补工序中求出的B-Spline曲线·曲面上的点和插补点之间形成的矢量,将求出的矢量作为移动矢量来移动控制点的位置,设定新的控制点。
以下使用图3、4说明S3的插补处理。
图3(a)用于说明第一插补工序S3a的工序,图3(b)用于说明第二插补工序S3b的工序,图4用于说明第三插补工序S3c的工序。
此外,在图3、4中,通过Pa表示位移前的控制点,通过Pb表示位移后的控制点,通过Fn表示在曲线Cn上求出的近旁点。此外,将法线矢量表示为N*(在图中的N上表记为箭头),通过Gn表示具有与法线矢量N*垂直相交的切线的曲线Cn上的点。此外,以下使用B-Spline曲线进行说明。
在图3(a)所示的第一插补工序S3a中,在第一次的插补工序中,控制点Pa是与所给出的点群的插补点Q相同位置的点,在第二次及其以后的插补工序中,控制点Pa是通过上次的插补工序位置被移动后的控制点。
在第一次的插补工序S3a中,在通过控制点定义的B-Spline曲线Cn中,根据插补点的位置信息,通过几何算法的运算处理求出从插补点Q下落到B-Spline曲线Cn上的垂线的垂足,将其作为第一点Fn。
然后,在图3(b)所示的第二插补工序S3b中,对各点群Q给出了法线矢量N*。
在第二插补工序S3b中,在Fn的附近求出具有与法线矢量N*垂直相交的切线的曲线上的切点,作为第二点Gn。在为曲面时,将与法线矢量垂直相交的曲面的切平面的切点作为第二点Gn,通过几何算法的运算来求出。
图4表示了在第三插补工序S3c进行的控制点的移动方式的三个例子。
在第三插补工序S3c中,求出在第一插补工序中求出的第一点Fn、在第二插补工序中求出的第二点Gn、以及插补点Q之间形成的矢量,将求出的矢量作为移动矢量使控制点的位置移动来设定新的控制点。
图4(a)表示把从第二点Gn向插补点Q的矢量作为移动矢量使控制点P移动的移动方式,图4(b)表示把从第二点Gn向第一点Fn的矢量作为移动矢量使控制点P移动的移动方式,图4(c)表示把从第一点Fn向插补点Q的矢量作为移动矢量使控制点P移动的移动方式。
在第三插补工序S3c中,使用这些各个移动方式的移动矢量中的某一个来使控制点移动,由此求出新的控制点。该第三插补工序可以通过几何算法的运算来执行,该运算处理可以通过纳入了几何算法的运算单元来执行。
然后,在移动控制点Pa的位置来在新的位置求出控制点Pb的第三插补工序中,在图4(a)所示的移动形式中,求出从在第二插补工序S3b的工序中求出的第二点Gn向对应的插补点Q的矢量A(用图中的虚线表示),将该矢量A作为移动矢量来移动控制点Pa,求出新的控制点Pb。
在图4(b)所述的移动方式中,求出从在第二插补工序S3b的工序中求出的第二点Gn向在第一插补处理S3a的工序中求出的第一点Fn的矢量B(用图中的虚线表示),将该矢量B作为移动矢量来移动控制点Pa,求出新的控制点Pb。
在图4(c)所示的移动形式中,求出从在第一插补工序S3a的工序中求出的第一点Fn向对应的插补点Q的矢量C(用图中的虚线表示),将该矢量C作为移动矢量来移动控制点Pa,求出新的控制点Pb。
从这三个移动方式中选择一个来移动控制点,决定新的控制点的位置。该控制点移动位置的选择,可以按如下方式进行。
如图4(a)所示,在重复进行位移到移动了从第二点Gn向对应的插补点Q的矢量的位置的插补处理时,当插补点Q和曲线Cn的距离误差变小时,存在即使移动控制点Pa,法线矢量的角度差也不会变小的情形。
在成为这样的状态时,如图4(b)所示,通过位移到使控制点Pa移动了从第二点Gn向第一点Fn的矢量的位置,可以减小角度差。
此外,相反地,在角度差充分地变小,且即便使控制点P位移距离误差也不会变小的情况下,通过使控制点P位移到移动了从第一点Fn向插补点Q的矢量的位置,可以减小距离误差。可以根据状况选择这些各个移动方式。
重复进行该第一插补工序S3a、第二插补工序S3b以及第三插补工序S3c来进行插补处理S3。通过使用在该第三工序中得到的控制点Pb,由上述的S4的工序生成B-Spline曲线·曲面。
在S5的工序中,将生成的B-Spline曲线·曲面和点群的距离以及法线矢量进行比较,直到对应的点之间的距离误差、对应的法线矢量的角度差收敛之前,一直重复进行S3的插补工序。该收敛,一直重复到距离误差和法线矢量的角度差分别满足预先设定的阈值,或者在小于阈值。
通过插补处理距离误差以及法线矢量的角度差收敛时得到的B-Spline曲线·曲面,成为在插补点的位置进行插补,并且在插补点的法线矢量变得与设定的法线矢量相同的曲线·曲面。
图5表示使计算机执行存储有本发明的插补处理的软件的程序时的一构成例。
输入单元1输入点群Q、法线矢量N*的数据,并存储在存储单元2的数据存储部2a中。除了数据存储部2a之外,存储单元2还具备存储用于进行微分几何学运算的运算工具程序的运算工具程序存储部2b;除了插补处理的微分几何学运算之外,还存储B-Spline曲线·曲面生成处理等运算处理的程序的运算处理程序存储部2c;临时存储中途运算结果等的一次存储部2d;存储通过插补处理等得到的曲面的运算结果的运算结果存储部2e等。
运算单元3使用在数据存储部2a中存储的点群Q的数据,按照在运算处理程序存储部2c中存储的程序的运算顺序,并且从运算工序程序存储部2b中逐次读出通过该程序指定的运算工具的程序,来进行运算处理。
在运算结果存储部2e中存储的运算结果可以读出并显示在显示单元4上,或者可以输出给输出单元5。输出单元5可以为在记录介质中记录运算结果的记录装置,例如可以为加工装置等的、使用运算结果执行预定动作的外部装置。
上述进行软件处理的结构可以适用于专用的软件处理装置或通常的个人计算机。
此外,在上述结构中,通过使用电路来构成由包含存储单元的运算单元执行的功能,还可以通过硬件来执行。
然后,关于本发明的插补处理的详细内容,说明根据二维的点群(包含位置、法线信息)生成B-Spline曲线的情形和根据三维的点群(包含位置、法线信息)生成B-Spline曲面的情形。
以下首先使用图6的流程图、图7~9的说明控制点和曲线的关系的概要图以及图10~12的曲线插补例子的图,说明根据二维的点群(包含位置、法线信息)生成B-Spline曲线的情形,然后使用图13的流程图说明根据三维的点群(包含位置、法线信息)生成B-Spline曲面的情形。
首先说明根据二维的点群(包含位置、法线信息)生成B-Spline曲线的情形。以下的流程为一个例子,只要是执行本发明的第一插补工序、第二插补工序以及第三插补工序的工序以及顺序,还可以通过其他的流程来构成。
取得二维的点群数据(位置、法线信息)(S11),将点群的位置作为Qi进行存储,将法线矢量作为N*进行存储(S12)。图7(a)表示S12的状态。将得到的插补点Qi作为初始控制点P0i进行存储(S13)。
根据控制点Pk-1i生成B-Spline曲线Ck-1。在此,上标文字K表示插补处理的次数。在第一次中,因为没有设定控制点P,所以将所给出的插补点Qi作为初始控制点P0i,使用该初始控制点P0i生成B-Spline曲线·曲面。图7(b)表示使用初始控制点P0i生成了曲线·曲面的状态(S14)。
以下,通过重复进行S15、S16所示的第一插补工序、S17、S18所示的第二插补工序以及S21~S23所示的第三插补工序中的某一个工序,来生成关于位置以及法线矢量对点群进行插补的B-Spline曲线。
在第一插补工序中,将垂线从插补点Q下落到曲线C上,求出该垂线的垂足,将其作为第一点Fki。在此,落下垂线的曲线C是初次根据在S13的工序中得到的初始控制点P0生成的曲线C0。在第二次及其以后,是根据在S21~S23的某一个工序中位移后的控制点Pki生成的曲线CK(S15)。
求出插补点Qi和在S14中求出的作为垂线的垂足的第一点Fki的距离∥Qi-Fki∥(=Δd)。可以通过微分几何学运算进行求出垂线以及距离的运算。图7(c)表示初次的第一插补工序S15、S16的状态(S16)。
然后,在第二插补工序中,求出在各插补点Q被给出的法线矢量Ni*与在垂线的垂足的第一点Fki处的曲线C的法线矢量的角度差Δθ(S17),求出与切线相切的曲线上的切点来作为第二Gki,该切线与法线矢量Ni*垂直相交。可以通过微分几何学运算来求出角度差以及与法线矢量垂直相交的切线与曲线相切的切点。图7(d)表示初次的插补工序S18的状态。
然后,在第三插补工序中,根据在S16中求出的距离Δd和在S18中求出的角度差Δθ,从S22~S24的三个插补工序中选择一个插补工序来执行。
在插补点和曲线的距离误差Δd以及法线矢量的角度差Δθ都不满足阈值时(S19、S21),将定义了当前曲线的控制点Pki的位置位移从在S18中求出的曲线上的第二点Gki向插补点Qi的矢量A的方向以及大小,将位移后的位置作为新的控制点Pki的位置。图8(a)表示了基于该修正工序的移动状态(S22)。
在插补点和曲线的距离误差Δd满足阈值(S19),但法线矢量的角度差Δθ不满足阈值的情况下(S20),将定义了当前曲线的控制点Pki的位置位移从在S18中求出的曲线上的第二点Gki向在S15中求出的垂线的垂足的第一点Fki的矢量B的方向以及大小,将位移后的位置作为新的控制点Pki的位置。图8(b)表示了基于该修正工序的移动状态(S24)。
在插补点和曲线的距离误差Δd不满足阈值(S19),但法线矢量的角度差Δθ满足阈值的情况下(S21),将定义了当前曲线的控制点Pki的位置位移从S15中求出的垂线的垂足、即第一点Fki向插补点Qi的矢量C的方向以及大小,将位移后的位置作为新的控制点Pki的位置。图8(c)表示了基于该修正工序的移动状态(S23)。
可以通过几何学运算来进行使控制点位移的运算。图8(a)表示初次的插补处理中的S21的状态。图8(b)表示初次的插补处理中的S22的状态,图8(c)表示初次的插补处理中的S23的状态。
此外,图9(a)、(c)表示了通过第二次及其以后的插补处理S14生成了B-Spline曲线C(1)、C(2)的状态。此外,图9(b)表示了通过第二次及其以后的插补处理的S21使控制点(P1)移动到控制点(P2)的状态。
在S14中求出的曲线C与插补点Qi的距离误差Δd、法线矢量Ni*与在垂线垂足的第一点Fki处的曲线C的法线矢量的角度差Δθ满足各自的阈值之前,一直重复进行S14~S23的工序。距离误差Δd的阈值相当于对于对点群进行插补的曲线可以允许的允许距离误差,角度差Δθ的阈值相当于对于法线的角度差可以允许的允许法线矢量角度差。
因此,通过在S19、S20、s21的比较工序中,确认距离、法线矢量的角度差满足阈值,曲线C对于给出点群的位置以及法线矢量,在允许误差范围内进行插补。
图10是二维(平面)的曲线插补的一例,从Bowditch曲线和Trochoid曲线中提取点群以及在该点的法线矢量,关于点群的位置以及法线矢量进行了插补。在图10(a)、(c)中表示了成为插补对象的点群的各点、以及通过线段表示的法线矢量。在图10(b)(d)中表示了根据本发明,通过三维的B-Spline曲线,关于位置以及法线矢量分别对点群进行了插补后的结果。
在表1中表示采用本发明的方法的计算结果,在表2中表示仅仅关于点的位置通过现有的方法(非专利文献1)进行插补后的结果。在此,关于距离误差,以各模型中的bounding box的对角线为基准通过百分比来表示。当观察关于距离误差的结果时,可知几乎成为零。当观察关于角度差的结果时,在使用本发明的方法的情况下,最大角度差为Bowditch曲线,为0.024°左右,Trochoid曲线成为0.005°左右,与此相对,在采用现有方法时,在Bowditch曲线中为2.0°左右,在Trochoid曲线中为0.14°左右。可知本发明可以将最大角度差抑制为较小。在表2中,*标记表示计算时间不满0.01秒。
(表1) (表2) 然后,在图11(a)中表示进行了本发明的插补的曲线的曲率线图,图11(b)表示通过现有的方法(非专利文献1)进行了插补的曲线的曲率线图,在图11(c)中表示通过现有的方法(厄米特(Hermitian)插补)进行了插补的曲线的曲率线图。
在现有的方法(非专利文献1)中,在曲线中需要使控制点大约为插补点的两倍,在曲面中需要使控制点大约为插补点的三倍,由于控制点增多引起曲线不必要的振动(图11(b))。对于这一点,在本发明的插补中,因为控制点与插补点大体为相同的数量,所以可以抑制这样的不必要的振动。
此外,在现有方法中,需要输入在各点的切线矢量的大小,但在本发明中不需要这样的输入,可以在没有人介入的情况下进行所有的的插补处理,可以实现处理的自动化。
在图12(a)中放大地表示图11(a)所示的进行了本发明的插补后的曲线的曲率线图的一部分,在图12(b)中放大地表示图11(c)所示的通过现有的方法(厄米特插补)进行了插补后的曲线的曲率线图的一部分。
本发明的插补使用三维的B-Spline曲线,因为将三维的B-Spline曲线保障到C2连续,所以曲率成为连续(图12(a))(在此,C2表示曲率连续性,与表示上述曲线的C相区别)。现有的方法(厄米特插补)因为没有保证曲线的连续,所以如同图中的圆圈包围的部位所示那样,在曲线的各处曲率不连续(图12(b))。
如上所述,本发明的插补与现有方法相比,可以生成曲率连续平滑的曲线。
然后,使用图13的流程图说明由三维的点群(包含位置、发现信息)生成B-Spline曲面的情况。以下的图13所述的流程图是一个例子,如果是执行本发明的第一插补处理、第二插补处理以及第三插补处理的工序以及顺序,则可以通过其他的流程来构成。
从点群开始将位置作为Q进行存储,将法线矢量作为N*进行存储(S31、S32)。将得到的插补点Qi作为初始控制点P0i进行存储(S33)。根据控制点PFk-1i生成B-Spline曲线Sk-1。在此,上标文字k表示插补处理的次数。
以下,通过重复进行S35、S36所示的第一插补处理、S37、S38所示的第二插补处理以及S42~S44所示的第三插补处理中的某一个工序,来生成关于位置以及法线矢量对点群进行插补的B-Spline曲面S。
在第一插补处理中,求出将垂线从插补点下落到曲面S上、成为垂线的垂足的第一点Fki。曲面S是在初次的处理中,根据在S33的工序中得到的控制点P0生成的曲面S0,第二次及其以后的插补处理中,是根据在S41~S43的某一个工序中位移后的控制点Pki生成的曲面SK(S35)。求出插补点Qi和垂线的垂足的第一点Fki的距离∥Qi-Fki∥(=Δd)(S36)。可以通过微分几何学运算进行求出垂线以及距离的运算。
然后,在第二插补处理中,求出在各插补点Q所给出的法线矢量Ni*与在垂线的垂足的第一点Fki处的曲面S的法线矢量的角度差Δθ(S37),求出与法线矢量Ni*垂直相交的切平面在曲面上相切的切点Gki来作为第二点(S38)。可以通过微分几何学运算来求出角度差Δθ以及与法线矢量垂直相交的切平面在曲面上相切的点。
然后,在第三插补处理中,根据在S36中求出的距离Δd和在S38中求出的角度差Δθ,从S41~S43的三个工序中选择一个工序来执行。在插补点Q和曲线的距离误差Δd以及法线矢量的角度差Δθ都不满足阈值时(S39、S41),将定义了当前曲面的控制点Pk-1i的位置位移从在S38中求出的曲面上的点Gki向插补点Qi的矢量,将位移后的位置作为新的控制点Pki的位置(S42)。
在插补点Q和曲面的距离误差Δd满足阈值(S39),但法线矢量的角度差Δθ不满足阈值的情况下(S40),将定义了当前曲面的控制点Pk-1i的位置位移从在S38中求出的曲面上的点Gki向在S35中求出的垂线的垂足的第一点Fki的矢量,将位移后的位置作为新的控制点Pki的位置(S44)。
在插补点Q和曲面的距离误差Δd不满足阈值(S39),但法线矢量的角度差满足阈值的情况下(S41),将定义了当前曲面的控制点Pk-1i的位置位移从S35中求出的垂线的垂足Fki向插补点Qi的矢量,将位移后的位置作为新的控制点Pki的位置(S43)。可以通过几何学运算进行使控制点位移的运算。
在S34中求出的曲面S与插补点Qi的距离误差Δd、法线矢量Ni*与在垂线垂足的第一点Fki处的曲面S的法线矢量的角度差Δθ满足各自的阈值之前,一直重复进行S34~S44的工序。距离误差的阈值相当于对于距离误差可以允许的允许距离误差,所述距离误差是针对对点群进行插补的曲面的距离误差,角度差的阈值相当于对于法线的角度差可以允许的允许法线矢量角度差。
因此,通过在S39、S40、s41的比较工序中,确认距离、法线矢量的角度差满足阈值,曲面S就成为对于给出了点群的位置以及法线矢量,在允许误差范围内进行插补的曲面。
作为本发明的一应用例子,具有向偏移曲线·曲面的应用。通过应用本发明,可以提高通过B-Spline曲线·曲面表现偏移曲线·曲面时的精度。
作为偏移曲线·曲面是指将曲线·曲面向法线方向位移一定距离后的曲线·曲面。在一般销售的CAD/CAM软件中,作为下拉菜单必定具备偏移功能,在现实中当根据在NC切削加工等中输入的CAD/CAM数据,求出考虑了工具半径的工具中心的轨迹,即工具路径时,使用CAD/CAM数据上的曲线·曲面的偏移曲线·曲面。在此,因为一般无法通过多项式表现偏移曲线·曲面,所以无法通过由区分多项式表现的B-Spline曲线·曲面来直接表现。此时,需要将偏移曲线·曲面作为一定的点群进行采样进行对,通过B-Spline曲线·曲面对取得的点群进行插补的作业。此时,由于偏移曲线·曲面的性质,可以容易地取出在采样的点的法线,因此不仅关于位置,还关于法线矢量,通过B-Spline曲线·曲面进行插补,由此可以得到更接近偏移曲线·曲面的B-Spline曲线·曲面,可以减少所需要的采样点。在进行包含该法线的B-Spline曲线·曲面的插补时,通过使用本发明可以得到不必要的振动较少的高品质的曲线,可以实现CAD/CAM软件上的偏移功能的精度的提高。此外,因为不需要切线矢量的大小,所以可以没有人的介入自动地进行插补处理。
作为其他的应用例子,还举出了当在CAD/CAM上建模时,在实际装配中除了位置以外,还导入了指定在该位置的法线的功能的例子。在现有的作成CAD/CAM模型的过程中,一般仅进行位置指定。由此,需要仅对位置信息进行操作,来变更设计或技术规格。在此,如果能够不仅针对位置还针对法线对曲线·曲面进行插补,就能够附加指定法线信息的功能,可以增加能够操作的参数,因此可以提高设计的自由度。
通过使用本发明,可以没有人的介入地自动进行插补处理,此外,可以使曲线·曲面成为曲率连续,且不必要的振动较少的高品质的曲线·曲面。
本发明可以用于CAD·CAM建模的领域、NC加工等中。
权利要求
1.一种插补处理方法,其通过使用控制点表现的曲线或曲面对点群进行插补,其特征在于,
所述点群具有插补点的位置信息、决定在该插补点的曲线或曲面的方向以及曲率的单位方向矢量的矢量信息,
所述插补处理包含第一插补工序、第二插补工序以及第三插补工序,
第一插补工序,进行在由控制点定义的所述曲线或所述曲面中,根据所述插补点的位置信息,求出从插补点落在所述曲线上或所述曲面上的垂线的垂足来作为第一点的几何算法的运算;
第二插补工序,进行根据所述矢量信息,求出与单位方向矢量垂直相交的所述曲线的切线或所述曲面的切平面的切点来作为第二点的几何算法的运算;
第三插补工序,进行求出从所述第一点向所述插补点的矢量、从所述第二点向所述插补点的矢量、以及从所述第二点向所述第一点的矢量来作为移动矢量,使用从所述移动矢量选择出的某一个移动矢量移动定义所述曲线或所述曲面的控制点的位置,将移动后的位置决定为新的曲线或曲面的控制点的位置的几何算法的运算,
通过纳入了所述几何算法的运算单元来执行进行所述各插补工序的运算处理。
2.根据权利要求1所述的插补处理方法,其特征在于,
所述单位方向矢量,是在对所述插补点进行插补的曲线或者曲面上在该插补点的法线矢量。
3.根据权利要求1或2所述的插补处理方法,其特征在于,
根据通过所述运算处理得到的控制点求出新的曲线或曲面,把插补点和求出的曲线或曲面间的距离,与阈值进行比较,在所述距离满足阈值之前或者小于阈值之前,一直重复进行所述第一插补工序、第二插补工序以及第三插补工序。
4.根据权利要求1或2所述的插补处理方法,其特征在于,
根据通过所述运算处理得到的控制点求出新的曲线或曲面,将在各插补点设定的单位方向矢量和在所述第一插补工序中求出的成为垂线的垂足的第一点处的曲线或曲面的法线矢量间的角度差,与阈值进行比较,在所述角度差满足阈值之前或者在小于阈值之前,一直重复所述第一插补工序、第二插补工序以及第三插补工序。
5.根据权利要求1至4的任意一项所述的插补处理方法,其特征在于,
在第一次进行的第一插补工序、第二插补工序以及第三插补工序中,将所述点群的插补点作为初始控制点,进行所述各几何算法的运算,在第二次及其以后进行的第一插补工序、第二插补工序以及第三插补工序中,把在插补工序中得到的控制点的位置作为新的控制点的位置,进行所述几何算法的运算。
6.根据权利要求1至5的任意一项所述的插补处理方法,其特征在于,
所述曲线是B-Spline曲线,所述曲面是B-Spline曲面或细分曲面。
7.一种插补处理装置,其通过使用控制点表现的曲线或曲面对点群进行插补,其特征在于,
所述点群具有插补点的位置信息、决定在该插补点的曲线或曲面的方向以及曲率的单位方向矢量的矢量信息,
具备第一几何运算单元、第二几何运算单元以及第三几何运算单元,
第一几何运算单元,通过在由控制点定义的所述曲线或所述曲面中,根据所述插补点的位置信息,求出从插补点落在所述曲线上或所述曲面上的垂线的垂足来作为第一点的几何算法,来进行第一插补工序;
第二几何运算单元,通过根据所述矢量信息,求出与单位方向矢量垂直相交的所述曲线的切线或所述曲面的切平面的切点来作为第二点的几何算法,来进行第二插补工序;
第三几何运算单元,通过求出从所述第一点向所述插补点的矢量、从所述第二点向所述插补点的矢量、以及从所述第二点向所述第一点的矢量来作为移动矢量,使用某一个所述移动矢量移动定义曲线或曲面的控制点的位置,将移动后的位置决定为新的曲线或曲面的控制点的位置的几何算法,来进行第三插补工序,
所述第一几何运算单元、第二几何运算单元以及第三几何运算单元,具备用于通过软件执行各几何算法的CPU以及存储装置,或者用于通过硬件执行各个几何算法的电路。
8.根据权利要求7所述的插补处理装置,其特征在于,
所述单位方向矢量,是在对所述插补点进行插补的曲线或者曲面上在该插补点的法线矢量。
9.根据权利要求7或8所述的插补处理装置,其特征在于,
具备
比较单元,其根据通过所述运算处理得到的控制点求出曲线或曲面,把插补点和求出的曲线或曲面间的距离,与阈值进行比较;以及
控制单元,其具有根据所述比较的结果,在所述距离满足阈值之前或者小于阈值之前,一直重复进行所述第一几何运算单元、第二几何运算单元以及第三几何运算单元的程序或电路结构。
10.根据权利要求7或8所述的插补处理装置,其特征在于,
具备
比较单元,其根据通过所述运算处理得到的控制点求出曲线或曲面,把在各插补点给出的法线矢量和在成为求出的所述垂线的垂足的点的曲线或曲面的法线矢量间的角度差,与阈值进行比较;以及
控制单元,其具有在所述角度差满足阈值之前或者小于阈值之前,一直重复进行所述第一几何运算单元、第二几何运算单元以及第三几何运算单元的程序或电路结构。
11.根据权利要求7至10的任意一项所述的插补处理装置,其特征在于,
所述第一几何运算单元、第二几何运算单元以及第三几何运算单元,在第一次进行的运算中,将所述点群作为初始控制点,进行所述几何算法的运算,
在第二次及其以后进行的运算中,把通过所述第一次的运算得到的控制点位置作为新的控制点的位置,进行所述几何算法的运算。
12.根据权利要求7至11的任意一项所述的插补处理装置,其特征在于,
所述曲线是B-Spline曲线,所述曲面是B-Spline曲面或细分曲面。
全文摘要
插补处理,在使用B-Spline曲线·曲面或细分曲面等通过控制点表现的曲线·曲面对插补点进行插补时,使用构成点群的插补点的位置信息、在各插补点设置的单位方向矢量的矢量信息,计算使控制点移动的移动矢量,使控制点在该移动矢量的方向上移动该移动量。通过重复进行对插补点进行插补的曲线·曲面的生成和控制点的移动的工序,求出关于点群的位置以及单位方向矢量使曲线·曲面拟合的新的控制点位置。在使用了点群的位置信息和法线信息的插补处理中,抑制控制点的增加降低处理数据的数据量,此外,不需要指定切线矢量的大小。
文档编号G06F17/50GK101796546SQ20088010440
公开日2010年8月4日 申请日期2008年10月24日 优先权日2007年10月30日
发明者前川卓, 吴服秀一, 田村重文 申请人:国立大学法人横滨国立大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1