相对于数字建模的空间定位数字建模的对象并执行体积查询的方法

文档序号:568203 发布日期:2021-05-18 浏览:12次 >En<

阅读说明:本技术 相对于数字建模的空间定位数字建模的对象并执行体积查询的方法 (Method for positioning a digitally modeled object with respect to a digitally modeled space and performing a volume query ) 是由 T·科拉 X·古尔东 P-Y·比松 于 2020-11-11 设计创作,主要内容包括:一种确定数字建模的对象相对于数字建模的空间的定位并执行体积查询的计算机实现的方法,包括以下步骤:a)取回或创建对象的体素表示(OV)和空间的体素表示;b)将数字建模的对象的这些表示划分为中心体素的集合(OH)和边界体素的集合(OB);c)确定对象的体素的集合与空间的体素的集合之间的交集;d)基于所述交集,确定数字建模的对象相对于数字建模的空间的定位。(A computer-implemented method of determining the positioning of a digitally modeled object relative to a digitally modeled space and performing a volumetric query, comprising the steps of: a) retrieving or creating a voxel representation (OV) and a spatial voxel representation of the object; b) dividing the representations of the digitally modeled object into a set of central voxels (OH) and a set of boundary voxels (OB); c) determining an intersection between a set of voxels of the object and a set of voxels of the space; d) based on the intersection, a location of the numerically modeled object relative to the numerically modeled space is determined.)

相对于数字建模的空间定位数字建模的对象并执行体积查询 的方法

技术领域

本发明涉及确定数字建模的对象相对于数字建模的空间的定位并用于执行体积查询的计算机实现的方法。本发明涉及计算机辅助工程领域。

背景技术

以三维(3D)详细描述产品的数字实体模型已经在许多行业(例如,机械工程、造船、建设等)中变得至关重要。

通过在设计过程中及早确定潜在问题并替换物理原型,可以减少上市时间和产品开发成本。此外,允许在选择最终设计方案之前探索更多的设计替代方案。

大型系统(例如,轮船、飞机或工业厂房)的数字实体模型可以包括数百万个表示组件的3D对象,这些组件相当于庞大的数据量,这样的数据量是难以处理的。

这样的大型系统通常被分为几个区域。例如,为了确保海上生命安全法规,要求轮船被划分为防火区域、水密舱和水密甲板;核电厂被划分为不同的区域,这些区域对应于不同级别的安全和辐射危害;建筑物由若干楼层组成,并且这些楼层还进一步被分为多个防火区,以防止火灾传播等。这样的分解为区域的过程由数字实体模型重现。

通常有必要确定数字实体模型的哪些3D对象位于特定的3D区域中(体积查询),以及相反地确定哪个(哪些)区域包含特定的对象。例如,这允许:

-计算关键产品性能指标,例如,重量、体积等。

-可追溯性,并检查设计一致性、对法规的符合性、自定义要求。例如,在轮船中,检查每个水密舱中是否有泵、公共房间中是否有火灾检测器等可能是必要的。

3D对象和区域(或空间)通常以准确地说明其几何形状的格式(例如,棋盘格化的格式)表示,即,实体部分由多边形(通常为三角形)形成的三维表面表示。使用这种格式直接执行体积查询将要求太多的存储器空间和处理功率,特别是在考虑到对象的数量可能高达数百万个,有时甚至数千万个的情况下。因此,在执行体积查询之前,通常将体积转换为基于体素的格式,优选地为n叉树体素格式,并且甚至更优选地为八叉树(n=3的n叉树)体素格式。这是从US 8,013,854中已知的(尽管上下文不同)。

对象或空间的八叉树体素表示基于包含对象/空间的立方体(注意,空间可以被认为是特殊种类的对象)。然后,将这个立方体拆分为以2×2×2的三维阵列布置的8个八分圆(octant)(较小的立方体);更一般地,在任意n叉树表示中,将体积拆分为2n个较小的体积。对包含对象的一部分的立方体再次进行拆分;不会对不包含部分几何形状的那些对象进行拆分。该过程以预定的递归次数(例如,10次)递归地执行。在过程结束时,这些立方体形成了产品零件的近似表示,与基于统一体素的表示相比,该近似表示具有显著更少的存储器占用。此外,该表示方便地存储在基于树的数据结构中。对基于体素的表示的计算通常在用户输入查询之前离线执行。

