边界数据转换为单元内形状的转换方法和转换程序的制作方法

文档序号:6404372阅读:279来源:国知局
专利名称:边界数据转换为单元内形状的转换方法和转换程序的制作方法
技术领域
本发明涉及以小的存储容量存储综合了形状和物理特性的实体数据、能将CAD与模拟一元化的实体数据的存储方法,更详细地说,涉及边界数据转换为单元内形状数据的转换方法和转换程序。
背景技术
在前沿的研究开发、技术开发中、伴随着其尖端化、复杂化,大量的试行错误是不可避免的,因而开发过程中的风险增高。作为以科学技术立国为目标的日本,竭力排除这些风险,求得开发过程的革新性的尖端化、有效化是极为重要的。
现在,在研究开发、技术开发的现状中,CAD(计算机辅助设计)、CAM(计算机辅助制造)、CAE(计算机辅助工程)、CAT(计算机辅助测试)等分别作为设计、加工、分析、试验的模拟手段被应用了。
另外,按照本发明,预见到作为连续模拟的C-Simulation(协同模拟)、也考虑到加工过程的A-CAM(先进计算机辅助制造)、出现终极精度的D-Fabrication(确定性制造)等从此也将广为普及。
在上述现有模拟手段中,用CSG(结构固体几何学)、B-rep(边界表示法)对对象物存储了数据。
但是,由于用CSG时将对象物整体作为微细的固体模型的集合体进行了存储,所以存在数据重,在安装模拟手段(软件等)的场合要处理大量的数据,即使在使用大型计算机的场合,分析也要花费时间的问题。
另外,由于用B-rep时用边界表示对象物,因而数据轻,数据量少,但是因为不直接涉及边界面内部的信息,所以存在不适合直接用于变形分析等的问题。
另外,在用这些现有的数据存储手段进行热-流体分析、固体大变形分析或它们的联合分析等时,由于分割成了适合于其状况和分析的网格等,应用了有限要素法等,所以能够显示其分析结果这类工作,但是,将CAD与模拟一元化是困难的,因而存在不能用相同的数据管理设计、分析、加工、组装、试验等各工序的问题。
换言之,现状的Solid/Surface-CAD(固体/表面-CAD,以下称为S-CAD)存在以下的问题。
(1)数据未遍及,对内部的变换操作的适应性差(数值误差和处理方法的问题)。
(2)不能直接在模拟中使用(必须生成网格)。
(3)不能进行CAM加工的研讨(只具有最终形状)。
还有,在加工方面存在以下的问题。
(1)不能表现加工过程(对粗加工、工序设计的支持不充分)。
(2)不能与激光加工、超先进加工等新的加工方法对应(只能切削,数值精度不够)。
(3)不能对加工法本身进行选择(用复合体时其内部具有不同的材料特性)。
为解决上述问题,本发明的发明者等人创立并申请了《综合了形状和物理特性的实体数据存储方法》(特愿2001-25023,未公开)。
本发明如图1示意地示出的那样,利用八叉树分割法将由对象物的边界数据构成的外部数据分割成边界平面正交的立方体单元,将分割成的各单元区分为不含边界面的非边界单元13a和含边界面的边界单元13b。另外,在该图中15是切断点。
按照本发明,能够对每个单元存储各种物理特性值,以小的存储容量存储综合了形状和物理特性的实体数据,据此,可以对物体的形状、结构、物理特性信息、沿革进行一元化管理,能用相同的数据对与从设计到加工、组装、试验、评价等一系列工序有关的数据进行管理,能使CAD与模拟一元化。
以下称上述的实体数据存储方法为“体CAD”或“V-CAD”。另外,在本申请中将V-CAD定义如下“所谓V-CAD是在voxel dataset的单元内铺展边界面”。
现有的CAD虽然可以说是立体的,但事实上如B-rep等那样,是无内容的空壳,与此相对照,V-CAD充填到了内部,物理量也能够保持。由于具有内部信息,所以预计能够很好地处理在迄今的B-rep等形状处理中易出问题的几何运算。另外,V-CAD超出了作为简单的形状表现工具的框架,其目标是成为还能直接用于模拟和加工的数据基础。为了真正实现这样的“物品制造”系统,必须同时进行有效利用V-CAD那样的模拟技术和加工技术的开发。特别是加工,由于至今只是表面形状的数据被全面使用,所以可以说除光造型法、快速样机制作(3维喷墨)外,几乎没有真正能够利用体数据的加工技术。
当经历了国际上物品制造的现状时,读入现有类型的CAD所表示的形状,在V-CAD内生成体数据是非常重要的。因此,用V-CAD时,必须保有能够对边界单元重构形状数据(外部数据)的边界的边界数据。
现在,在由体数据生成多边形时一般使用的是Marching Cubes(行进立方体,以下简称MC)。例如在下面的文献1中介绍了MC。
作为参考,在图2a至图2d中示出了2维MC的所有切断点图形和边界线部分,在图3a至图2n中示出了3维MC的所有切断点图形(边界面从略)。
在3维MC中,对3维单元(立方体)的8个顶点写入正负数值,以此为基础生成等值面(以下考虑其值为0的面)。如果立方体的棱的两端的数值的符合不相同,在该棱上设置一个切断点。如果符合相同,则不设置切断点。在对立方体的12条棱进行上述工作之后,以这些切断点为基础来铺展平面。另外,在2维MC的场合,也与此相同。
图4a至图4c是示出MC与Kitta Cubes(KTC)的矩形单元中的切断点之不同的图的一个例子。在该例中,对于MC,由于在图4a那样的状况下,正方形单元的4个顶点(圆圈)都位于形状(封闭曲线)的外部,因而具有相同符合,因此在单元的4条棱(4条边)上不产生切断点,其结果是,在此场合单元内面未完全铺开。站在MC的立场上,这意味着要表示此形状,现在的分辨率太低。因此,在该例中用MC时存在不能像图4b或图4c那样地表示单元的4条棱的切断点的问题。图4a虽是极端的例子,但本质上相同的不良情况会频繁地发生,图4d是其一例。在弯曲的边界面与单元棱的交叉处频繁地发生。用KTC时,可以将其近似成图4f样子。用MC时可以近似成图4g的样子。图4c和图4f是2维的一个例子。在3维时更多时候只能用KTC表现。可以知道,在相同分辨率下KTC比TC的表现力格外丰富。
与此相对照,利用后述的本发明(KTC),如图4b那样在4条棱上切断点各产生2个,当将1条棱上的切断点个数限制为0个或1个时,可以表示成图4c的样子。
图5a和图5b是示出现有的MC与本发明的KTC的棱的切断点之不同的图。在MC构建时,也将1条棱上的切断点个数限制为0个或1个。如图5a例示的那样,用MC时只对单元的各棱的两端的符合为正负相反的情形在该棱上产生1个切断点。因此,如图5b所示,在1条棱上赋予切断点时,不仅存在其两端的符合为正负相反的情形,也存在符合相同的情形。用MC时只有其一部分情形能够表现切断点。
在图4a至图4c中,为了表示用封闭实线示出的形状,用MC时必须将单元更加细分。其结果是,在用了MC的V-CAD中为了保有边界数据,必须将单元更加细分,随这样的细分,存储综合了形状和物理特性的实体数据的存储容量以指数函数方式增加。另外,若避免存储容量增加,则难以精密地表现边界部分的形状。
“Marching CubesA High Resolution 3D SurfaceConstruction Algorithm(行进立方体高分辨率3维表面结构算法)”,Computer Graphics(计算机图形),Vol.21,No.4,July 1987。

