三维形状数据向单元内部数据的变换方法及变换程序 【技术领域】
本发明涉及能够用小存储容量存储综合了形状和物理特性的实体数据,并能够将CAD和仿真一维化的实体数据的存储方法,更详细地说,涉及将三维形状数据通过八叉树分割变换为单元的内部数据的变换方法和变化程序。
背景技术
在尖端的研究开发·技术开发的实践中,伴随着其高度化·复杂化,庞大的试行错误不可避免,并增加了开发中途的危险性。作为以科学技术立国为目标的我国,极力排除这些危险,实现开发过程地革新的高度化·效率化极为重要。
现在,在研究开发·技术开发的实践中,CAD(Computer AidedDesign:计算机辅助设计)、CAM(Computer Aided Manufacturing:计算机辅助制造)、CAE(Computer Aided Engineering:计算机辅助工程)、CAT(Computer Aided Testing:计算机辅助测试)等被分别作为设计、加工、解析、试验的仿真手段加以利用。
此外,根据本发明,作为连续的仿真等的C-Simulation(Cooperative Simulation:协同仿真)、考虑了加工过程的A-CAM(Advanced CAM:高级CAM)、能达到很高精度的D-fabrication(Deterministic fabrication:确定性制造)等也应该会广泛普及。
在上述现有的仿真手段中,对目标物用CSG(Constructive SolidGeometry:构造立体几何)和B-rep(Boundary Representation:边界表示法)来存储数据。
但是,在CSG中,由于将目标物整体作为微细的立体模型的集合体进行存储,所以当安装数据量大的仿真手段(软件等)时,就变成了要处理庞大的数据,即便在使用了大型计算机的情况下,也有进行解析时很花时间的问题。
此外,在B-rep中,由于用边界表现目标物,所以数据少,虽然数据量变小,但是由于没有直接的与边界面的内部相关的信息,所以这样就有不适于变形解析等的问题。
进而,在这些的现有数据存储手段中,用热·流体解析、固体的大变形解析、这些的复合解析等,分割成适于这些情况、解析的网格等,虽然由于使用有限元法等,就能够对其解析结果进行显示等,但是将CAD和仿真一维化却比较困难,有不能用相同数据对设计·解析加工·组合·试验等的各工序进行管理的问题。
换言之,在现有的立体/表面-CAD(以下称为S-CAD)中,有以下的问题:
(1)不能传递数据,在内部的变换操作差(数值误差和处理方法的问题)。
(2)不能直接使用于仿真(由于没有内部信息所以必须生成网格)。
(3)不能进行CAM的加工的研究(只有最终形状)。
此外,在加工中还有以下的问题:
(1)不能表现加工过程(粗加工和工序设计的支援不充分)。
(2)不能适应激光加工和超尖端加工等新加工法(只进行切削,数值精度不够)。
(3)不能选择加工法本身(用复合体在内部具有不同的材料特性)。
为了解决上述问题,本发明的发明人等,发明并申请了“综合了形状和物理特性的实体数据的存储方法”(特愿2001-25023、未公开)。
该发明如图1所示的那样,通过八叉树分割将目标物的由边界数据构成的外部数据分割成边界平面正交的长方体的单元,将被分割的各单元区分成位于目标物的内侧或外侧的内部单元13a和包括边界面的边界单元13b。另外在该图中15是切断点。
根据该发明,通过对各单元的每一个存储各种物理特性值,就能够用小存储容量存储综合了形状和物理特性的实体数据,由此,就能够对物体的形状·构造·物理特性信息·历史进行一维地管理,能够用相同数据对与从设计开始到加工、组合、试验、评价等一连串工序相关的数据进行管理,能够使CAD和仿真一维化。
在上述的实体数据的存储方法(以下称为“体积CAD”或“V-CAD”)中,必须保有能够在边界单元再构成三维形状数据(外部数据)的边界面的边界数据。
此外,该边界数据在没有保持与邻接单元的连续性并且将表面分割为三角形网格的时候,就会产生间隙或微小的三角形或细长的三角形等,有变得不能进行正确的仿真的问题。
另外,虽然知道有填埋在大小不同的体积间产生的三角形网格的间隙的处理(裂缝补丁处理),但是由于在该处理中单纯地填埋不同的间隙,所以就在本来光滑的表面生成了三角形间的角度陡的网格。此外,为了解决该问题,虽然提出了特开2001-22961的“从非一样体积模型的同相位面生成方法”,但是要适用于模型不同的体积CAD比较困难,并且有处理复杂的问题。
【发明内容】
本发明是为了解决上述问题而创造的。即,本发明的目的在于:提供一种在体积CAD中,保持与邻接单元的连续性,不会形成间隙或精度上所不希望的三角形,能够从外部数据形成能够在即便曲率大的曲面上也能够将精度高地近似的表面分割成三角形网格的单元内部数据的三维形状数据向单元内部数据的变换方法及变换程序。
根据本发明,提供了一种三维形状数据向单元内部数据的变换方法和变换程序,其特征在于,具有:八叉树分割步骤(A),通过八叉树分割将目标物的由边界数据构成的外部数据(12)分割成边界平面正交的长方体的单元(13);单元区分步骤(B),将被分割的各单元区分成位于目标物的内侧或外侧的内部单元(13a)和包括边界数据的边界单元(13b);切断点决定步骤(C),求出所述边界数据的边界单元(13b)的棱线的切断点;以及边界面决定步骤(D),当求出的切断点数为大于等于3、小于等于12时,使连结该切断点的多边形成为边界面的单元内部数据。
根据该方法和变换程序,通过八叉树分割步骤(A)和单元区分步骤(B),就能够用小存储容量存储外部数据(12)来作为通过八叉树分割将目标物的外部数据(12)分割为边界平面正交的长方体的单元(13)的单元分层。
此外,通过切断点决定步骤(C)和边界面决定步骤(D),就能够保持与邻接单元的连续性,能够不形成间隙和扭曲的三角形地使表面成为多边形的边界面的单元内部数据。
根据本发明的优选的实施方式,在边界面决定步骤(D)中,将切断点数为3、4、5、6的情况分别作为其他的边界单元种类(KTC3、KTC4a、KTC4b、KTC5、KTC6)加以区分,预先设定按各边界单元种类的每一种进行切断的棱线的组合,从求出的切断点数和切断的棱线,通过模式匹配求出边界单元种类和其组合。
通过该方法,就能够用边界单元种类和其组合来存储边界面,能够用小存储容量来进行保存,并能够保持与邻接单元的连续性。
此外,也可以在用连结切断点的多边形进行切断的棱线中,通过构成只描绘单元的表面的闭环来决定边界面。通过该方法就能够通过用切断点的排列所表现的三角形来存储边界面。
最好是还具有:三角形分割步骤(E),将所述多边形分割成连结切断点的多个三角形;以及三角形分割选择步骤(F),分别对多个三角形分割,延长外部数据(12)的边界数据所具有的法线,选择与其具有交点且距离最近的三角形,求出与该三角形的法线所成的角,选择它们的最大偏差为最小的三角形分割。
通过该方法,即使在边界面是曲面的情况下,也能够保持与邻接单元的连续性,不会形成间隙或精度上所不希望的三角形,能够将该曲面分割成近似的三角形网格。
本发明的其他目的和有利的特征从参照了附图的以下说明就会变清楚了。
【附图说明】
图1是用二维表示本发明的分割方法的示意图。
图2是本发明的数据变换方法和变换程序的流程图。
图3A、图3B、图3C是表示包含边界数据的单元的各部的图。
图4A至图4E是边界面为平面时的切断点数为3、4、5、6的例子。
图5A和图5B是示意地表示三角形分割的选择法的图。
图6A和图6B是对应于曲率大的面被扩展的KTC4a和KTC4b的例子。
图7A和图7B是KTC5和KTC6的其他的例子。
图8A至图8E是边界面为曲面时的切断点数为3、4、5、6的例子。
图9A至图9F是边界面为平面时的切断点数为7、8、9、10、11、12的例子。
【具体实施方式】
下面,参照附图来说明本发明优选的实施方式。
图2是本发明的数据变换方法和变换程序的流程图。如该图所示,本发明的方法和变换程序由八叉树分割步骤(A)、单元区分步骤(B)、切断点决定步骤(C)、边界面决定步骤(D)、三角形分割步骤(E)、以及三角形分割选择步骤(F)构成。
从外部输入的外部数据12是表示多面体的多面数据、用于有限元法的四面体或六面体单元、用于三维CAD或CG工具的曲面数据、或用由部分平面或曲面构成的信息表现其他立体表面的数据。
外部数据12除了是这样的数据(称为S-CAD数据)之外,还可以是(1)通过V-CAD独自的接口(V-接口)由人的输入直接做成的数据、(2)测定机或传感器、数字转换器等的表面的数字化数据、(3)具有CT扫描或MRI以及一般使用于体数据绘制法的三维像素数据等的内部信息的体积数据。
在八叉树分割步骤(A)中,通过八叉树分割将由在外部数据取得步骤(未图示)中取得的目标物的边界数据构成的外部数据12分割成边界平面正交的长方体的单元13。在该八叉树分割步骤(A)中,进行被修正的八叉树(Octree)的空间分割。所谓八叉树表现,即八叉树的空间分割,是对包括目标立体(目标物)的、成为基准的长方体13进行8分割,反复循环地进行8分割处理直到立体完全被包含于各个区域中不能再被包含为止。通过该八叉树分割就能够比三维像素表现更大幅地减少数据量。
将由八叉树的空间分割分割的一个空间区域称为单元13。单元是边界平面正交的长方体。根据单元的分层构造、分割数或分解能来表现在空间中所占的区域。由此在整体空间中,将大小不同的单元作为层叠的单元来表现目标。
此外,作为八叉树的特别情况,用全等的长方体(相同分割数)表现所有单元的情况成为与称为“三维像素”的形态相同。
在单元区分步骤(B)中,将被分割的各单元区分为位于目标物的内侧或外侧的内部单元13a和包含边界数据的边界单元13b。
即,在本发明中为了表现边界单元13b而使用被修正的八叉树,在单元的内部不包含边界的成为具有其最大大小的内部单元13a(长方体),包含来自外部数据12的边界信息的单元成为边界单元13b。
在切断点决定步骤(C)中,求出边界数据的边界单元13b的棱线的切断点15。
在边界面决定步骤(D)中,当求得的切断点数为大于等于3、小于等于12时,使连结该切断点的多边形成为边界面的单元内部数据。即,在边界面决定步骤(D)中,在用连结切断点的三角形切断的棱线中,构成能够只描绘单元的表面的闭环。此外,将切断点数为3、4、5、6的情况分别作为其他的边界单元种类(KTC3,KTC4a,KTC4b,KTC5,KTC6)加以区分,预先设定对各边界单元种类的每一个进行切断的棱线的组合,能够通过模式匹配从求得的切断点数和切断的棱线求出边界单元种类和其组合。
在三角形分割步骤(E)中,将在边界面决定步骤(D)中求得的多边形分割成连结切断点的多个三角形。该三角形分割通常存在多个。
在三角形分割选择步骤(F)中,分别对在三角形分割步骤(E)中求得的多个三角形分割,延长外部数据12的边界数据所具有的法线,选择与其具有交点且距离最近的三角形,求出与该三角形的法线所成的角,选择它们的最大偏差最小的三角形分割。
在本发明的方法中,按照需要反复进行步骤(A)~步骤(F)。此外,使用获得的V-CAD数据,依次进行例如设计、解析、加工、组合、试验等的仿真,并将其输出给输出步骤(作为例如CAM或多边形数据等的三角形补丁)。
下面,对本发明进行更详细的说明。
作为目标物的由边界数据构成的外部数据12,假定成曲面和三角形补钉(网、网格以下相同)(以下称为输入面)。下面,针对只从这些与被空间分割(三维像素和八叉树)的各单元的棱的切断点信息和输入面的法线信息向作为体积CAD的内部表现的边界单元种类(KTC3、KTC4a、KTC4b、KTC5、KTC6)变换的方法进行描述。以下,将边界单元种类(KTC3、KTC4a、KTC4b、KTC5、KTC6)简称为“KT单元”或“KTC”。
图3A、图3B和图3C,表示包含边界数据的单元的各部。通过八叉树分割被分割成边界平面正交的长方体的单元具有6个面、12条棱线(以下仅称为“棱”)、8个顶点。
6个面如图3A所示,从z轴的正面侧看去,成为加上意为左、右、下、上、后、前的L、R、D、U、B、F或(1)(2)(3)(4)(5)(6)的符号,并按该顺序而具有优先度。
12条棱线如图3B所示,加上构成棱的2个面符号:LD、LU、LB、LF、RD、RU、RB、RF、DB、DF、UB、UF或[1]~[12]的符号,并按该顺序而具有优先度。
8个顶点如图3C所示,加上构成顶点的3个面符号:LDB、LDF、LUB、LUF、RDB、RDF、RUB、RUF或①~⑧的符号,并按该顺序而具有优先度。
另外,这些名称或符号是为了方便而加上的,也可以是适于逻辑计算的其他记号、数字、或其组合。
下面,在KTC内的切断棱线的名称使用在图3中所标记的符号。
图4A至图4E表示表示作为边界数据所具有的边界面为平面时的边界面与棱线的切断点数是3、4、5、6的情况。直到从任意的切断棱开始又回到同一棱为止,找寻并连结用相邻的棱切断的来构成闭环。在邻接着的棱之间,在棱的名字(2个面符号)中一定有一个具有同一面符号。
在三角形分割步骤(E)中,当将多边形分割成连结切断点的多个三角形时得到通常多个三角形分割。即,在KTC4a和KTC4b中有2种、在KTC5中有5种、在KTC6中有14种的三角形分割。在被扩展的边界单元种类(以下称为扩展KTC)中,由于通过各个三角形分割成为不同的形状,所以在三角形分割选择步骤(F)中必须选择最近似于外部数据12的边界数据的三角形分割。
图5A和图5B,示意地表示了三角形分割的选择法,图5A是优选例,图5B是不合适的例子。在本发明中,选择存在延长在输入面的单元内的法线分布中的每个法线而求得的交点的单元内三角形,即便在其中也选择距离最近的单元内三角形,求出与该单元内三角形的法线所成的角。选择它们的最大偏差最小的三角形分割。
在参数曲面情况下,使用用指定的分割数分割UV的时的点中的法线,在三角形网格输入的情况下,直接使用各三角形的法线。
图6A和图6B表示在被扩展的KTC4a和KTC4b中,即使对于曲率大的表面也成为能够适应的例子。
另外,除上述实施例之外,在切断点数为大于等于3,小于等于6时,也可以通过以下说明的模式匹配来进行边界面决定步骤(D)。
在本发明中,将该切断点数为3、4、5、6的情况分别作为其他的边界单元种类(KTC3、KTC4a、KTC4b、KTC5、KTC6)加以区分。此外,图7A和图7B参考地表示KTC5和KTC6的其他的例子。
各KTC具有以下的性质。
KTC3:经由顶点(以下称为枢轴顶点(pivot vertex))邻接的3棱一定共有相同的方位。换言之,将顶点的3方位分解为2个的3棱相互邻接(例:与顶点LUF邻接的棱LF,LU,UF)。
KTC4a:经由棱(以下称为枢轴棱)邻接的4棱分解枢轴棱(pivotedge)并附加枢轴棱所不包含的方位。例如,与LU邻接的4棱分解成L和U并分别(作为LR、UD的2方向的补方向)附加(LF,UF,LB,UB)BF。同样地,对DF是(LD,RD,LF,RF)。
KTC4b:经由面(枢轴面)邻接的4棱是不能够进行具有枢轴面的方位的2方位的组合的4棱。例如,属于L的组合剩余DU、BF的2方位(DB,DF,UB,UF)。
KTC5:当有(KTC4b+KTC3)枢轴面和其面上的枢轴顶点时,首先与KTC4b同样地做成4棱,与KTC3同样地取得与枢轴顶点邻接的3棱和XOR(从和集合中除去积)。例如,枢轴是面B和顶点RDB时,(LD,LU,RD,RU)(←面B)XOR(RD,DB,RB)(←顶点RDB)=(LD,LU,RU,DB,RB)。
KTC6:(对KTC3的补(12-3-3))当将由枢轴对顶点决定的KTC3的补集合(例如:RDF(LUB))作为枢轴进行选择时,作为6棱的补集合是(RU,RB,LD,DB,LF,UF)。即,连接枢轴顶点和对顶点的补方位。进而,循环选择任意棱(例如RU)探索描绘共有方位的棱(邻接棱)(这时RB或UF)。
作为单元内面抽出算法,求出上述法则的逆法则。下面,说明在边界面决定步骤(D)中的、边界单元种类的抽出算法。
另外,在切断点与顶点实质上一致的情况下,作为“顶点简并”,分类成具有3条棱的KTC。此外,作为前处理具有切断点的切断棱按方位顺序从LD到UF进行分类。
(逆KTC的法则(切断点→KTC图形))
KTC3:用3条切断棱构成枢轴顶点的8图形
如表1所示,成为将①~⑧作为枢轴顶点的(LD,LB,DB),(LD,LF,DF),(LU,LB,UB),(LU,LF,UF),(RD,RB,DB),(RD,RF,DF),(RU,RB,UB),(RU,RF,UF)的某一个。当切断点作为简并情况加到单元顶点上时,对于3种棱是否分别进入图形进行检查。如果进入的话,不论哪一种情况都对发现快的进行管理,关于邻接单元,处理之后的单元通过进行复制保持了匹配性。
[表1]
KTC3①LDB②LDF③LUB④LUF⑤RDB⑥RDF⑦RUB⑧RUFLD,LB,DBLD,LF,DFLU,LB,UBLU,LF,UFRD,RB,DBRD,RF,DFRU,RB,UBRU,RF,UF
KTC4a:对应于枢轴棱的12种4条棱的排列
如表2所示,成为对应于[1]~[12]的枢轴棱的(LB,LF,DB),(LB,LF,UB,UF),(LD,LU,DB,UB),(LD,LU,DF,UF),(RB,RF,DB,DF),(RB,RF,UB,UF),(RD,RU,DB,UB),(RD,RU,DF,UF),(LD,LB,RD,RB),(LD,LF,RD,RF),(LU,LB,RU,RB),(LU,LF,RU,RF)的某一个。因此预先设定该棱线的组合,在获得4个切断点(棱)的阶段进行模式匹配。关于顶点简并与KTC3同样(对每一个增加3倍)。
[表2]
KTC4a [1]LD [2]LU [3]LB [4]LF [5]RD [6]RU LB,LF, DB,DF LB,LF, UB,UF LD,LU, DB,UB LD,LU, DF,UF RB,RF, DB,DF RB,RF, UB,UF [7]RB [8]RF [9]DB [10]DF [11]UB [12]UF RD,RU, DB,UB RD,RU, DF,UF LD,LB, RD,RB LD,LF, RD,RF LU,LB, RU,RB LU,LF, RU,RF
KTC4b:如表3所示,进行是否进入枢轴面(还包含对面的方向)的3种排列(DB,DF,UB,UF),(LB,LF,RB,RF),(LD,LU,RD,RU)的模式匹配。对于简并同样地研究3个。
[表3]
KTC4b (1)L (2)R (3)D (4)U (5)B (6)F DB,DF,UB,UF LB,LF,RB,RF LD,LU,RD,RU
KTC5:如表4所示,在枢轴面和该面上的枢轴顶点的选择方法上有6×4=24种图形。
[表4]
KTC5
(1)L ①LDB ②LDF ③LUB ④LUF DF,UB,UF, LD,LB DB,UB,UF, LD,LF DB,DF,UF, UD,LB DB,DF,UB, LU,LF
(2)R ⑤RDB ⑥RDF ⑦RUB ⑧RUF DF,UB,UF, RD,RB DB,UB,UF, RD,RF DB,DF,UF, RU,RB DB,DF,UB, RU,RF
(3)D ①LDB ②LDF ⑤RDB ⑥RDF LF,RB,RF, LD,DB LB,RB,RF, LD,DF LB,LF,RF, RD,DB LB,LF,RB, RD,DF
(4)U ③LUB ④LUF ⑦RUB ⑧RUF LF,RB,RF, LU,UB LB,RB,RF, LU,UF LB,LF,RF, RU,UB LB,LF,RB, RU,UF
(5)B ①LDB ③LUB ⑤RDB ⑦RUB LU,RD,RU, LB,DB LD,RD,RU, LB,UB LD,LU,RU, RB,DB LD,LU,RD, RB,UB
(6)F ②LDF ④LUF ⑥RDF ⑧RUF LU,RD,RU, LF,DF LD,RD,RU, LF,UF LD,LU,RU, RF,DF LD,LU,RD, RF,UF
KTC6:如表5所示,表示了对顶点的4种模式匹配。
[表5]
KTC6 ①LDB ⑧RUF ③LUB ⑥RDF ④LUF ⑤RDB ②LDF ⑦RUB LU,UB,RB, RD,DF,LF LD,LF,UF, RU,RB,DB LD,LB,UB, RU,RF,DF LU,LB,DB, RD,RF,UF
不进入以上的图形的就保持原样,按照需要反复进行步骤(A)-步骤(F)。
图8A至图8E表示边界数据所具有的边界面为曲面时的边界面与棱线的切断点数为3、4、5、6的情况。在本发明中,将该切断点数为3、4、5、6的情况分别作为被扩展的边界单元种类(KTC3,KTC4a,KTC4b,KTC5,KTC6)加以区分。
图9A至图9F是边界面为平面时的切断点数为7、8、9、10、11、12的例子。
即使在切断点数是7、8、9、10、11、12的情况中,也能够同样地使用构成上述边界面决定步骤(D)的闭环的方法。
如上所述,根据本发明的方法,通过八叉树分割步骤(A)和单元区分步骤(B),就能够用小存储容量存储外部数据12来作为通过八叉树分割将目标物的外部数据12分割成边界平面正交的长方体的单元13的单元的层次。
此外,通过切断点决定步骤(C)和边界面决定步骤(D),能够确保与邻接单元的连续性,能够不形成间隙或锐角面地使表面成为多边形的边界面的单元内部数据。
此外,将切断点数为3、4、5、6的情况分别作为其他的边界单元种类(KTC3,KTC4a,KTC4b,KTC5,KTC6)加以区分,预先设定对各边界单元的每一种进行切断的棱线的组合,通过从求出的切断点数和切断的棱线通过模式匹配求出边界单元种类和其组合的方法,此外,通过当切断点数为从3到12时构成能够用各切断点只描绘单元的表面的闭环的方法,就能够用边界单元种类和其组合存储边界面,能够用小存储容量进行保存,并能够保持与邻接单元的连续性。
进而,通过将多边形分割成连结切断点的多个三角形,对多个三角形分割分别延长外部数据12的边界数据所具有的法线,选择与其具有交点且距离最近的三角形,求出与该三角形的法线多成的角,选择它们的最大偏差最小的三角形分割的方法,即使边界面是曲面的情况,也能够保持与邻接单元的连续性,不会形成间隙或锐角面,能够将该曲面分割成近似的三角形网格。
因此,本发明的三维形状数据向单元内部数据的变换方法及变换程序,在体积CAD中,具有能够保持与邻接单元的连续性,不会形成间隙或精度上所不希望的三角形,能够从外部数据形成即使是曲率大的曲面也能够将精度高地近似的表面分割成三角形网格的单元内部数据等良好效果。
另外,虽然通过几个优选的实施例来对本发明进行了说明,但是包含于本发明中的权利范围应理解为并不局限于这些实施例。另外,本发明的权利范围包括一同提交的权利要求书中所包含的所有改良、修正以及等价物。