图1A示出了数字建模的空间S和三个数字建模的对象O1、O2和O3的棋盘格化的表示(为简单起见,以2D方式表示)。对象O1完全在空间S的内部;对象O3完全在空间S的外部;并且对象O2部分在空间的内部且部分在空间的外部,并且更特别地跨越空间的边界(注意,由多个不相交的部分形成的非连通的对象可能“部分在内部且部分在外部”,而非“跨越边界”)。

图1B示出了相同空间和对象的“基于体素”的表示(尽管术语“体素”在这里不合适,因为表示是二维的)。参考SV表示空间的基于体素的表示,OV1、OV2和OV3表示对象的基于体素的表示(为表示的清楚起见,该表示是非常简化的)。OV1的所有体素(实际上只有其中一个)与SV的体素相交,并且OV1的所有体素均不与外部空间SO相交(该外部空间SO本身可以被分解为体素,或者不被分解为体素);这允许确定OV1“完全在SV的内部”。OV3的所有体素(实际上只有其中一个)与外部空间SO相交,并且OV3的所有体素均不与SV相交;这允许确定OV3“完全在SV的外部”。最后,OV2的某些体素与SV相交,并且某些体素与SO相交(在该特定示例中,OV2由与SV和SO两者相交的单个体素组成);这允许确定OV2“部分在SV的内部且部分在SV的外部”。

然而,由于使用了几何形状的近似(基于体素的)表示,因此这种方法容易出错——特别是考虑到位于空间的边界附近的对象。这在图1C上进行了说明,其中发现“体素建模的”对象OV4和OV5两者都部分在空间SV的内部且部分在空间SV的外部,即使棋盘格化的表示示出这两个对象实际上分别完全在空间的内部和完全在空间的外部。实际上,空间和对象的基于体素的表示都延伸超出了对应的棋盘格化的表示(即,分别构成了空间和对象的上限),从而导致了虚假的相交。结果是,如果执行针对“完全在内部的”对象的查询,则将丢失OV4,而如果查询扩展到“部分在内部的”对象,则将包括OV5。由于在许多情况下若干重要对象位于空间的边界附近的事实,因此这尤其成问题。例如,在建筑物和轮船中,灭火器和烟雾检测器通常贴附在房间的墙壁或天花板上。因此,例如在灭火器位于相邻空间中时在房间中检测到该灭火器是可能的,或者反之将丢失该灭火器。

改进体素表示的空间分辨率可以缓解该问题,但是在计算资源方面的成本很高,并且将不能在所有情况下解决该问题。

发明内容

本发明旨在以最小的附加复杂度来克服现有技术的这些缺点。

本发明的目的是一种确定数字建模的对象相对于数字建模的空间的定位的计算机实现的方法,包括以下步骤:

a)取回或创建数字建模的对象和数字建模的空间的体素表示;

b)将数字建模的对象的体素表示划分为中心(heart)对象体素的第一集合和边界对象体素的第二集合,并且将数字建模的空间的体素表示划分为中心空间体素的第三集合和边界空间体素的第四集合;

c)评估是否:

-边界对象体素的第二集合与中心空间体素的第三集合相交;

-边界对象体素的第二集合与边界空间体素的第四集合相交;以及

-边界对象体素的第二集合延伸到数字建模的空间的外部;

d)基于所述评估的结果来确定数字建模的对象相对于数字建模的空间的定位。

根据该方法的特定实施例:

-步骤c)还可以包括评估是否:

-中心对象体素的第一集合与中心空间体素的第三集合相交;

-中心对象体素的第一集合与边界空间体素的第四集合相交;以及

-中心对象体素的第一集合延伸到数字建模的空间的外部。

-步骤d)可以包括:

d-1)计算所述评估的结果的第一三值逻辑函数,表示数字建模的对象是否完全在数字建模的空间的内部;

d-2)计算所述评估的结果的第二三值逻辑函数,表示数字建模的对象是否跨越数字建模的空间的边界;以及

d-3)计算所述评估的结果的第三三值逻辑函数,表示数字建模的对象是否完全在数字建模的空间的外部;

其中,所述三值逻辑函数中的每一个取“真”值、“假”值或“不确定”值。

-更具体地,步骤d)还可以包括取决于所述三值逻辑函数的值将对象指派给多个类别中的一个。

-甚至更具体地,所述类别可以包括:

-数字建模的对象的第一类别,针对该第一类别,第一三值逻辑函数取“真”值,并且第二三值逻辑函数和第三三值逻辑函数取“假”值;