发明内容
本发明是为了解决上述问题而进行的。即,本发明的目的在于提供内含Marching Cubes(MC)的所有单元棱切断点,并且能够无遗漏地包罗用MC得不到的所有单元棱切断点,据此能够无遗漏地包罗由连结单元棱切断点的边界构成的单元内形状数据的边界数据转换为单元内形状数据的转换方法和转换程序。
按照本发明,提供了一种边界数据转换为单元内形状数据的转换方法和转换程序,其特征在于,包括将由对象物的边界数据构成的外部数据(12)分割成正交单元(13)的分割步骤(A);将上述边界数据与单元棱的交点作为单元棱切断点的切断点决定步骤(B);将连结所求得的单元棱切断点的边界作为单元内形状数据的边界决定步骤(C);将分割成的各单元区分为不含边界面的非边界单元(13a)和含边界面的边界面单元(13b)的单元区分步骤(D);以及将构成边界单元的单元数据区分为比单元内形状数据更靠内侧的内部单元数据和更靠外侧的外部单元数据的边界单元数据区分步骤(E)。
按照本方法和转换程序,借助于分割步骤(A)和单元区分步骤(D)可以作成将对象物的外部数据(12)分割成正交格子的单元(13)的单元阶层,以小的存储容量存储外部数据(12)。
另外,由于在切断点决定步骤(B)中将边界数据与单元棱的交点作为单元棱切断点,所以能够内含“如果单元棱的两端数值的符合不相同,在该棱上设置1个切断点,如果符合相同则不设置切断点”的MC的所有切断点配置,并且在1棱1切断点的条件下能够无遗漏地包罗除此以外的边界面与单元的棱线的全部切断点配置。
另外,由于在边界决定步骤(C)中,将连结所求得的单元棱切断点的边界作为单元内形状数据,所以能够包含MC的所有单元内形状图形,并且在1棱1切断点的条件下能够无遗漏地包罗除此以外的单元内形状图形。
另外,由于在边界单元数据区分步骤(E)中将构成边界单元的单元数据区分为比单元内形状数据更靠内侧的内部单元数据和更靠外侧的外部单元数据,所以能够既保持所有的单元数据与相邻单元的连续性,又能够区分为非边界单元数据和边界单元数据。
按照本发明的优选实施形态,上述单元在2维中是包含正方形单元和长方形单元的四边形单元,在切断点决定步骤(B)中以边界数据与单元棱的24=16种交点作为单元棱切断点,进而将由在将四边形单元视为正方形单元的基础上的旋转操作得出的同值类作为相同图形而区分为全部6种图形。
按照此方法,在2维单元的场合,能够将单元棱切断点的图形区分为内含MC的4种图形的全部6种图形,能够无遗漏地包罗在1棱1切断点的条件下可以产生的单元棱切断点的图形。
在上述边界决定步骤(C)中,对上述全部6种图形将切断线部分(=连结单元棱切断点的边界线)的配置作为单元内形状数据。
另外,在上述边界决定步骤(C)中将由3维的旋转操作得出的同值类作为相同图形,将单元内形状数据区分为22种单元内形状图形。
按照这些方法,能够内含MC的所有单元内形状数据,并且能够无遗漏地包罗在1棱1切断点的条件下可以产生的单元内形状数据。
按照本发明的另一优选实施形态,上述单元在3维中为包含立方体和长方体的6面体单元,在切断点决定步骤(B)中,以边界数据与单元棱的212=4096种交点作为单元棱切断点,进而将由旋转操作和映射操作得出的同值类作为相同图形而区分为全部144种图形。
按照此方法,在3维单元的场合,能够将单元棱切断点的图形区分为内含MC的14种图形的全部144种图形,能够无遗漏地包罗在1棱1切断点的条件下可以产生的单元棱切断点的图形。
在上述切断点决定步骤(B)中,进而将由关于切断点的存在/不存在的反转操作得出的同值类作为相同图形,区分为单元棱切断点为0~6个的87种图形。
按照此方法,用单元棱切断点为0~6个的87种图形,能够无遗漏地再现单元棱切断点的全部144种图形。
在上述边界决定步骤(C)中,对上述全部图形将连结单元棱切断点的边界面作为单元内形状数据。
按照此方法,能够内含MC的所有单元内形状数据,并且能够无遗漏地包罗在1棱1切断点的条件下可以产生的单元内形状数据。
本发明的其它目的和有利的特征,从参照附图的以下的说明中可以明了。