-数字建模的对象的第二类别,针对该第二类别,第一三值逻辑函数和第二三值逻辑函数取“不确定”值,并且第三三值逻辑函数取“假”值;

-数字建模的对象的第三类别,针对该第三类别,第一三值逻辑函数和第三三值逻辑函数取“假”值,并且第二三值逻辑函数取“真”值;

-数字建模的对象的第四类别,针对该第四类别,第一三值逻辑函数取“假”值,并且第二三值逻辑函数和第三三值逻辑函数取“不确定”值;

-数字建模的对象的第五类别,针对该第五类别,第一三值逻辑函数和第二三值逻辑函数取“假”值,并且第三三值逻辑函数取“真”值;以及

-数字建模的对象的第六类别,针对该第六类别,三个三值逻辑函数全部取不确定值。

-所述体素表示可以为n叉树体素表示,并且优选地为八叉树体素表示。

-步骤a)可以包括根据数字建模的对象和数字建模的空间中的至少一个的不同的表示来创建其体素表示。

本发明的另一目的是一种执行体积查询的计算机实现的方法,包括:

-第一阶段,其包括以下步骤:

i)取回或创建多个数字建模的对象和一个或多个数字建模的空间的体素表示;

ii)将每个数字建模的对象的体素表示划分为中心对象体素的第一集合和边界对象体素的第二集合,并且将所述数字建模的空间中的每一个的体素表示划分为中心空间体素的第三集合和边界空间体素的第四集合;

-第二阶段,其包括以下步骤:

iii)接收来自用户的请求,该请求包括所述一个或多个数字建模的空间的指示以及数字建模的空间与要被取回的对象之间的要求的关系的指示;

iv)针对所述数字建模的对象中的每一个,评估是否:

-边界对象体素的第二子集与中心空间体素的第三集合相交;

-边界对象体素的第二子集与边界空间体素的第四集合相交;

v)针对所述数字建模的对象中的每一个,基于所述评估的结果来确定其是否与数字建模的空间匹配要求的空间关系;以及

vi)取回与数字建模的空间匹配要求的空间关系的数字建模的对象。

根据这种方法的特定实施例:

-步骤iv)还可以包括评估是否:

-中心对象体素的第一子集与中心空间体素的第三集合相交;

-中心对象体素的第一子集与边界空间体素的第四集合相交;以及

-中心对象体素的第一子集延伸到数字建模的空间的外部。

-针对所述数字建模的对象中的每一个,步骤v)可以包括:

v-1)计算所述评估的结果的第一三值逻辑函数,表示数字建模的对象是否至少部分地在数字建模的空间的内部;

v-2)计算所述评估的结果的第二三值逻辑函数,表示数字建模的对象是否至少部分地跨越数字建模的空间的边界;以及

v-3)计算所述评估的结果的第三三值逻辑函数,表示数字建模的对象是否至少部分地在数字建模的空间的外部;

其中,所述三值逻辑函数中的每一个取“真”值、“假”值或“不确定”值。

-更具体地,可以在以下各项中选择数字建模的空间与要被取回的对象之间的要求的空间关系:

-肯定完全在数字建模的空间的内部的数字建模的对象;

-肯定至少部分地在数字建模的空间的内部的数字建模的对象;

-肯定跨越数字建模的空间的边界的数字建模的对象;

-肯定至少部分地在数字建模的空间的外部的数字建模的对象;

-肯定完全在数字建模的空间的外部的数字建模的对象;

-与数字建模的空间的关系是不确定的数字建模的对象。

-甚至更具体地,在步骤v)中:

-这样的对象可以被认为肯定完全在空间的内部:针对该对象,第一三值逻辑函数取“真”值,并且第二三值逻辑函数和第三三值逻辑函数取“假”值;

-这样的对象被认为肯定至少部分地在空间的内部:针对该对象,第一三值逻辑函数和第二三值逻辑函数取“不确定”值,并且第三三值逻辑函数取“假”值;以及针对该对象,第一三值逻辑函数取“真”值,并且第二三值逻辑函数和第三三值逻辑函数取“假”值;

-这样的对象可以被认为肯定跨越空间的边界:针对该对象,第一三值逻辑函数和第三三值逻辑函数取“假”值,并且第二三值逻辑函数取“真”值;

-这样的对象可以被认为肯定完全在空间的外部:针对该对象,第一三值逻辑函数和第二三值逻辑函数取“假”值,并且第三三值逻辑函数取“真”值;

-这样的对象被认为肯定至少部分地在空间的外部:针对该对象,第一三值逻辑函数取“假”值,并且第二三值逻辑函数和第三三值逻辑函数取“不确定”值;以及针对该对象,第一三值逻辑函数和第二三值逻辑函数取“假”值,并且第三三值逻辑函数取“真”值;以及

-这样的对象被认为与空间具有不确定关系:针对该对象,三个三值逻辑函数全部取“假”值。

-所述体素表示可以为n叉树体素表示,并且优选地为八叉树体素表示。

-步骤i)可以包括根据数字建模的对象和数字建模的空间中的至少一个的不同的表示来创建其体素表示。

本发明的另一目的是一种存储在非暂时性计算机可读数据存储介质上的计算机程序产品,包括用于使得计算机系统执行根据前述权利要求中任一项所述的方法的计算机可执行指令。

本发明的另一目的是一种非暂时性计算机可读数据存储介质,包含用于使得计算机系统执行这种方法的计算机可执行指令。

本发明的另一目的是一种计算机系统,包括耦合到非暂时性存储器和图形用户接口的处理器,该非暂时性存储器存储用于使得计算机系统执行这种方法的计算机可执行指令。

附图说明

通过以下结合附图的描述,本发明的其他特征和优点将变得显而易见,其中:

-已经描述的图1A至图1C示出了根据现有技术的方法,图1C示出了由本发明克服的这种方法的限制;

-图2A和图2B示出了本发明的关键方面,即,“中心”体素与“边界”体素之间的针对对象和空间两者的区别;

-图3A至图3C是示出根据本发明实施例的如何基于对象与空间的关系来对对象进行分类的表;

-图4A和图4B示出了可以通过根据本发明实施例的方法来区分的对象与空间之间的六种不同的空间关系;

-图5是根据本发明实施例的确定对象相对于空间的定位的方法的流程图;

-图6是根据本发明另一实施例的体积查询的方法的流程图;

-图7表示用于执行这种方法的图形接口;以及

-图8是适于执行根据本发明实施例的方法的计算机系统的框图。

具体实施方式

如在图2A和2B上示出的,本发明的主要思想是将对象和空间(或区域)两者的体素划分为两个集合:“中心”(或“核心”)体素和“边界”体素。边界体素与对象或空间以及外部空间相交,而中心体素仅与对象或空间相交。值得注意的是,在某些情况下(“薄”的对象和空间),中心体素的集合可以为空,而边界体素的集合不为空。反之,相反的情况是不可能的。也可以存在不具有几何形状并因此不具有体素表示的“逻辑”对象,但是这种情况不是本发明所真正考虑的。

边界体素的集合和中心体素的集合的并集分别构成对象或空间的上限。中心体素的集合本身构成下限。

图2A表示对象的棋盘格化的(高分辨率)几何形状TO及其体素近似值OV,该OV被分解为中心对象体素的集合OH和围绕中心对象体素的边界对象体素的集合OB。类似地,图2B表示空间的棋盘格化的(高分辨率)几何形状TS及其体素近似SV,该SV被分解为中心空间体素的集合SH和围绕中心空间体素的边界空间体素的集合SB。图2B还表示外部空间SO,该SO是SV的补集(就集合论的意义而言)。外部空间SO可以被分解为体素或不被分解为体素。

基于本发明的另一个主要思想是考虑这些体素的集合之间的交集。更具体地,确定对象OV相对于空间SV的定位要求计算六个布尔(Boolean)函数:

-如果中心对象体素的集合与中心空间体素的第三集合相交,则OH∩SH=1,否则OH∩SH=0;

-如果中心对象体素的集合与边界空间体素的集合相交,则OH∩SB=1;-如果中心对象体素的集合延伸到数字建模的空间的外部,则OH∩SO=1;

-如果边界对象体素的集合与中心空间体素的集合相交,则OB∩SH=1;-如果边界对象体素的集合与边界空间体素的集合相交,则OB∩SB=1;并且

-如果边界对象体素的集合延伸到数字建模的空间的外部,则OB∩SO=1。

其中,“∩”是交集的符号。

前三个布尔函数允许确定23=8个不同种类,这些种类表示对象中心体素相对于空间的位置:

·H000:OH∩SH=0;OH∩SB=0;OH∩SO=0;