图1是V-CAD是原理图。
图2a至图2d是示出4种2D-MC的同值类的图。
图3a至图3n是示出3D-MC的切断点配置的全部同值类的图。
图4a、b、c、d、e、f是KTC的典型例。图4g是用MC表现图4f的图。
图5a和图5b是示出MC与KTC的单元棱上的切断点之不同的图。
图6是本发明的数据转换方法和转换程序的流程图。
图7a至图7f是示出2D-KTC的切断点配置的全部同值类的图。
图8a至图8v是示出图7基础上的2D-KTC中的切断线部分的配置的全部同值类的图。
图9是立方八面体(准正多面体之一)。
图10a至图10ad是示出3D-KTC的切断点配置中的切断点个数为0~4的场合的30个同值类的图。
图11a至图11aa是示出3D-KTC的切断点配置中的切断点个数为4或5的场合的27个同值类的图。
图12a至图12ad是示出3D-KTC的切断点配置中的切断点个数为6的场合的30个同值类的图。
图13是示出连结所给予的全部切断点的线在立方体的表面上构成闭环的例子的图。
图14是将图9的立方八面体的12个顶点与36条棱的路线的关系表现为平面上的图形的图。
图15是示出即使闭环定出,单元也不能被分割的例子的图。
图16a、b、c是示出作成闭环,利用以其为边缘的3角形分割方法可以形成单元的2分割、3分割的例子的图。
图17是示出不能用1条闭环连结全部切断点而将单元2分割的例子的图。
图18a、b、c是用3个同值类示出当连接切断点的闭环为6边形时,将其视为正6边形由卡塔朗数得到的14种三角形分割的图。
图19a至图19d是将四次圆纹曲面和模具的B-rep形状表现与KTC的平面铺展进行比较的显示屏上的图像。
具体实施例方式
以下参照