·H100:OH∩SH=1;OH∩SB=0;OH∩SO=0;

·H010:OH∩SH=0;OH∩SB=1;OH∩SO=0;

·H001:OH∩SH=0;OH∩SB=0;OH∩SO=1;

·H110:OH∩SH=1;OH∩SB=1;OH∩SO=0;

·H011:OH∩SH=0;OH∩SB=1;OH∩SO=1;

·H101:OH∩SH=1;OH∩SB=0;OH∩SO=1;

·H111:OH∩SH=1;OH∩SB=1;OH∩SO=1;

H000种类对应于“薄”对象,不包括中心体素,而仅包括边界体素。

进而,这三个布尔函数所取的布尔值用于计算三个三值逻辑函数,这些三值逻辑函数可以取三个值:“真”(或“是”)、“假”(或“否”)和“不确定”(或“也许”)。这些函数是:

OHin:中心对象体素的集合在空间的内部?

OHin/out:中心对象体素的集合在空间的内部且在空间的外部?

OHout:中心对象体素的集合在空间的外部?

这在图3A上示出。

后三个布尔函数允许确定23=8个不同种类,这些种类表示对象边界体素相对于空间的位置:

·B000:OB∩SH=0;OB∩SB=0;OB∩SO=0;

·B100:OB∩SH=1;OB∩SB=0;OB∩SO=0;

·B010:OB∩SH=0;OB∩SB=1;OB∩SO=0;

·B001:OB∩SH=0;OB∩SB=0;OB∩SO=1;

·B110:OB∩SH=1;OB∩SB=1;OB∩SO=0;

·B011:OB∩SH=0;OB∩SB=1;OB∩SO=1;

·B101:OB∩SH=1;OB∩SB=0;OB∩SO=1;

·B111:OB∩SH=1;OB∩SB=1;OB∩SO=1;

B000种类对应于不具有体素表示并因此不具有位置的对象。显然,属于B000种类的对象也属于H000,因为不具有边界体素的对象不会具有中心体素。

进而,这三个布尔函数所取的布尔值用于计算三个另外的三值逻辑函数,这些三值逻辑函数可以取三个值:“真”(或“是”)、“假”(或“否”)和“不确定”(或“也许”)。这些函数是:

OBin:边界对象体素的集合在空间的内部?

OBin/out:边界对象体素的集合在空间的内部且在空间的外部?

OBout:边界对象体素的集合在空间的外部?

这在图3B上示出。

总体而言,六个布尔函数允许确定26=64种可能的情况(然而,并非所有情况都是可能的),这些情况在图3C上示出。图3C采取两个条目表的形式,其条目为“Bxyz”种类和“Hijk”种类(x、y、z、i、j、k取0值和1值)。该表的每个单元对应于64种可能的情况中的一种,并且因此可以由六个二进制值x、y、z、i、j、k确定。定义种类Vuvw(u,v,w=0,1)的第三集合也是有趣的,种类Vuvw被定义如下:

·V000:(OB∪OH)∩SH=0;(OB∪OH)∩SB=0;(OB∪OH)∩SO=0;

·V100:(OB∪OH)∩SH=1;(OB∪OH)∩SB=0;(OB∪OH)∩SO=0;

·V010:(OB∪OH)∩SH=0;(OB∪OH)∩SB=1;(OB∪OH)∩SO=0;

·V001:(OB∪OH)∩SH=0;(OB∪OH)∩SB=0;(OB∪OH)∩SO=1;

·V110:(OB∪OH)∩SH=1;(OB∪OH)∩SB=1;(OB∪OH)∩SO=0;

·V011:(OB∪OH)∩SH=0;(OB∪OH)∩SB=1;(OB∪OH)∩SO=1;

·V101:(OB∪OH)∩SH=1;(OB∪OH)∩SB=0;(OB∪OH)∩SO=1;

·V111:(OB∪OH)∩SH=1;(OB∪OH)∩SB=1;(OB∪OH)∩SO=1。

可以注意到,u=x OR i;v=y OR j;w=z OR k。

六个布尔值x、y、z、i、j、k用于计算三个另外的三值逻辑函数,这些三值逻辑函数是实际上用于确定数字建模的对象相对于数字建模的空间之间的关系的三值逻辑函数:

Oin:对象完全在空间的内部?

Oacr:对象跨越空间的边界?

Oout:对象完全在空间的外部?