本发明的优选实施形态。
图6是本发明的数据转换方法和转换程序的流程图。如该图所示,本发明的方法和转换程序由分割步骤(A)、切断点决定步骤(B)、边界决定步骤(C)、单元区分步骤(D)和边界单元数据区分步骤(E)构成。
从外部输入的外部数据12是用表示多面体的多边形数据,在有限要素法中使用的四面体或六面体要素,在3维CAD或CG工具中使用的曲面数据,或者用部分平面或曲面构成其他立体的表面的信息表现的数据。
外部数据12除这些数据(称为S-CAD数据)外也可以是(1)利用V-CAD独自的接口(V-interface)由手工输入而直接作成的数据,(2)测量装置、传感器、数字转换器等的表面的数字化数据,(3)还具有CT扫描、MRI和一般用于Volume透视图的柏克(ボク)单元数据等内部信息的Volume数据。
在分割步骤(A)中,将由在外部数据取得步骤(未图示)中取得的对象物的边界数据构成的外部数据12分割成正交格子的单元13。
在2维单元的场合,该分割利用四叉树分割法分割成长方形单元。
另外,在3维单元的场合,利用八叉树(octree)分割法分割成长方体的单元13。所谓八叉树表现,即利用八叉树的空间分割,就是将包含目的立体(对象物)、构成基准的长方体13分割成8份,递推式地反复进行8分割处理至在各个区域中不含边界面,直至指定的单元尺寸为止。利用该八叉树分割,与柏克单元表现相比,可以大幅度地减少数据量。
将利用四叉树或八叉树的空间分割法分割成的一个空间区域称为单元13。单元是长方形或长方体。虽然作为特殊的情形长方形或长方体是正方形或正方体,但更一般地说,可以是其棱互不正交的四边形或6面体。利用该单元的阶层结构、分割数或分辨率来表示在空间占据的区域。据此,在整个空间中将对象表现成重叠了大小不同的单元的状态。
在切断点决定步骤(B)中,将边界数据与单元棱的交点作为单元棱切断点15。
在2维单元的场合,在切断点决定步骤(B)中将边界数据与单元棱的24=16种交点图形作为单元棱切断点配置,进而将由3维的旋转操作得到的同值类作为相同图形区分为后述的全部6种图形。
另外,在3维单元的场合,在切断点决定步骤(B)中将边界数据与单元棱的212=4096种交点图形作为单元棱切断点配置,进而将由旋转操作和映射操作得到的同值类作为相同图形区分为后述的全部144种图形。在3维单元的场合,由于图形数量多,所以进一步将由关于切断点的存在/不存在的反转操作得到的同值类作为相同图形,可以由单元棱切断点为0~6个的87种图形再现直至切断点为7~12个的全部144种图形。
在边界决定步骤(C)中,将连结所求得的单元棱切断点的边界作为单元内形状数据。
在2维单元的场合,在边界决定步骤(C)中对单元棱切断点的全部6种图形将连结单元棱切断点的切断线部分配置作为单元内形状数据。再具体地说,可以以由3维的旋转操作得到的同值类作为相同图形将单元内形状数据区分为后述的22种单元内形状图形。
另外,在3维单元的场合,在边界决定步骤(C)中对单元棱切断点的全部图形将连结单元棱切断点的近似边界面(=切断三角形配置)作为单元内形状数据。另外,在后述的具体例子中,将求连结单元棱切断点的近似边界面的工作以“铺展平面”表现。
在单元区分步骤(D)中,将分割成的各单元区分为不含边界面的非边界单元13a和含边界面的边界单元13b。
即,在本发明中,为了表现边界单元13b,使用了四叉树或八叉树,将完全含在内部的单元作为具有其最大尺寸的内部单元13a,将包含来自外部数据12的边界信息的单元作为边界单元13b。
在边界单元数据区分步骤(E)中将构成边界单元的单元数据区分为比单元内形状数据更靠内侧的内部单元数据和更靠外侧的外部单元数据。
在本发明的方法中,根据需要,重复进行步骤(A)~步骤(E)。另外,使用所求得的V-CAD数据依次进行例如设计、分析、加工、组装、试验等模拟,并在输出步骤(例如作为CAM、多边形数据)中将其输出。
另外,本发明的转换程序是用于执行上述步骤(A)~步骤(E)的计算机程序,安装于计算机中使用。
下面对本发明更详细地进行说明。
1.在本发明中提出了用于生成单元内面的新方法。它是完全包含Marching Cubes法的单元内面图形的更为一般的方法。
在本发明中,在将多边形等形状读入柏克单元集合中,生成体数据时,作为取样点,将单元棱与形状表面的交点作为切断点进行记录,根据这些切断点信息复原形状表面。
另外,在本发明中,首先在2维中完全定义源于切断点的单元内面生成图形。即,包罗切断点配置的同值类的查数(6种图形)和对这些全部切断点配置铺展单元内面的全部可能性(22种)。
在本发明中,对3维进行了对切断点配置的同值类的查数(144种图形)。另外,关于3维的单元内面生成,可以对所有切断点配置内的过半数的配置在立方体的6个面上用互不交叉的线将切断点进行连结。若构成这样的闭环,能够比较容易地对以它作为外边缘的单元内面进行铺展。查数的结果是,具有在全部切断点上各通过1次的1条闭环的切断点的配置在144种图形中有87种图形。后面将述及使用闭环进行铺展的单元内面的实例。
1.1将现有型CAD的表面形状读入单元空间,记录表面与单元棱的交点(切断点),其后将原始的表面形状近似为三角形面,这是本发明的主题。
1.2Marching Cubes(MC)在上述的Marching Cubes(简称为MC)中对单元的8个顶点写入正负数值,据此生成等值面(以下考虑其值为0的面)。如果立方体棱两端的数值的符合不相同,在该棱上设置1个切断点,如果符合相同,则不设置切断点。在对立方体的12条棱进行此操作后,根据这些切断点来铺展平面。
用MC时由于以简洁的算法很好地将面进行了铺展,所以在现时得到广泛使用。MC的内容可归纳为如下2点。即,(1)切断点配置的图形分类,以及(2)对各切断点配置的单元内面的铺展方法的定义(即怎样连接切断点)。所谓MC的不明确性问题虽指这里所说的(2)的单元内面的铺展方法不一定是唯一的,但在安装上指定唯一地进行面的铺展的方法并不困难。例如,对不明确性出现的场合,可以作如下决定以在其值大的顶点之间进行连结的方式来铺展单元内面。或者也可以决定在其值小的顶点之间进行连结。所谓MC的有力性系指通过如此进行决定可无空隙地进行铺展,即构成单元内面的三角形的棱为2个三角形共有。
1.3Kitta Cubes(KTC)在本发明中提出了利用以切断点为顶点的切断三角形来近似表面形状的新的广义的方法,将它命名为Kitta Cubes(以下简称为KTC)(Kitta在日语中是“切”的意思)。
用上述的MC时,虽然单元内面被很好地铺展,但这并不一定意味正确地表现了形状。从本发明中可以明白,用相同的分辨率(=相同的单元大小)进行形状表现时,如使用KTC就能够比MC更正确地进行表现。
在进行KTC的准确定义之前,在2维中给出表明KTC能够比MC更正确地进行形状表现的典型实例(图4a、b、c)。如上所述,在MC中,在图4a那样的情况下,由于正方形单元的4个顶点都位于形状的外部,所以具有相同的符合,因此,在单元的4条棱上不产生切断点,作为其结果,在图4a的场合单元内面未被完全铺展。如站在MC的立场上,这意味着为了表示该形状现在的分辨率太低。
下面对相同的分辨率应用KTC。借助于对切断点的检查,记录了图4b那样的切断点。如果使1条棱上的切断点个数最多为1个,将在图4b中出现的2个切断点合并成适当位置处的1个,最终将铺展成图4c那样的单元内面。两者的表现力的差别是明显的。图4a虽是极端的例子,但本质上相同的不良情况会频繁地发生,图4d是其一例。弯曲的边界面与单元棱的交叉处频繁地发生。用KTC时将其近似成图4f的样子。用MC时可以将其近似成图4g的样子。图4c和图4f是2维的例子。在3维时更多时候只有用KTC才能够表现。可以知道,在相同分辨率下KTC比TC的表现力格外丰富。
实际上当在KTC与MC中比较算法的构架时,KTC完全包含了MC,这在以后将要述及。即,MC图形是KTC图形的部分集合,从这一意义上讲,当然KTC的形状表现比MC的丰富。
虽然在图4a、b、c中将1条棱上的切断点限制为最多1个,但为了理解MC和KTC的框架,该限制的更详细的意义在于识别具有明显的差异是重要的。在进行MC构建时,将1条棱上的切断点的个数限制为0个或1个。在本发明中,也是在1条棱上的切断点的个数为0个或1个的框架下来构建KTC。两者的差别是用MC时只对单元各棱的两端的符合为正负相反的情形在该棱上产生1个切断点(图5a),而用KTC时当对1条棱赋予切断点时,不仅对该两端的符合为正负相反的情形赋予,也对符合相同的情形赋予(图5b)。
以下称MC的情形为“狭义1棱1切断点条件”,称KFC的情形为“广义1棱1切断点条件”,将它们明确区分。如从图5a和图5b可以明白的那样,广义1棱1切断点条件完全包含狭义1棱1切断点条件。因此,关于由两者赋予的2维和3维的切断点配置的图形,MC的全部图形是KTC的全部图形的部分集合。
2.2维Kitta Cubes(2D-KTC)在2维中构成KTC。
2.1 2D-KTC中的切断点配置的分类2D-KTC分2阶段构成。第1阶段是对正方形的4条棱的切断点配置的分类,第2阶段是对各切断点配置的切断线部分(=其两端具有切断点的线的部分)的配置的分类。
图7a至图7f是示出2D-KTC中的全部切断点配置的图形的图。虽然由在4条棱的每一条上切断点的存在或不存在的2种可能性可得出24=16种,但当列举对旋转操作的同值类时,可以将它们归纳为表1和图7a至图7f的6种图形。另外,该图中的用圆圈围起来的图形表示在2D-MC中存在的图形。
如果将关于切断点的存在、不存在的反转操作用于同值类的分类,可将6种图形归纳为4种图形。但是在2.2节中处理切断线部分的配置时必须对全部6种图形进行定义。