再次强调,这些逻辑函数可以取三个值:“真”(或“是”)、“假”(或“否”)和“不确定”(或“也许”)。在图3C上,将Oin、Oacr、Oout所取的值(通过考虑每种个体情况所确定的)写入表的单元中。

原则上,(Oin,Oacr,Oout)有33=27种可能的组合,但是容易理解的是,实际数量要更少,因为一次不可能有多于一个函数取“真”值。实际上,每种情况(并因此图3C的表的每个单元)都属于以下种类中的一种:

·“深入内部(Deeply In)”:(Oin=是;Oacr=否;Oout=否)。这对应于(B100,H000)和(B100,H100)单元。

·“边界与内部(Border&In)”:(Oin=也许;Oacr=也许;Oout=否)。这对应于(B010,H100)、(B010,H110)、(B110,H100)、(B110,H110)、(B011,H100)、(B011,H110)、(B111,H100)、(B111,H110)单元。

·“跨越边界(Across)”:(Oin=否;Oacr=是;Oout=否)。这对应于(B100,H111)、(B001,H111)、(B101,H000)、(B101,H100)、(B101,H010)、(B101,H001)、(B101,H110)、(B101,H011)、(B101,H101)、(B101,H111)、(B111,H101)、(B111,H111)单元。

·“边界与外部(Border&Out)”:(Oin=否;Oacr=也许;Oout=也许)。这对应于(B010,H001)、(B010,H011)、(B110,H001)、(B110,H011)、(B011,H001)、(B011,H011)、(B111,H001)、(B111,H011)单元。

·“完全在外部”:(Oin=否;Oacr=否;Oout=是)。这对应于(B001,H000)、(B001,H001)单元。

·“边界”:(Oin=也许;Oacr=也许;Oout=也许)——即,无法确定对象位置的情况。这对应于(B010,H000)、(B010,H010)、(B110,H000)、(B110,H010)、(B011,H000)、(B011,H010)、(B111,H000)、(B111,H010)单元。按照惯例,(B000,H000)单元——其对应于不具有几何形状并因此不具有位置的对象——也可以被认为属于“边界”种类。

·所有其他单元对应于不可能的情况。

在图3C上,每个单元具有与其所属的种类相对应的外观(纹理)(“不可能”被同化为第九个种类)。Oin、Oacr、Oout的值以斜体字写入对应于“极限”情况的单元,这些情况在真实世界应用中极不可能发生,但仍然可以通过本发明的方法进行处理;例如,(B010,H001)对应于空间的内部有一个被对象填充的“洞”的情况。

非常有趣的是,应注意到,对于27个“名义上的”情况(不包括23个不可能的情况和14个“极限”情况),Vuvw=Bxyz。这意味着,如果忽略“极限”情况,则可以仅考虑边界体素的位置,并因此仅评估x、y、z布尔变量的值。

图4A表示上面的八个种类,并且可以用作用于解释图3C的图例。图4B允许理解不同种类的含义:

·“深入内部”对象仅与空间的中心体素重叠。

·“边界与内部”对象与空间的中心体素和边界体素两者重叠(这意味着这些对象可能会或可能不会略微延伸到空间的外部);

·“跨越边界”对象与空间的中心体素和边界体素以及与外部空间重叠。

·“边界内部与外部(Border In&Out)”对象与空间的边界体素和外部空间重叠,但不与空间的中心体素重叠(这意味着这些对象可能会或可能不会部分地位于空间的内部)。

·“完全在外部”对象仅与外部空间重叠。

·“边界”对象仅与空间的边界体素重叠。除非增加体素表示的空间分辨率,否则无法知道这些对象是在空间的内部、外部还是跨越空间的边界。

三值逻辑函数对于理解本发明方法的操作是有用的,但是可以直接根据六个布尔函数OHin、OHin/out、OHout、OBin、OBin/out、OBout执行对象到种类的归属。此外,可以使用与上面列出的种类不同的种类。例如,定义与“深入内部”和“边界与内部”的并集相对应的“部分内部”种类以及与“完全在外部”和“边界与外部”的并集相对应的“部分在外部”种类可能是有利的。缺点是,在这种情况下,一个对象可以属于若干种类。出于这种原因,优选地使用上面的六个种类;然而,在体积查询中可以使用“部分在内部”和“部分在外部”概念,如将在下面参考图7所解释的。

图5是根据本发明实施例的确定数字建模的对象相对于数字建模的空间的定位的方法的流程图。该方法包括四个步骤a)至d)。

步骤a)包括(例如,从数据库中)取回或创建数字建模的对象和数字建模的空间的体素表示。可以通过从数据库中取回对象和空间的基于非体素的(例如,棋盘格化的)表示并对其进行“体素化”来执行该步骤。

步骤b)包括将数字建模的对象的体素表示划分为中心对象体素的第一集合OH和边界对象体素的第二集合OB,并且将数字建模的空间的体素表示划分为中心空间体素的第三集合SH和边界空间体素的第四集合SB。该步骤由图2A和图2B示出。

步骤c)包括从对象和空间的基于体素的表示开始计算六个布尔函数OHin、OHin/out、OHout、OBin、OBin/out、OBout

步骤d)包括确定数字建模的对象相对于数字建模的空间的定位,即,该对象所属的种类(“深入内部”、“边界与内部”、“跨越边界”、“边界与外部”、“完全在外部”、“边界”)。可以使用图3C的表来执行该步骤。

图6是根据本发明实施例的执行体积查询的方法的流程图。该方法包括6个步骤i)至vi)。

步骤i)包括取回或创建多个数字建模的对象和一个或多个数字建模的空间的体素表示。基本上,步骤i)对应于图5的方法的步骤a),但步骤i)通常是针对数字建模的系统(数字实体模型)的所有空间或对象(或其子集)执行的。

步骤ii)包括将每个数字建模的对象的体素表示划分为中心对象体素的第一集合和边界对象体素的第二集合,并且将所述数字建模的空间中的每一个的体素表示划分为中心空间体素的第三集合和边界空间体素的第四集合。基本上,步骤ii)对应于图5的方法的步骤b),但步骤ii)是针对多个对象和/或空间执行的,如上面所描述的。

步骤i)和ii)对应于“准备”阶段,可以“离线”执行该“准备”阶段以便建立基于体素的表示的索引。以下步骤构成了实际的“查询”阶段,该“查询”阶段由用户的请求提示并利用索引。

步骤iii)包括从用户接收所述请求,该请求包括(多个)数字建模的空间的指示以及数字建模的空间与要被取回的对象之间的要求的关系的指示。例如,用户可能有兴趣找到肯定在空间的内部的所有对象。

步骤iv)包括从对象和空间的基于体素的表示开始计算六个布尔函数OHin、OHin/out、OHout、OBin、OBin/out、OBout。基本上,步骤iv)对应于图5的方法的步骤c),但步骤iv)是针对多个对象以及可能的空间执行的,如上面所描述的。

步骤v)包括针对所述数字建模的对象中的每一个,基于所述评估的结果来确定其是否与数字建模的空间匹配要求的空间关系。基本上,步骤v)对应于图5的方法的步骤d),但步骤v)是针对多个对象以及可能的空间执行的,如上面所描述的。

步骤vi)包括取回与数字建模的空间匹配要求的空间关系的数字建模的对象,并且以合适的形式(列表、图形表示等)将其提供给用户。

图7示出了用于执行图6的方法的步骤iii)(即,用于输入查询)的图形接口。在已经选择了空间之后,图形接口GI会出现或被激活。该接口包括六个图标和一个复选框;指针PT可以用于点击图标并选中/取消选中该复选框。

图标对应于不同的要求的空间关系,这些空间关系并不全部与图4A的种类完全一致(然而,这仅是示例,并且不同的选择是可能的)。图标FI(针对“完全在内部”)启动针对“深入内部”对象的查询。图标PI(针对“部分在内部”)启动针对肯定至少部分地在空间的内部并因此属于“深入内部”或“边界与内部”对象的对象的查询。图标AC(针对“跨越边界”)启动针对属于图4A的“跨越边界”种类的对象的查询。图标PO(针对“部分在外部”)启动针对肯定至少部分地在空间的外部并因此属于“完全在外部”或“边界与外部”种类的对象的查询。图标“O”(针对“外部”)启动针对“完全在外部”对象的查询。当选中复选框BD(针对“边界”)时,还将取回“边界”对象,以确保不会丢失任何对象。

可以通过适当编程的通用计算机或计算机系统(可能包括计算机网络)来执行本发明的方法,该通用计算机或计算机系统以非易失性形式在计算机可读介质(例如,硬盘、固态磁盘或CD-ROM)上存储适当的程序,并使用其(多个)微处理器和存储器执行所述程序。