在后面的附录A、B中对2D和3D的MC进行了处理,在MC中,在单元内面分类上之所以允许顶点的涂黑或涂白(它们对应于顶点的值的正负区别)的黑白反转,是由于黑白反转后的切断点配置与黑白反转前的切断点配置相比是没有变化的。
图7a至图7f的各配置的简并度依次为1、4、4、2、4、1(加在一起为16)。这里,所谓“简并度”指的是通过旋转操作向1种同值类集中的配置的数目。
2.2 2D-KTC的切断线部分的配置进入2D-KTC的第2阶段。这里,包罗了对在2.1节中得到的6种切断点配置的每一种的切断线部分配置的一切可能性。包罗的要点是“在所着眼的单元内配置切断线部分时,无需利用在该单元的棱上存在的所有切断点”。当1条棱为2个单元共有,在该棱上有1个切断点时,如果在一个单元内它未被用于将单元内线拉直,在另一个单元内就有被利用的可能性。
当然,也有在任何一个单元内都不被利用的可能性。在非常小的形状只与其1条棱交叉的场合就是这样。作为在安装上对它的处理,作为利用切断点信息的态度,可能是在该棱上设置微小的线,另外的态度是在拉直线时完全不利用该切断点。但是,由于设置线(在3维时设置面)意味着形状表面不是多面体,所以在本发明中不作为包罗的对象。基于相同的理由,当单元内切断线之间交叉时,或分岔(=在同一单元棱上3条切断线相交)时也从查数的对象中排除。
图8a至图8v是示出2D-KTC中的切断线部分的全部配置的图,是对在2.1节中得到的6种切断点配置的每一种,分析了拉直线的一切可能性的结果。另外,该图中的用圆圈围起来的图形表示在2D-MC中存在的图形,可知它们不过是2D-KTC的部分集合。
在列举这些同值类(equivalence class)时利用了3维的旋转操作。假如切断线部分的连接是多面体式的,即不具有交叉或分岔,就可涂以黑色和白色将图8a至图8v的4个顶点进行区分。与MC的场合不同,该涂抹在切断线部分配置后进行。当注意到图8的切断线部分配置图形时,例如,如2A(1)、3(5),4(9)那样,出现了相同类型的图形,出于包罗对所有切断点配置的面的铺展方法的目的,任何一个都不能省略。附带说一下,如果用切断线部分配置对在图8a至图8v中描绘的22种图形进行分类,则为10种情形。
3.3维Kitta Cubes(3D-KTC)3.1 3D-KTC中的切断点配置的分类下面说明在只容许旋转操作和映射操作时,总数为212=4096的切断棱配置归纳成几种同值类,以及它们是怎样的配置。
首先,由[式1]的(1)、(2)式成立可知,通过对切断点个数为0~5的配置进行关于切断点有无的反转操作,可以得到切断点个数为7~12的配置,关于同值类,可用该反转操作与其进行应对。
212=Σk=01212k···(1)]]>12k=1212-k···(2)]]>首先,如图9那样,对立方体的边赋予1~12的标号。当将映射操作用于正八面体群的24个旋转操作时可以有48个置换操作。虽然可以对4096个配置的标号从第1个起依次一一检查它时它是新出现的还是已出现过的,但是,这时借助于对各配置进行48次操作,与已出现的表对照,就能够判断与其相同的配置是否已出现过。如表2所示,最后可以得到144种相互不同的切断点配置。