参考图8描述适于执行根据本发明示例性实施例的方法的计算机CPT。在图8中,计算机CPT包括中央处理单元(CPU)P,该CPU P在运行可执行程序(即,计算机可读指令的集合)的同时执行上面描述的方法步骤,该可执行程序存储在诸如RAM M1或ROM M2或硬盘驱动器(HDD)M3、DVD/CD驱动器M4之类的存储器设备中或远程存储。此外,由(多个)实体模型的对象和空间的基于像素的表示构成的一个或多个数字实体模型和/或索引也可以存储在存储器设备M1至M4中的一个或多个中或远程存储。

要求保护的发明不受计算机可读介质的形式的限制,在该计算机可读介质上存储了本发明过程的计算机可读指令和/或数据结构。例如,指令和文件可以存储在CD、DVD、闪速存储器、RAM、ROM、PROM、EPROM、EEPROM、硬盘或与计算机进行通信的任何其他信息处理设备(例如,服务器或计算机)上。程序和文件可以存储在相同的存储器设备上或存储在不同的存储设备上。

此外,可以提供适于执行本发明方法的计算机程序作为实用程序应用、后台守护进程或操作系统的组件或其组合,从而结合CPU P和诸如Microsoft VISTA、MicrosoftWindows 10、UNIX、Solaris、LINUX、Apple MAC-OS和本领域技术人员已知的其他系统之类的操作系统执行。

CPU P可以是来自美国英特尔的Xenon处理器或来自美国AMD的Opteron处理器,或者可以是其他处理器类型,例如,来自美国Freescale公司的Freescale ColdFire、IMX或ARM处理器。可替代地,如本领域普通技术人员将认识到的,CPU可以是诸如来自美国英特尔公司的Core2 Duo之类的处理器,或者可以在FPGA、ASIC、PLD上实现或使用分立逻辑电路来实现。此外,CPU可以被实现为协同工作以执行上面描述的发明过程的计算机可读指令的多个处理器。

图8中的计算机CPT还包括网络接口NI(例如,来自美国英特尔公司的英特尔以太网PRO网络接口卡)以与网络(例如,局域网(LAN)、广域网(WAN)、互联网等)接合。该计算机还包括显示控制器DC(例如,来自美国NVIDIA公司的NVIDIA GeForce GTX图形适配器)以与显示器DY(例如,Hewlett Packard HPL2445w LCD监视器)接合。通用I/O接口IF与键盘KB和(例如用于驱动图7的指针PT的)定点设备PD(例如,滚球、鼠标、触摸板等)接合。显示器、键盘和定点设备以及显示控制器和I/O接口一起形成图形用户接口,该图形用户接口由用户使用以提供输入命令,并且由计算机使用以例如启动体积查询,如图7上示出的。

磁盘控制器DKC将HDD M3和DVD/CD M4与通信总线CBS连接起来,该通信总线CBS可以是ISA、EISA、VESA、PCI或类似结构,以互连计算机的所有组件。

为了简洁起见,本文省略了对显示器、键盘、定点设备以及显示控制器、磁盘控制器、网络接口和I/O接口的一般特征和功能的描述,因为这些特征是已知的。

网络接口NI将计算机CPT连接到系统管理员ADS和一个或多个数据服务器DSV,该DSV存储包含描述对象和空间的数据的文件F1、F2。例如,服务器可以存储形成数字实体模型的文件和形成索引的文件(实体模型的空间和对象的基于体素的表示被划分为“中心”体素和“边界”体素)。在这种情况下,数据服务器存储并运行用于创建索引的软件(参考图6的方法的步骤i)和ii)),而计算机CPT存储并运行用于执行体积查询的软件(参考图6的方法的步骤iii)至vi))。

网络NW可以是公用网络(例如,互联网)或专用网络(例如,LAN网络或WAN网络)或其任何组合,并且还可以包括PSTN或ISDN子网。网络NW也可以是有线的(例如,以太网络)或者可以是无线的(例如,包括EDGE、3G和4G无线蜂窝系统的蜂窝网络)。无线网络也可以是Wi-Fi、蓝牙或已知的通信的任何其他无线形式。因此,网络NW仅是示例性的,并且绝不限制本发明的范围。

本文描述的任何方法步骤应被理解为表示代码的模块、段或部分,其包括用于实现过程中的特定逻辑功能或步骤的一个或多个可执行指令,并且替代实现方式被包括在本发明的示例性实施例的范围内。

21页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:智能一体化服装设计系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类