如在前段叙述过的那样,由于切断点个数为7~12的同值类可以由切断点个数为0~5的同值类再现,所以可以将切断点个数为0~6的全部87个图形归纳为表3,在图10a~10ad、图11a~11aa、图12a~12ad中揭示出了图形。另外,这些图中的用圆圈围起来的图形表示在3D-MC中存在的图形。可知,MC中出现的切断点配置图形是KTC的切断点配置图形的极少一部分。虽然在图10、图11、图12中省略了切断点个数为7~12的情形,但与2D-KTC的情形相同,在考虑切断三角形的配置时需要全部144个图形。
144种配置的任何一种都可以作为实际将表面形状读入单元空间时的切断点配置出现。在附录B的表7中将3D-MC的全部切断点配置与3D-KTC的切断点配置进行了对应。可知,MC只是KTC的极少一部分。
3.2关于3D-KTC的平面铺展定义图13示出了连结所赋予的所有切断点的线在单元表面上构成闭环的一个例子。在图9中与单元一起示出的是立方八面体(准正多面体之一。由8个正三角形和6个正方形构成的14面体。即使设切断点的位置是各棱的中心点,在切断点配置的查数和考察闭环方面也不失一般性。该立方八面体呈对其12条棱上的12个中心点鼓起凸包的形状。作为用于探索上述闭环的路线是14面体的各正方形面的各2条对角线,即全部12条对角线加上14面体原有的24条棱总共是36条。
图14是将该准正多面体的12个顶点与36条棱的路线的关系表示成平面上的图形的图。根据该图对哈密顿闭路的查数进行说明。在该图形中,12个顶点全部可以用价数6等同,这里的查数可以只是从特定的一个顶点进行。允许作为哈密顿闭路的路线是通过赋予立方体的表面的全部切断点,在中途对相同的路线或相同的切断点不通过2次及2次以上而返回起始点的路线。列举到切断点个数为0~12的切断点配置的全部144种中的超过半数的87种具有这样的互不交叉的哈密顿路线。
实际上,由这些闭环生成的单元内面的多数对V-CAD是适合的。前面已述及,V-CAD作为单元内的信息具有物理信息,它能够与多介质对应。这时,在不同材料的界面上,在单元内,虽然有多种物质占据,但当这些物质的种数为3种及其以上时,最好借助于进行某种处理将1个单元内的物质种类数限制到最多2种。另外,由于由闭环作成的单元内面的多数将单元分割为2,所以是良好的情形。
但是,不是所有的闭环都将单元分为2个区域。例如,也存在如图15那样的即使作成了闭环也不被分割的情形。图16a、b、c的例子是示出作成闭环,利用以其为边缘的3角形分割法可以形成2分割、3分割的情形。相反,也存在未作成通过所有切断点的1条闭环而将单元2分割的情形,在图17中示出了其一例。
3.3关于三角形分割在闭环形成后以其为边缘铺展单元内面,在多数场合这是容易的。对单元内面进行三角形分割的问题与在平面上对多边形进行三角形分割的问题相关联,已知该三角形分割的图形的场合数可用卡塔朗数表示。关于卡塔朗数和三角形分割将在后面的附录C中叙述。
3.4 3D-KTC的安装例尝试了利用闭环的安装。读入B-rep形状表现,记录切断点,对它们探寻闭环,进行三角形分割。例子是四次圆纹曲面(图18a)和模具(18b)。图18c、d是根据切断点信息将它们进行了复原的图形。它们虽然是由作为KTC的平面铺展的可能性的极小的一部分的、由闭环生成的图形,但可以说具有充分的表现力。
这里应强调的是,虽然与这些闭环对应的切断点配置不过是KTC的一部分,即使如此,它们也不断纳入MC的切断点配置的框架中。MC的切断点配置总共是14种,与此相对照,在KTC的切断点配置的144种内仅仅是与闭环相关联的就如前所述有87种。现示出1例,图16a至图16c的切断点配置虽然可以构成闭环,但在MC中它们是不存在的图形。另外,作为图4f的3维版式,也举出了图16d。
4.总结如上所述,当在相同的分辨率下比较KTC与MC时,KTC可以比MC进行更精密的形状表现。由于KTC的切断三角形配置的同值类完全包含了MC的同值类,所以这是当然的结果。
当在本发明中只是假定广义的1棱1切断点时,严密地提示了KTC所示的多样性。
附录A2维Marching Cubes(2D-MC)在图2a至图2d中示出了2D-MC的4种同值类。仅用单元的4个顶点上的黑白反转操作和3维的旋转操作就得到这4种图形。由于MC遵循狭义的1棱1切断点条件,所以4个顶点的涂黑白区分的图形与切断点配置图形一一对应。对图2a至图2d中的各图形分配了标号mc-0、mc-1、mc-2、mc-3。
在2.1节中叙述了2D-KTC,要注意到进行同值类分类前的配置总数在2维中MC的与KTC的相同,皆为16(=24)。这是由于正方形的顶点数和边的条数无论哪一个都是4的缘故。(在立方体中,由于顶点数与棱的条数不同,所以切断点配置的总数为3D-MC的256(=28),与3D-KTC的4096(=212)不同。
表4是将切断点配置的同值类的个数与全部配置数对应起来的表。另外,表5是MC的切断点配置与KTC的切断点配置的对应表。这里未出现的KTC的切断点配置,即图7b和图7c,在MC的切断点配置中不存在。



附录B3维Marching Cubes(3D-MC)在图3a至图3n中示出了全部的MC的切断点配置的同值类。用于进行分类的操作是顶点上的黑白反转操作、旋转操作以及映射操作。其结果是256(=28)种的涂顶点的区分通过分类被分成这14种图形。当根据切断点的个数将它们进行归纳时得到表6。


关于MC的图,对照通常MC的原论文,用0~14共计15种进行了表示,但这里要注意到只有14种(图3a至图3n)。被省去的MC-14是MC-11的映射对称。由于如果决定了MC-11的面的铺展方法,通过映射操作MC-15的面的铺展方法也唯一地被决定,所以为了保持本发明中叙述的一贯性(在查数同值类时还使用映射操作),而将其省略。
图3a至图3n与原论文的图的排列相同,但省略了单元内面,并且基于上述理由删除了MC-14。表7示出了这些MC的全部情形与KTC的对应。


附录C多边形的三角形分割和卡塔朗数以沿单元表面的闭环为边缘的弯折面的生成问题,即对环的内部进行三角形分割的问题多数场合可以归结为对平面上的凸n边形进行三角形分割的问题。(在闭环全体不是平面的场合,即在弯折严重的单元内面由闭环生成的场合也许有不能归结为后者的可能性。)已知求三角形分割的场合数目的问题与卡塔朗数相关联。下面只给出结果。
卡塔朗数Cm可用(式2)的(3)式表示,这时,想求出当借助于在凸n边形内部不相交的对角线对凸n边形进行三角形分割时有多少种不同的分割方法。求得的数Tn由(式2)的(4)式给出。
Cn=1m+12mm···(3)]]>Tn=Cn-2=1n-12(n-2)n-2···(4)]]>如将n=3、4、...、12代入上式,可以得到T3=1,T4=2,T5=5,T6=14,...,T12=16796。
n=5以下时,不怎么难。现对T6=14进行补充。对于正6边形,当利用三角形的旋转对这14种进行归纳时,归纳成了图19a、b、c示出的3种图形。图19a、图19b、图19c是分别代表6种、2种、6种三角形分割方法的同值类的图示。将它们相加,可以确认为14种。
如上所述,按照本发明的方法和转换程序,通过分割步骤(A)和单元区分步骤(D),可以作成将对象物的外部数据(12)分割成正交单元(13)的单元阶层,以小的存储容量存储外部数据(12)。
另外,由于在切断点决定步骤(B)中将边界数据与单元棱的交点作为单元棱切断点,所以能够内含“如果单元棱的两端的数值的符合不相同,在该棱上设置1个切断点配置,如果符合相同则不设置切断点配置”的MC的所有切断点,并且在1棱1切断点的条件下能够无遗漏地包罗边界面与单元棱线的所有切断点。
另外,由于在边界决定步骤(C)中将连结所求得的单元棱切断点的边界作为单元内形状数据,所以能够内含MC的所有单元内形状数据,并且在1棱1切断点的条件下能够无遗漏地包罗单元内切断三角形配置。
另外,由于在边界单元数据区分步骤(E)中将构成边界单元的单元数据区分为比单元内形状数据更靠内侧的内部单元数据和更靠外侧的外部单元数据,所以能够既保持所有的单元数据与相邻单元的连续性,又能够区分内部单元数据和外部单元数据。
因此,本发明的边界数据转换为单元内形状数据的转换方法和转换程序能够内含MC的所有的单元棱切断点,并且在1棱1切断点的条件下能够无遗漏地包罗其他一切单元棱切断点,据此,它具有能够无遗漏地包罗由连结单元棱切断点的边界构成的单元内形状数据等良好效果。
另外,利用几个优选实施例对本发明进行了说明,但要理解为本发明中包含的权利范围不限于这些实施例。相反,本发明的权利范围包含在所附的权利要求书的范围中所含的一切改良、修正和等效内容。
权利要求
1.一种边界数据转换为单元内形状数据的转换方法,其特征在于包括将由对象物的边界数据构成的外部数据(12)分割成正交格子的单元(13)的分割步骤(A);将上述边界数据与单元棱的交点作为单元棱切断点的切断点决定步骤(B);将连结所求得的单元棱切断点的边界作为单元内形状数据的边界决定步骤(C);将分割成的各单元区分为不含边界面的非边界单元(13a)和含边界数据的边界单元(13b)的单元区分步骤(D);以及将构成边界单元的单元数据区分为比单元内形状数据更靠内侧的内部单元数据和更靠外侧的外部单元数据的边界单元数据区分步骤(E)。
2.如权利要求1所述的边界数据转换为单元内形状数据的转换方法,其特征在于上述单元在2维中是长方形单元,在切断点决定步骤(B)中以边界数据与单元棱的24=16种交点作为单元棱切断点,进而将由旋转操作得出的同值类作为相同图形区分为全部6种图形。
3.如权利要求2所述的边界数据转换为单元内形状数据的转换方法,其特征在于在上述边界决定步骤(C)中对上述全部6种图形将连结单元棱切断点的边界线作为单元内形状数据。
4.如权利要求2所述的边界数据转换为单元内形状数据的转换方法,其特征在于在上述边界决定步骤(C)中将由3维的旋转操作得出的同值类作为相同图形,将单元内形状数据区分为共计22种单元内形状图形。
5.如权利要求1所述的边界数据转换为单元内形状数据的转换方法,其特征在于上述单元在3维中是长方体单元,在切断点决定步骤(B)中,以边界数据与单元棱的212=4096种交点图形作为单元棱切断点,进而将由旋转操作和映射操作得出的同值类作为相同图形将其区分为全部144种图形。
6.如权利要求5所述的边界数据转换为单元内形状数据的转换方法,其特征在于在上述切断点决定步骤(B)中,进而将由关于切断点的存在/不存在的反转操作得出的同值类作为相同图形,区分为单元棱切断点为0~6个的87种图形。
7.如权利要求5或6所述的边界数据转换为单元内形状数据的转换方法,其特征在于在上述边界决定步骤(C)中,对上述全部144种图形将连结单元棱切断点的边界面作为单元内形状数据。
8.一种边界数据转换为单元内形状数据的转换程序,其特征在于包括将由对象物的边界数据构成的外部数据(12)分割成正交格子的单元(13)的分割步骤(A);将上述边界数据与单元棱的交点作为单元棱切断点的切断点决定步骤(B);将连结所求得的单元棱切断点的边界作为单元内形状数据的边界决定步骤(C);将分割成的各单元区分为不含边界面的非边界单元(13a)和含边界面的边界单元(13b)的单元区分步骤(D);以及将构成边界单元的单元数据区分为比单元内形状数据更靠内侧的内部单元数据和更靠外侧的外部单元数据的边界单元数据区分步骤(E)。
全文摘要
本发明包括将由对象物的边界数据构成的外部数据12分割成正交格子的单元13的分割步骤(A);将边界数据与单元棱的交点作为单元棱切断点的切断点决定步骤(B);将连结所求得的单元棱切断点的边界作为单元内形状数据的边界决定步骤(C);将分割成的各单元区分为不含边界面的非边界单元13a和含边界面的边界单元13b的单元区分步骤(D);以及将构成边界单元的单元数据区分为比单元内形状数据更靠内侧的内部单元数据和更靠外侧的外部单元数据的边界单元数据区分步骤(E)。
文档编号G06T17/00GK1639715SQ0380486
公开日2005年7月13日 申请日期2003年2月27日 优先权日2002年2月28日
发明者手岛吉法, 加濑究, 宇佐见修吾, 牧野内昭武 申请人:独立行政法人理化学研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1