CN104217460B

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 35

(19)中华人民共和国国家知识产权局

(12)发明专利
(10)授权公告号 CN 104217460 B
(45)授权公告日 2019.06.04
(21)申请号 201410445274 .1 (51)Int .Cl .

(22)申请日 2014 .05 .27 G06T 17/00(2006 .01)


G06T 9/00(2006 .01)
(65)同一申请的已公布的文献号 G06F 17/50(2006 .01)
申请公布号 CN 104217460 A
(56)对比文件
(43)申请公布日 2014 .12 .17 US 2008143714 A1 ,2008 .06 .19 ,
(30)优先权数据 EP 0964364 B1 ,2004 .04 .07 ,
13305700 .0 2013 .05 .28 EP CN 102754103 A ,2012 .10 .24 ,
SHIKHARE D 等 .Compression of large 3D
(73)专利权人 达索系统公司
engineering models using automatic
地址 法国韦利济-维拉库布莱
discovery of repeating geometric
(72)发明人 R·罗拉托 N·杜尼 features《VISION
. , MODELING , AND
(74)专利代理机构 永新专利商标代理有限公司 VISUALIZATION 2001: PROCEEDINGS》.2001 ,
72002 审查员 刘海艳
代理人 王英 张立达

权利要求书2页 说明书21页 附图11页

(54)发明名称
3D建模对象的压缩与解压缩
(57)摘要
本发明提供一种用于压缩三维建模对象的
计算机实现的方法, 其中所述方法包括提供所述
建模对象的边界表征; 确定描述从基准函数的值
域到另一函数的值域的映射的第一数据以及描
述从所述另一函数的定义域到所述基准函数的
定义域的映射的第二数据, 当与所述基准函数以
及从所述基准函数的值域到所述另一函数的值
域的映射合成时, 从所述另一函数的定义域到所
述基准函数的定义域的所述映射产生与应用所
述另一函数相同的结果 ; 并且通过所述第一数
据、所述第二数据以 及指向所述基准函数的指
针, 在几何数据中更换所述另一函数。这样的方
法改进了3D建模对象的压缩。
CN 104217460 B
CN 104217460 B 权 利 要 求 书 1/2 页

1 .一种用于压缩三维建模对象的计算机实现的方法, 其中所述方法包括:
●提供(S10)所述建模对象的边界表征, 所述边界表征包括几何数据, 所述几何数据包
括分别与各自几何实体相对应的函数, 每一个函数具有定义域和值域;
●确定(S40)描述从基准函数的值域到另一函数的值域的映射的第一数据以及描述从
所述另一函数的定义域到所述基准函数的定义域的映射的第二数据, 其中,应用从所述另
一函数的定义域到所述基准函数的定义域的所述映射、 所述基准函数以及从所述基准函数
的值域到所述另一函数的值域的所述映射与应用所述另一函数产生相同的结果; 以及
●在所述几何数据中通过所述第一数据、 所述第二数据以及指向所述基准函数的指针
更换(S50)所述另一函数,
其中所述方法包括:
●确定(S20)与作为彼此的拷贝的几何实体相对应的函数的集合,
●在每一个集合内确定(S30)所述集合的基准函数,
对于每一个集合并且对于所述集合中的除了所述集合的所述基准函数之外的每一个
函数, 重复确定(S40)所述第一数据和所述第二数据的步骤以及更换(S50)的步骤,确定
(S40)所述第一数据和所述第二数据的所述基准函数是每次所述集合的基准函数。
2 .如权利要求1所述的方法, 其中,所述函数包括参数函数, 并且从所述基准函数的参
数值域到所述另一函数的参数值域的所述映射以及从所述另一函数的参数定义域到所述
基准函数的参数定义域的所述映射是仿射映射。
3 .如权利要求2所述的方法, 其中,所述函数包括表面定义, 从所述基准函数的值域到
所述另一函数的值域的所述映射是将与所述基准函数相对应的表面变换为与所述另一函
数相对应的表面的刚性运动, 并且从所述另一函数的定义域到所述基准函数的定义域的所
述映射是2D本地映射。
4 .如权利要求3所述的方法, 其中,所述函数进一步包括具有被包括在各自表面定义的
定义域内的值域的p曲线, 所述p曲线是表面定义的从1D定义域到2D定义域的函数,从所述
基准函数的值域到所述另一函数的值域的所述映射是从所述另一函数的值域到所述基准
函数的值域的2D本地映射的逆映射, 并且从所述另一函数的定义域到所述基准函数的定义
域的映射是1D本地映射。
5 .如权利要求4所述的方法, 其中 ,
所述函数利用下列各项来定义作为彼此的拷贝的
面: 一个基准表面定义, 至少一个其它表面定义, 具有包括在所述基准表 面定义的定义域
内的值域的至少一个p曲线的基准集合, 以及具有位于所述其它表面定义的定义域中的值
域并且与所述基准集合的各自一个相对应的至少一个p曲线的另一集合, 其中,所述更换
(S50)包括通过下列各项来更换所述其它表面定义和所述另一集合: 描述指向所述基准表
面定义的指针的数据, 对于所述另一集合的每一个, 指向所述基准集合的相对应一个的指
针, 将与所述基准表面定义相对应的表面变换为与所述其它表面定义相对应的表面的刚性
运动, 位于所述其它表面定义的定义域和所述基准表面定义的定义域之间的2D本地映射,
以及位于所述另一集合的每一个的定义域和所述基准集合的相对应一个的定义域之间的
1D本地映射。
6 .一种用于解压缩能够通过如权利要求1-5中的任意一项所述的方法获得的三维建模
对象的计算机实现的方法, 其中,所述方法包括:

2
CN 104217460 B 权 利 要 求 书 2/2 页

●使用指向所述基准函数的指针标识所述基准函数; 以及
●合成从所述另一函数的定义域到所述基准函数的定义域的映射, 所述基准函数,以
及接着从所述基准函数的值域到所述另一函数的值域的映射。
7 .一种用于压缩三维建模对象的计算机实现的装置, 包括用于执行如权利要求1-5中
的任意一项所述的方法的单元。
8 .一种用于解压缩能够通过如权利要求1-5中的任意一项所述的方法获得的三维建模
对象的计算机实现的装置, 包括用于执行如权利要求6所述的方法的单元。
9 .一种计算机可读存储介质, 具有记录在其上的计算机程序, 所述计算机程序当由计
算设备执行时, 使得所述计算设备执行如权利要求1-5和/或6中的任意一项所述的方法。
10 .一种CAD系统,
包括耦合到存储器的处理器以及图形用户界面, 所述处理器被配置
为执行存储在所述存储器中的计算机程序指令以执行如权利要求1-5和/或6中的任意一项
所述的方法。

3
CN 104217460 B 说 明 书 1/21 页

3D建模对象的压缩与解压缩

技术领域
[0001] 本发明涉及计算机程序和系统的领域,并且更具体地涉及用于压缩和/或解压缩
三维(3D)建模对象的方法、系统和程序,涉及通过所述压缩方法可获得的3D建模对象,
涉及
描述所述3D建模对象的数据结构, 并且涉及存储所述数据结构的数据文件。

背景技术
[0002] 在市场上提供用于对象的设计、 工程和制造的大量系统和程序。CAD是计算机辅助
设计的首字母缩略词, 例如,其涉及用于设计对象的软件解决方案。CAE是计算机辅助工程
的首字母缩略词, 例如,其涉及用于模拟未来产品的物理行为的软件解决方案。CAM是计算
机辅助制造的首字母缩略词, 例如,其涉及用于定义制造处理和操作的软件解决方案。在这
样的系统中, 对于技术的效率, 图形用户界面(GUI)起到重要的作用。这些技术可以被嵌入
在产品生命周期管理(PLM)系统中。PLM涉及商业战略, 其帮助公司贯穿企业扩展的理念来
共享产品数据, 应用通用处理,并且对产品的从概念到其生命结束的发展的公司知识进行
杠杆调节。
[0003] 由达索系统(商标为CATIA、
ENOVIA和DELMIA)提供的PLM解决方案提供组织产品工
程知识的工程中心, 管理制造工程知识的制造中心, 以及使能企业到工程中心和制造中心
二者的集成和连接的企业中心。总共所述系统传递链接产品, 处理,用于使能动态的、基于
知识的产品创建的资源以及驱动优化的产品定义、制造准备、生产和服务的决策支持的开
放对象模型。
[0004] 许多CAD系统现在允许用户基于提供给该用户的建模对象的边界表征(B-Rep)来
设计3D建模对象。B-Rep是包括面的集合的数据格式, 每一个面被定义为各自支撑表面的边
界部分。通过修改现有的面、创建新的面、删除某些面、和/或在面上和/或在面之间定义约
束条件, 或者通过使用中的CAD系统提供的任何相似的动作, 用户能够在该面的集合上进行
操作。
[0005] B-Rep会暗示着大量的数据。 明显地, 在现代设计中, B-Rep会包括越来越多的元
素, 这导致描述由B-Rep建模的3D建模对象的数据结构的增加的尺寸。大尺寸的B-Rep占据
许多存储空间, 并且难于传输。这在协同设计的背景下尤其是个问题。因此, 已经开发了压
缩方法来减小B-Rep的尺寸。
[0006] B-Rep模型的现有数据压缩方法能够被分类为几个类别。 第一个类别处理多边形
网格, 主要是三角形。许多研究报告和专利文献都涉及这一技术。文献EP 0964364A2是典型
的示例。不仅是三角形的逻辑布置被压缩, 诸如点坐标、 法向量、 纹理编码和其它属性的数
值数据也被压缩。第二个类别处理与近似数据相对的精确数据。精确数据压缩处理NURBS曲
线和表面来作为B-Rep模型的基本组件。NURBS表面的控制多边形经过点坐标的递增定义而
被压缩。相邻的控制点坐标的变化为“小”, 并且由于工业应用中涉及的NURBS表面的平滑
性, 能够使用较少的位数被编码。典型的例子是文档EP 2387004 A1。其它解决方案包括为
了使现有的压缩技术更加有效的数据结构预处理。文档WO 2011/103031A1是示例。

4
CN 104217460 B 说 明 书 2/21 页

[0007] 然而,这些现有的数据压缩方法中的至少某些在某些情况下是不起作用的。在任
何情况下, 通过与现有的技术不同地作用的新的压缩技术,
可以增加压缩比。
[0008] 因而,本发明意在改进3D建模对象的压缩。

发明内容
[0009] 根据一个方面,因此提供一种用于压缩三维建模对象的计算机实现的方法。所述
方法包括提供所述建模对象的边界表征。所述边界表征包括几何数据。所述几何数据包括
分别与各自几何实体相对应的函数。每一个函数具有定义域和值域。所述方法还包括确定
描述从基准函数的值域到另一函数的值域的映射的第一数据以及描述从所述另一函数的
定义域到所述基准函数的定义域的映射的第二数据, 从所述另一函数的定义域到所述基准
函数的定义域的所述映射当与所述基准函数以及从所述基准函数的值域到所述另一函数
的值域的映射进行组合时, 导致与应用所述另一函数相同的结果。并且所述方法还包括在
所述几何数据中通过所述第一数据、 所述第二数据和指向所述基准函数指针来更换所述另
一函数。
[0010] 所述方法可以包括下面中的一个或多个:
[0011] —所述方法包括确定与作为彼此的拷贝的几何实体相对应的函数的集合, 在每一
个集合内确定所述集合的基准函数, 针对每一个集合以及所述集合的除去所述集合的所述
基准函数的每一个函数, 重复确定第一数据和第二数据的步骤以及更换的步骤, 确定所述
第一数据和所述第二数据的基准函数作为每次所述集合的基准函数;
[0012] —所述函数包括参数函数,并且从所述基准函数的值域到所述另一函数的值域的
映射以及从所述另一函数的定义域到所述基准函数的定义域的映射是仿射映射;
[0013] —所述函数包括表面定义,从所述基准函数的值域到所述另一函数的值域的所述
映射是将与所述基准函数相对应的表面变换为与所述另一函数相对应的表面的刚性运动,
并且从所述另一函数的定义域到所述基准函数的定义域的所述映射是2D本地映射;
[0014] —所述函数进一步包括具有包括在各自表面定义的定义域中的值域的p曲线, 从
所述基准函数的值域到所述另一函数的值域的所述映射是从所述另一函数的值域到所述
基准函数的值域的2D本地映射的逆映射, 并且从所述另一函数的定义域到所述基准函数的
定义域的所述映射是1D本地映射; 和/或
[0015] —所述函数使用下列各项定义作为彼此的拷贝的面: 一个基准表面定义,至少一
个其它表面定义, 具有包括在所述基准面定义的定义域中的值域的至少一个p曲线的基准
集合, 以及具有位于所述其它表面定义的定义域中的值域并且与所述基准集合的各自一个
相对应的至少一个p曲线的另一集合, 其中,所述更换包括通过下列各项更换所述其它表面
定义和所述另一集合: 描述指向所述基准表面定义的指针的数据, 对于所述另一集合的每
一个, 指向所述基准集合的相对应一个的指针, 将与所述基准表面定义相对应的表面变换
为与所述其它表面定义相对应的表面的刚性运动, 位于所述其它表面定义的定义域和所述
基准表面定义的定义域之间的2D本地映射, 以及位于所述另一集合的每一个的定义域和所
述基准集合的相对应一个的定义域之间的1D本地映射。
[0016] 进一步提出一种能够由上述用于压缩的方法获得的三维建模对象。
[0017] 进一步提出一种存储上述三维建模对象的数据文件。

5
CN 104217460 B 说 明 书 3/21 页

[0018] 进一步提出一种用于解压缩所述三维建模对象的计算机实现的方法。所述解压缩
方法包括使用指向所述基准函数的指针标识所述基准函数; 并且合成从所述另一函数的定
义域到所述基准函数的定义域的所述映射, 所述基准函数,以及接着从所述基准函数的值
域到所述另一函数的值域的所述映射。
[0019] 进一步提出一种计算机程序, 所述计算机程序包括用于执行上述用于压缩的方法
和/或上述用于解压缩的方法的指令。 所述计算机程序适合于被记录在计算机可读介质上。
[0020] 进一步提出一种计算机可读存储介质, 所述计算机可读存储介质具有记录在其上
的上述计算机程序。
[0021] 进一步提出一种CAD系统,
所述CAD系统包括耦合到存储器的处理器以及用户图形
界面, 所述存储器具有记录在其上的上述计算机程序。

附图说明
[0022] 现在将通过非限制性示例的方式并且参照附图来描述本发明的实施例,
在附图
中:
[0023] —图1示出了该方法的示例的流程图。
[0024] —图2示出了图形用户界面的示例。
[0025] —图3示出了客户端计算机系统的示例;以及
[0026] —图4-27示出了该方法的示例。

具体实施方式
[0027] 图1示出了用于压缩3D建模对象的计算机实现的方法的示例的流程图。 该方法包
括提供S10建模对象的B-rep。B-rep包括几何数据。该几何数据包括函数。每一个函数与各
自几何实体相对应。每一个函数具有定义域和值域。该方法进一步包括确定S40第一数据和
第二数据。第一数据描述从基准函数的值域到另一函数的值域的映射。第二数据描述从该
另一函数的定义域到基准函数的定义域的映射。第二数据是这样的, 以使得使由第二数据
描述的从该另一函数的定义域到基准函数的定义域的映射与该基准函数合成, 并且然后与
由第一数据描述的从基准函数的值域到该另一函数的值域的映射合成, 导致与应用该另一
函数相同的结果。该方法进一步包括在几何数据中通过第一数据、第二数据和指向基准函
数的指针来更换S50该另一函数。
[0028] 这样的方法构成用于压缩3D建模对象的改进的解决方案。 实际上,通过使用描述
从(各自地到)第一函数的值域(各自地定义域)到(各自地从)第二函数的值域(各自地定义
域)的数据以及作为简单并且因而相对小的数据的指针(例如, 指向计算机科学领域中已知
的数据段的任何种类的指针)来更换可能通过可能复杂并且因而相对大的数据形成的函
数, 该方法实现几何数据的压缩。而且, 这一压缩基于允许确定S40和随后的更换S50的位于
基准函数和另一函数之间的几何链接的S40处的识别。 实际上,基准函数和该另一函数通过
它们与复制的几何实体相对应的事实而被链接。该方法利用这一几何链接, 以便在几何数
据中通过较小的数据来更换形成这样的(即, 独立于其余的函数)的该另一函数的数据, 该
较小的数据允许基于形成基准函数的数据和指向该基准函数的指针来计算该另一函数。该
方法因而可以在没有任何干预的情况下被组合到现有技术中已知的其它压缩技术, 只要存

6
CN 104217460 B 说 明 书 4/21 页

在几何链接, 该方法就可以实现压缩。 这在下面的讨论中进行了全部详细体现。


[0029] 而且, 因而压缩的3D建模对象能够通过用于解压缩的方法而被容易地解压缩, 该
用于解压缩的方法包括使用指向基准函数的指针来标识该基准函数。换言之, 在所压缩的
数据中, 该方法根据指针来取回基准函数。接着, 该用于解压缩的方法包括合成从该另一函
数的定义域到基准函数的定义域的映射(根据对其进行描述的第二数据) , 基准函数, 并且
接着从基准函数的值域到该另一函数的值域的映射(根据对其进行描述的第一数据)。换言
之, 该用于解压缩的方法确定/计算由从该另一函数的定义域到基准函数的定义域的映射,
基准函数, 并且接着从基准函数的值域到该另一函数的值域的映射的连续合成构成的函数
(这三个函数在所述连续顺序中被应用)。这一合成的函数与由用于压缩的方法压缩的该另
一函数提供相同的几何结果, 并且因而与该另一函数在几何上相同。
[0030] 建模对象是由可以被存储在数据文件(即, 具有特定格式的计算机数据段)和/或
计算机系统的存储器上的结构化数据定义/描述的任何对象。通过扩展, “建模对象”的表述
可以指代数据结构本身。该方法通过压缩对其进行描述的数据结构而将3D建模对象从该3D
建模对象的初始状态处理到该3D建模对象的压缩状态。因而, 该方法“创建”或者输出由于
更换S50而具有特定结构的3D建模对象。 明显地,通过该方法获得的3D建模对象包括B-Rep,
该B-Rep包括压缩的几何数据。压缩的几何数据包括函数, 每一个函数与各自几何实体相对
应, 每一个函数具有定义域和值域。所述函数包括被这样存储的被称为“基准”函数的至少
一个函数(即独立于该另一函数, 即,该基准函数通过对其进行定义的数据在其定义域上是
可应用的, 而无需参照其它数据)。被压缩的数据还包括描述从基准函数的值域到另一函数
的值域的映射的某些数据(即, 第一数据) ,
描述从该另一函数的定义域到基准函数的定义
域的映射的某些数据(即, 第二数据) ,以及指向基准函数的指针。因而, 该另一函数可以通
过参照定义基准函数的数据而被应用。这样的压缩的3D建模对象, 或者描述这样的3D建模
对象的数据结构, 或者存储这样的数据结构的数据文件, 以较少的存储空间与初始的3D建
模对象承载相同的几何信息。
[0031] 该方法可以是用于设计3D建模对象的方法的一部分, 例如, 该方法构成这样的设
计方法的最后步骤。 “设计3D建模对象”指代作为阐释3D建模对象的处理的至少一部分的任
何动作或动作序列。因而, 该方法可以包括从零开始创建3D建模对象。可替代地, 该方法可
以包括提供先前创建的3D建模对象, 并且接着修改该3D建模对象。
[0032] 3D建模对象可以是CAD建模对象或者CAD建模对象的一部分。 在任何情况下, 由该
方法设计的3D建模对象可以表征CAD建模对象或者至少其一部分, 例如, 由CAD建模对象占
据的3D空间。CAD建模对象是由存储在CAD系统的存储器中的数据定义的任何对象。根据系
统的类型, 该建模对象可以通过不同种类的数据被定义。CAD系统是至少适合于基于建模对
象的图形表征来设计建模对象的任何系统, 例如CATIA。
因而, 定义CAD建模对象的数据包括
允许建模对象的表征的数据(例如, 几何数据, 例如包括空间中的相对位置)。
[0033] 该方法可以被包括在制造处理中, 该制造处理可以包括, 在执行该方法之后, 制造
与该建模对象相对应的物理产品。在任何情况下, 由该方法设计的建模对象可以表征制造
对象。该建模对象可以因而是建模的固体(即, 表征固体的建模对象)。制造对象可以是诸如
部件或者部件的装配件的产品。因为该方法通过允许更好的压缩改进了该建模对象的设
计, 该方法还改进了产品的制造, 并且因而提高了制造处理的生产力。该方法能够使用诸如

7
CN 104217460 B 说 明 书 5/21 页

DELMIA的CAM系统进行实施。CAM系统是至少适合于定义、模拟和控制制造处理和操作的任
何系统。
[0034] 该方法是计算机实现的。 这意味着该方法在至少一个计算机或者任何类似的系统
上被执行。例如, 该方法可以被实现在CAD系统上。因而, 该方法的步骤由计算机执行, 可能
全自动, 或者半自动(例如, 由用户触发的步骤和/或涉及用户交互的步骤)。明显地, 提供
S10和/或确定S20(稍后讨论)可以由用户触发。该方法的其它步骤可以被自动(即, 无需任
何用户干预)或半自动(即, 例如涉及光、用户干预, 例如用于验证结果)地执行。
[0035] 该方法的计算机实现的典型示例是使用适合于该意图的系统来执行该方法。 该系
统可以包括具有记录在其上的用于执行该方法的指令的存储器。换言之, 软件已经在存储
器上准备好用于即时使用。该系统因而适合于执行该方法而无需安装任何其它软件。这样
的系统还可以包括用于执行指令的与存储器耦合的处理器。换言之, 该系统包括在耦合到
处理器的存储器上被编码的指令, 该指令提供用于执行该方法的模块。这样的系统是用于
压缩3D建模对象的有效工具。
[0036] 这样的系统可以是CAD系统。 该系统还可以是CAE和/或CAM系统, 并且CAD建模对象
也可以是CAE建模对象和/或CAM建模对象。实际上, CAD、CAE和CAM系统彼此并不互斥, 因为
建模对象可以由与这些系统的任意组合相对应的数据进行定义。
[0037] 该系统可以包括用于例如通过用户启动指令的执行的至少一个GUI。 明显地,GUI
可以允许用户触发提供S10的步骤, 并且接着,如果用户决定这样做, 例如,通过启动具体的
函数(例如, 被命名为“压缩”) , 允许用户触发该方法的剩余部分, 例如,包括在后面提供的
示例中的确定S20。
[0038] 3D建模对象是3D(即, 三维)的。这意味着该建模对象由允许其三维表征的数据定
义。明显地, B-Rep的函数与其相对应的几何实体是3D的(即, 它们以3D方式被定义, 以使得
所有几何实体的联合可以是非平面的)。3D表征允许从所有角度观看该表征。例如, 该建模
对象, 当被进行3D表征时, 可以被操作并且围绕其任意轴进行旋转, 或者围绕在其上显示表
征的屏幕中的任意轴进行旋转。这明显地排除了没有被3D建模的2D图标, 即使当它们表征
2D视图中的某些信息时。3D表征的显示促进了设计(即, 增加了设计者统计学上完成其任务
的速度)。 这加速了工业中的制造处理, 因为产品的设计是制造处理的一部分。
[0039] 图2示出了典型的CAD系统的GUI的示例。
[0040] GUI 2100可以是典型的类似CAD的界面, 具有标准菜单栏2110、2120, 以及底部和
侧面工具栏2140、 2150。这样的菜单和工具栏包含用户可选择的图标的集合, 每一个图标与
一个或多个操作或功能相关联, 如本领域已知的。这些图标中的一些与软件工具相关联, 适
合于编辑和/或在GUI 2100中显示的3D建模对象2000上进行工作。软件工具可以被分组在
工作台中。每一个工作台包括软件工具的子集合。具体地说, 工作台之一是编辑工作台, 适
合于编辑建模产品2000的几何特征。在操作中, 设计者可以例如预选择对象2000的一部分
并且接着初始化操作(例如, 雕刻操作,或者诸如维度、颜色等等的改变的任何其它操作) ,
或者通过选择适合的图标来编辑几何约束条件。例如, 典型的CAD操作是在屏幕上显示的3D
建模对象的冲压或折叠的建模。
[0041] GUI可以例如显示与所显示的产品2000相关的数据2500。 在图2的示例中, 被显示
为“特征树”的数据2500, 以及它们的3D表征2000涉及包括制动卡钳和圆盘的制动装配件。

8
CN 104217460 B 说 明 书 6/21 页

GUI可以进一步示出各种类型的图形工具2130、 2070、
2080,例如用于促进对象的3D取向,用
于触发被编辑的产品的操作的仿真或者渲染被显示的产品2000的各种属性。光标2060可以
被触觉设备控制以便允许用户与图形工具进行交互。
[0042] 图3示出了作为例如用户的工作站的客户端计算机系统的该系统的架构的示例。
[0043] 客户端计算机包括连接到内部通信总线1000的中央处理单元(CPU)1010, 也连接
到该总线的随机存取存储器(RAM)1070。客户端计算机进一步提供有图形处理单元(GPU)
1110, 其与连接到总线的视频随机存取存储器1100相关联。视频RAM 1100在本领域中也被
称为帧缓冲器。海量存储设备控制器1020管理对诸如硬驱1030的海量存储设备的存取。适
合于有形地体现计算机程序指令和数据的海量存储器设备包括所有形式的非易失性存储
器, 通过示例的方式包括诸如EPROM、EEPROM和闪存设备的半导体存储器设备; 诸如内部硬
盘和可移动盘的磁盘, 磁-光盘以及CD-ROM盘1040。前述的任意一项都可以被专门设计的
ASIC(专用集成电路)补充或者被结合在该ASIC中。网络适配器1050管理对网络1060的接
入。客户端计算机还可以包括触觉设备1090, 例如光标控制设备, 键盘等等。光标控制设备
在客户端计算机中用于允许用户在屏幕1080上的任意位置处选择性地定位光标, 如参照图
2提及的。屏幕意味着在其上可以执行显示的任意支撑, 例如计算机监视器。此外, 光标控制
设备允许用户选择各种命令, 并且输入控制信号。光标控制设备包括用于向系统输入控制
信号的大量信号生成设备。 典型地,光标控制设备可以是鼠标, 鼠标的按钮用于生成信号。
[0044] 为了使该系统执行该方法, 提供了包括用于由计算机执行的指令的计算机程序,
该指令包括用于这一目的的模块。该程序可以例如在数字电子电路中, 或者在计算机硬件、
固件、 软件中,或者它们的组合中被实现。本发明的装置可以在计算机程序产品中被实现,
该计算机程序产品被有形地体现在机器可读存储设备中用于由可编程处理器执行; 并且本
发明的方法步骤可以由执行指令程序的可编程处理器执行, 以便通过操作输入数据并且生
成输出来执行本发明的功能。这些指令可以有利地被实现在可编程系统上可执行的一个或
多个计算机程序中, 该可编程系统包括至少一个可编程处理器, 该至少一个可编程处理器
耦合为从数据存储系统、 至少一个输入设备和至少一个输出设备接收数据和指令并且向该
数据存储系统、 至少一个输入设备和至少一个输出设备传输数据和指令。如果期望, 应用程
序可以被实现为高级面向过程或面向对象的编程语言, 或者汇编语言或机器语言; 并且在
任何情况下, 该语言可以是编译或解释语言。该程序可以是完全安装程序或更新程序。在后
者的示例中, 该程序将现有的CAD系统更新到其中该系统适合于执行该方法的状态。
[0045] 现在讨论提供S10。
[0046] 该方法包括提供S10建模对象的B-Rep。 提供S10可以产生于设计者对建模对象进
行工作(在这一情况中是对其边界表征进行工作) , 或者产生于该方法可以被应用于例如在
现有的库中取回的现有的B-Rep的事实。该建模对象在任何情况下在S10处被提供为B-Rep。
该边界表征是用于按照3D对象的包络面(即, 其外部表面)对该3D对象进行建模的广泛知晓
的格式。B-Rep因而指定可以包括几何数据和拓扑数据的具有特定格式的数据。 几何数据是
提供几何实体的数据, 该几何实体是按照3D位置描述的实体。拓扑数据是提供拓扑实体的
数据, 该拓扑实体是按照对几何实体的参照和/或诸如相对位置的与其它拓扑实体之间的
关系描述的实体。 典型地,该关系可以包括“被界定”关系, 这一关系将拓扑实体关联到通过
该关系被拓扑界定的其它拓扑实体。

9
CN 104217460 B 说 明 书 7/21 页

[0047] 拓扑数据可以包括面、边和/或顶点。几何数据可以包括诸如表面定义、p曲线和/
或p顶点的函数。几何数据也可以包括曲线和/或顶点。表面定义(为了简便, 也可以被称为
“表面”作为其图像)是从2D定义域到3D空间的函数。 曲线是从1D定义域到3D空间的函数。顶
点是3D空间的坐标的具体集合。 从数学观点来看, p曲线是位于表面上的曲线。p曲线因而是
表面定义的从1D定义域到2D定义域的函数。从B-Rep模型观点来看, p曲线用于具体化面的
边界。 从数学观点来看, p顶点是位于p曲线或表面上的点。p顶点因而是p曲线的1D定义域的
具体参数或者是表面的2D定义域的具体参数对。从B-Rep模型观点来看, p顶点用于具体化
边的边界。在下文中, 词语“表面”可以是平面以及非平面的表面。相似地, 词语“p曲线”可以
是直线以及非直线的p曲线。
[0048] 通过定义, 面是表面的边界部分, 被称为支撑表面。因而, 面与包括参与描述该面
的所有几何实体的几何元件(即, 至少一个几何实体的集合)相对应。这样的几何元件也可
以简单地被称为“面”。面的边界包括边。每一个这样的边是p曲线的边界部分, 被称为支撑p
曲线, 并且位于面的支撑表面上。边的边界包括两个顶点。每一个顶点是位于边上的点。通
过定义, 如果两个面共享至少一个边, 则这两个面相邻。相似地, 如果两个边共享至少一个
顶点, 则这两个边相邻。在机械部件的B-Rep实体模型中, 所有边确切地由两个面共享。相
反, 在皮肤的B-Rep模型中, 某些边由两个面共享, 而其它一些边是边界边并且确切地属于
一个面。
[0049] 必须理解, 从拓扑观点来看, 由两个面F1 和F2共享的边e是单个对象。相反, 从几何
观点来看, 这样的边是集合下列实体的复合对象: 在面F1的支撑表面S1上定义的p曲线以及
在面F2的支撑表面S2上定义的另一p曲线。相似地, 从拓扑观点来看, 由边e1 ,e2 ,......,en共
享的顶点v是单个对象。相反, 从几何观点来看, 这样的顶点是集合了在每一个边ei的所有p
曲线上定义的p顶点的复合对象。
[0050] 几何数据因而包括函数(例如, 表面-或“表面定义”-, p曲线和/或曲线, 具有如上
所述的定义域和值域) , 这些函数的每一个与各自的几何实体相对应。实际上, 表面定义与
由表面函数的图像构成的几何表面相对应。相似地, 曲线与由曲线函数的图像构成的几何
曲线相对应。p曲线与由合成有p曲线函数以及接着合成有曲线位于其上的表面函数的函数
的图像构成的曲线相对应。 这通过示例在下文中进行说明。
[0051] 这些函数可以典型地是参数函数, 例如NURBS。例如,
支撑表面可以典型地是NURBS
表面, 但是也可以是平面的、 标准的或程序的表面。并且(例如, 拓扑)数据可以包括至少面
的集合, 每一个面被定义为各自支撑表面(在几何数据中提供)的边界部分。 因而, 面与修整
的表面相对应。支撑表面因而是在其上按照任意方式通过修整操作来定义面(从而“支撑”
该面)的表面。
[0052] B-Rep的概念,尽管被广泛知晓, 现在经过可以在S10处提供的建模对象的示例而
被进一步讨论。然而, 针对至少某些拓扑实体的B-Rep的其它示例, 例如具有不同于“边界限
定”关系的其它关系, 可以通过该方法被仔细考虑。
[0053] 如已经提到的, 建模对象的B-Rep可以包括拓扑实体和几何实体。 几何实体可以包
括作为表面(例如, 平面)、 曲线(例如,直线)和/或点的3D对象。表面可以被提供为两个参数
的函数。 曲线可以简单地被提供为一个参数的函数。 并且点可以被提供为3D位置。拓扑实体
可以包括面、边和/或顶点。通过其定义, 面与被称为支撑表面的各自表面的边界部分相对

10
CN 104217460 B 说 明 书 8/21 页

应。术语“面”因而可以不同地指定该表面的这样的边界部分或者2D定义域的相对应的边界
部分。相似地, 边与例如被称为支撑曲线的曲线的边界部分相对应。术语“边”因而可以指指
定曲线或者其定义域的边界部分。顶点可以被定义为到3D空间中的点的链接。这些实体按
照下面彼此相关。 曲线的边界部分由位于该曲线上的两个点(顶点)定义。表面的边界部分
由其边界定义, 这一边界是位于表面上的边的集合。通过共享顶点, 面的边界的边被连接到
一起。通过共享边, 面被连接到一起。通过定义, 如果两个面共享边, 则这两个面相邻。相似
地, 如果两个边共享顶点, 则这两个边相邻。表面、 曲线和点可以经由参数化而被链接到一
起。例如, 定义曲线的参数函数的参数的值可以被提供为定义边界顶点。相似地, 将曲线的
参数链接到表面的两个参数的函数可以被提供为定义边界边。然而, B-Rep的这样的拓扑数
据的非常详细的结构在当前解释内容的范围之外。
[0054] 图4和图5说明了可以是在S10处提供的建模对象并且由在图中被标号为1和2的两
个相邻面, 即,顶部平面1和侧面圆柱形面2, 组成的部分圆柱形槽80的B-Rep模型。图4示出
了槽80的透视图。 图5示出了面的分解视图。相同的标号说明了边和顶点共享。面1是平面的
边界部分。面1的边界包括边3和4, 其中的每一个都由顶点8和9限定边界。面2由全部位于无
限大的圆柱形表面上的边3、5、6和7限定边界。因为面1和面2共享边3, 因此, 这两个面1和2
相邻。
[0055] 图6说明了槽80的B-rep模型的“被限定”拓扑关系。较上层101的节点是面, 中间层
103的节点是边, 并且较下层105的节点是顶点。 图7部分地说明了拓扑实体(面1和2, 边3和
4,顶点8)和作为表面、与p曲线相对应的曲线和与p顶点相对应的顶点的几何实体之间的关
系。在图7上, 从拓扑对象到几何对象的向右箭头记录了“被支撑”关系。将几何对象链接到
较高维度几何对象的向上箭头记录了“被嵌入”关系。通过设置如在图8上说明的轴, 几何模
型的函数(即, 公式)能够在下面的表中明确地给出。圆柱形半径被标注并且平面的高度被
标注。
[0056]

11
CN 104217460 B 说 明 书 9/21 页

[0057]

[0058] 模型的一致性由下面的属性记录。

[0059]

[0060] 和

[0061]

定义的三维曲线表征与边3相对应的相同几何实体(半圆形)。这是如何对边共享
[0062]
进行具体化。由P(c1 (v1))、
P(c3 (v3))和C(c21 (v2))定义的三维点表征与顶点8的空间位置相

对应的相同的 点。
这是如何对顶点共享进行具体化。

[0063] 现在讨论图1的方法的示例的其它动作(即, 步骤S20-S40)。


[0064] 该方法的目标在于确定S40第一数据和第二数据并且更换S50形成该另一函数的
数据以便实现压缩。如先前解释的, 基准函数和该另一函数通过它们与作为彼此的拷贝的
几何实体相对应的事实而被几何链接。 这两个函数可以按照任何方式被确定。
[0065] 在示例的情况下,该方法确定S20与作为彼此的拷贝的几何实体相对应的函数的
集合。接着, 基于逐个集合来执行压缩。具体地说, 该示例的方法在每一个集合内确定S30该
集合的基准函数。换言之, 对于每一个集合, 该集合的一个函数被按照任何方式选择, 并且
之后构成用作对于确定S40和更换S50的步骤的基准的函数。之后, 对于每一个集合,
该示例
的方法针对该集合内除了基准函数之外的每一个函数来重复确定S40和更换S50的步骤。

12
CN 104217460 B 说 明 书 10/21 页

“拷贝”关系随后经由构成等效关系的示例被解释。在S20处确定的函数的集合因而构成整
个函数的部分。因而, 该示例的方法对于每一个集合并且在每一个集合内对于该集合的除
了在S30处确定的基准函数之外的每一个函数, 循环确定S40和更换S50。通过对于与几何实
体的拷贝相对应的函数的每一个集合穷尽性地压缩该每一个集合, 该示例的方法因而穷尽
性地压缩B-Rep的数据。
[0066] 现在讨论与作为彼此的拷贝的几何实体相对应的函数的集合的确定S20的示例。
[0067] 如果两个几何实体(例如, 表面或曲线)遵守将其标记为几何复制的预先确定的
(计算机化的)标准, 则这两个实体被称为是彼此的拷贝。几何实体可以形成诸如面的几何
元素。上面解释了面与由曲线界定的表面相对应。 由此, 该方法可以有利地与任何模式识别
方法组合, 例如通过引用的方式合并于此的专利申请EP12306720 .9的方法和/或专利申请
EP12306721 .7的方法。实际上, 这两个专利申请描述了基于作为彼此的拷贝的几何元素(例
如, 面)的集合的模式识别方法。如下文更详细说明的, 根据这两个专利申请和/或与这两个
专利申请的方法中的任意一个或两个进行组合, 该方法可以执行确定S20, 确定S20仅被有
效地执行一次并且被用于当前压缩方法和模式识别方法二者, 从而实现协同的效果。
[0068] 研发中的这样的3D设计的一个方面被称为“模式识别”。 术语“模式”指代相同几何
特征的拷贝的常规布局。识别模式允许在设计期间将这样的模式处理为单个元素, 从而扩
展了设计可能性的阵列。例如, 代替逐个地修改模式的元素, 基于对模式的先前识别,用户
可以例如使用单个动作来全局地执行模式的修改。模式识别在CAD的不同领域中是相关的,
例如, 机械设计、消费类产品、 建筑架构、航空或其它领域。模式识别可以与特征识别相关。
特征识别用于识别给定3D对象(典型的是代表机械部件的固体)上的特征形状。机械设计所
感兴趣的特征形状例如包括孔、延压焊盘、延压凹穴、 圆角或圆形、旋转焊盘、和/或旋转凹
穴。识别特征形状相当于经过更好的语义水平识别其规格, 例如, 延压或旋转形状的轮廓,
旋转形状的旋转轴、 圆形或圆角的直径数值, 延压方向, 和/或延压深度。这一信息或者用于
修改形状, 例如通过编辑延压的轮廓, 或者用于供给下游处理, 例如机器加工处理。
[0069] 专利申请EP12306720 .9和/或专利申请EP12306721 .7二者描述了用于执行模式识
别的方法, 包括确定作为彼此的拷贝的面的集合的步骤。确定S20可以包括这样的面的集合
的这样的确定, 以及可能是这样的动作的重复。之后, 对于因而确定的作为彼此的拷贝的每
一组面, 确定S20可以简单地包括在尽可能多的集合中按照任何方式在拓扑上与彼此相对
应的面的几何实体, 从而获得与作为彼此的拷贝的几何实体相对应的函数的集合。换言之,
如稍后解释的, 根据刚性运动, 面被确定为彼此的拷贝。刚性运动将一个面(例如, 表面和/
或边界曲线)的每一个实体变换为另一个面的一个, 并且仅一个, 相对应的实体。
[0070] 该示例的确定S20因而包括确定作为彼此的拷贝的面的集合, 或者换言之, 彼此几
何相同 , 或者彼此几何复制。该集合可以在S20处根据本领域人员期望的任何实现而被确
定。例如, 该方法可以包括执行成对的面之间的比较, 根据任何顺序对该面进行浏览。这样
的比较可以按照任何方式被执行。 随后提供示例。并且, 如CAD领域所公知的, 涉及数字计算
的任何确定都受到由该系统应用的必要的数值近似影响。在当前情况下, 面可以在S20处被
确定为彼此的拷贝, 尽管它们在理论上略有不同。因而, 该方法实际上可以在S20处确定实
质上作为彼此的拷贝的面的集合。然而, 实现近似的方式不是当前讨论的主题, 以使得下文
中对“实质上作为彼此的拷贝”和“作为彼此的拷贝”不进行区分。仅在说明两个面是否是彼

13
CN 104217460 B 说 明 书 11/21 页

此的拷贝时才实际上考虑该方法遵循预定的准则。
[0071] 面可以被看作点集合(并且从而由该方法按照这样进行处理) , 即, 三维空间R 3的
子集。 刚性运动是由D(x)=Rx+T在两个点集合之间定义的映射D:R3→R3 , 其中R是旋转并且T
-1
是平移向量(可能为空)。 刚性运动是可逆的, 其中D-1 (y)=R
因为y=D(x)等效于x=D (y) ,
-1
y-R-1T。
由于集合的面是彼此的拷贝, 给定该集合的两个面, 通过应用刚性运动可以从一
个表推导另一个面。
[0072] 给定点集合X, 如果存在刚性运动D以使得Y={D(x) ,x∈X}, 则点集合Y是X的“复
制”, 这被简称为Y=D(X)。
[0073] “取向点集合”是配对(X ,ux) ,
其中 是点集合并且ux是映射ux:X→S2 ,
其中S
是R3的单位向量的集合。 换言之, 在任意点x∈X处, 定义单位向量ux (x)。
[0074] 如果Y是保存取向的X的复制, 则取向点集合是取向点集合(X ,ux)的“拷贝”。更确
切地说, 对于所有x∈X, 复制上的相对应的点D(x)的单位向量是点x处的旋转单位向量。形
式上, 对于所有x∈X,
uY (D(x))=Rux (x),
这意味着下面的图是可交换的。

[0075]

[0076] 确定S20所依赖的点集合的“拷贝”关系是等效关系。为了证明这个, 核查下面的属


性是足够的, 这并不困难: (1)点集合是其自身的拷贝,(2)如果Y是X的拷贝,
则X是Y的拷贝,
以及(3)如果Y是X的拷贝并且Z是Y的拷贝, 则Z是X的拷贝。
[0077] 根据基本代数学, 给定点集合的有限集合G(意味着G的元素是点集合) , 等效关系
“拷贝”将G分离为拷贝的不相交的并且是最大的集合Gi。这意味着如果i≠j, 则Gi∩Gj=φ,
G=UiGi ,
如果X ,Y∈Gi ,
则Y是X的拷贝,
并且如果X∈Gi且 则Y不是X的拷贝。通过参照
等效关系的等效分类, 集合Gi实际上是点集合的“分类”。
[0078] 先前的理论应用于(但不局限于)实体(即, 该示例中的建模对象是实体)的面。面
起到点集合的作用并且实体的B-Rep是该集合G。换言之, 为了实现确定S20, 本领域人员可
以将面表示为点集合并且将在S10处提供的B-Rep表示为上面定义的集合G。
[0079] 现在讨论在确定S20中确定拷贝面的集合的示例。
[0080] 给定例如代表实体的建模对象, 在S10处提供的所述实体的B-Rep被认为是独立的
面的集合。这意味着G={f1 ,...,fn},
其中fi是该实体的第i个面。最初的步骤是根据“拷贝”
关系计算(即, 确定S20)G的集合。整个算法如下:
[0081]

14
CN 104217460 B 说 明 书 12/21 页

[0082]

[0083] 可以看出, 拷贝的所有集合因而在开始被确定, 如下文解释的, 具有所确定的集合


的可能修改。
[0084] 现在讨论如何实现面的“拷贝” 关系的示例。
[0085] 如前所述, 实体的面由支撑表面(例如, 平面)并且由边界边定义。在示例中, 该面
配备有该实体的外部法向量。该边界边根据这一法向量而被取向。边界边通过共享顶点进
行连接。
[0086] 为了执行比较并且找出刚性运动, 每一个面配备有几个轴系统。在面的每一个顶
点v处, 按照如下方式创建轴系统。原始点P的坐标是顶点v的坐标。标注为U的第一向量是v
的输入边界边的正切, 并且使得U类似该边界边被取向。标注为V的第二向量是v的输出边界
边的正切, 并且在边界边方向上被取向。根据面的法向量, 词语“输入”和“输出”与边界边的
拓扑取向相关。第三向量是在顶点v处计算的面的外部法向量。尽管N总是与U和V垂直, 但是
应该注意, 轴系统(P ,U ,V ,N)通常不都是直的或正交的。
[0087] 图9-图11说明了半圆柱形面90的轴系统。 图9示出了面90及其法向量92。图10示出
了由法向量92引起的边界边94的拓扑取向。边界边a是顶点的输入边。边界边b是顶点v的输
出边。 图11显示了在每一个边界顶点处轴系统的向量U、 V、
N。
[0088] 现在, 在示例中, 在确定S20内,
该方法可以通过搜索两个面(如果存在)之间的刚
性运动来确定这两个面是否是彼此的拷贝。使f ,g作为分别配备有(相同数量的)本地轴系
统 和 的两个面。如果面f ,g不具有相同数量的本地轴系统,
则意味着它们不
具有相同数量的边界顶点, 因此它们被确定为不是彼此的拷贝, 并且刚性运动搜索并不启
动。 该方法可以测试这样的条件。
[0089] 第一步骤是计算刚性运动Di ,j ,
分别将面f的第j个轴系统改变为面g的第j个轴系
因此至多存在m 2 个这样的刚性运动。形式上,
统。由于i ,j=1 ,...,m, 刚性运动是这样的

15
CN 104217460 B 说 明 书 13/21 页

注意到 并 且D i ,j (x) =R i ,j x+
Ti ,j ,
这通过首先解析下面的线性系统来实现,
要记住矩阵Ri ,j的系数和向量Ti ,j的坐标是未
知的。
[0090]

[0091]

[0092]

[0093]
[0094] 第二,
为了保证矩阵Ri ,j是旋转的,
必须核查下面的两个条件。
[0095]
[0096] det(Ri ,j)=1
[0097] 否则, 由于Ri ,j不是旋转的, 因此Di ,j不是刚性运动。
[0098] 接着, 在先前的计算Di ,j中找出将f改变为g的刚性运动(如果存在)。 问题是现在回
答这一问题: 给定f ,g以及刚性运动D, D(f)=g是否为真?这可以通过对具有3D点的集合xk ,
k=1 ,......,q的面f进行采样, 并且通过核查点D(xk)和面g之间的距离与对于相同对象的
预定数值阈值相比较是否足够小来完成。如果在Di ,j当中几个刚性运动能够将f改变为g, 则
在可能的时候选择纯粹的平移, 这是执行确定S20的有效方式, 导致符合用户意图的结果。
[0099] 现在讨论根据上述示例的迭代用于在S20处确定的集合的数据结构的示例。
[0100] 为了取回给定点集合(与给定面相对应)和相关联的刚性运动的拷贝, 刚性运动和
相关的点集合可以被存储在现在讨论的合适的数据结构中。在概念上, 这一数据结构包括
有向图W=(P ,A ,α,ω) , 其节点P是点集合并且弧A被标记为刚性运动。该标记是映射m:A→
SE(3) ,其中SE(3)是三维刚性运动的组。更确切地说, 表述弧u∈A开始于节点α(u)=x∈P并
且结束于节点ω(u)=y∈P意味着点集合x和y是彼此的拷贝并且刚性运动m(u)将x改变为
y,标记为: y=m(u)x。现在, 假设弧A连接了x和z∈P, 其被写为α(v)=x并且w(v)=z。将x改
变为z的刚性运动是z=m(v)x。接着, z也是y的拷贝并且将y改变为z的刚性运动是z=m(v)m
(u) -1y。相反, 将z改变为y的刚性运动是y=m(u)m(v) -1z。这一信息可以完全被数据结构记
录。
[0101] 本质上, 计算初始子集合的算法创建了由深度1树图表组成的图表, 该深度1树图
表的每一个都是子集合。通过定义, 深度1树是以一个节点不具有输入弧(根节点)并且所有
其它节点不具有输出弧节点(叶节点)为特征的树图表。换言之, 所有非根节点都被连接到
根节点。结果, 给定深度1树图表内的任意两个节点, 仅存在联结它们的弧的一条路径, 并且
这一唯一的路径仅包括两个弧。
[0102] 图12-图13说明了由计算所拷贝的面的初始集合的算法产生的图表数据结构。 图
12说明了由四个对齐的圆柱形槽构成的建模对象的B-Rep 120, 面被标号为从1到12。根据
拓扑数据结构中的某些任意的存储来对它们进行标号。 图13说明了包括两个深度1树132的
图表130。
[0103] 因此, 将一个点集合改变为任何其它点集合的刚性运动是通过沿着联结两个所述
点集合的弧的路径组合刚性运动而进行计算的。 由于这一路径包括两个弧, 因此仅组合两

16
CN 104217460 B 说 明 书 14/21 页

个刚性运动。计算与位于子集合内的任意两个点集合相关的刚性运动的这一装置在该方法
的这一示例中被广泛使用。
[0104] 现在讨论确定S40第一数据和第二数据。
[0105] 基准函数和该另一函数可以是任意类型的函数, 例如NURBS,
或者先前讨论的其它
类型的函数, 并且因而会涉及大量的数据。该方法确定第一数据和第二数据, 其与指针一
起, 通常形成比所压缩的“其它”函数更小的数据。
[0106] 在该方法中, 术语“映射”涉及具体类型的函数, 该具体类型的函数与所述函数相
比较通常涉及相对少的数据。具体地说, 术语“映射”可以指代标准函数(即, 使用简单的标
准公式表达的函数)。例如, 该方法的映射可以是仿射映射, 例如在3D空间(即,值域)的成对
之间或者在3D空间与其自身之间的映射, 和/或在2D空间(即, 定义域)的成对之间或者在2D
空间与其自身之间的3D本地映射。在任何情况下, 该映射可以具有预定的形式, 例如,对于
解压缩的进一步方式而言是已知的。按照这种方式, 第一数据和第二数据可以仅包括映射
的参数(排除关于映射的本质的任何信息)。按照这种方式, 在更换S50中使用的数据尽可能
地小。
[0107] 现在, 该方法在S40处确定描述映射的数据。这意味着考虑到它们自身、仅在上文
解释的映射的参数的值(例如, 在这种情况下, 映射被预先确定为仿射映射)、 或者例如通过
该映射的逆映射的公式或值或参数间接地描述所述映射的方式, 第一数据和/或第二数据
可以包括映射的公式。而且, 应该注意到, 当该方法针对几何实体的拷贝的集合进行迭代
时, 并且在每一个这样的集合内, 该映射可以恰好对于确定S40的不同迭代而被关联到彼
此。这是例如当考虑包括支撑表面和边界曲线的面的拷贝时的情况。在这样的情况下, 与表
面(例如, 表面定义)的拷贝相对应的函数的定义域之间的映射可以和与边界曲线(例如, p
曲线)的拷贝相对应的函数的值域之间的映射相同或者是该映射的逆映射。在这种情况下,
第一数据和/或第二数据可以有利地包括指向先前确定(例如, 在确定S40的先前迭代中)的
第一数据和/或第二数据的指针, 以及关于两个映射之间的关系的本质的一条信息, 至少在
确定S40的一个迭代中。这允许进一步的压缩, 在确定S40和更换S50的不同迭代处映射的
“重新使用”。
[0108] 该函数可以包括参数函数。 在这样的情况下, 从基准函数的值域到该另一函数的
值域的映射(即, 由第一数据描述的映射) ,以及从该另一函数的定义域到基准函数的定义
域的映射(即, 由第二数据描述的映射)是仿射映射。这意味着这些映射是作为一个或几个
参数的线性表达式被公式化的函数。 这允许高的压缩比, 因为仿射映射可以被简单地表达。
[0109] 具体地说, 该函数可以包括表面定义(即, 与表面相对应的函数)。在这样的情况
下, 当基准函数和所考虑的该另一函数是与作为彼此的拷贝的表面相对应的这样的表面定
义时, 从基准函数的值域到该另一函数的值域的映射是刚性运动, 其将与基准函数相对应
的表面变换为与该另一函数相对应的表面。如上面解释的, 当将面划分为拷贝面的集合时,
这样的刚性运动可以被有利地预先确定。 因而该方法可以被快速地执行。如随后解释的, 从
该另一函数的定义域到基准函数的定义域的映射是2D本地映射。
[0110] 而且, 该函数可以包括p曲线(即, 与曲线相对应的函数, 并且被提供作为具有位于
表面定义的2D定义域内侧的图像的一个参数的函数)。在这种情况下, 当基准函数和所考虑
的该另一函数是与作为彼此的拷贝的曲线相对应的这样的p曲线时, 从基准函数的值域到

17
CN 104217460 B 说 明 书 15/21 页

该另一函数的值域的映射是从基准函数的值域到该另一函数的值域的2D本地映射, 并且从
该另一函数的定义域到基准函数的定义域的映射是1D本地映射。所述2D本地映射是从该另
一函数的值域到基准函数的值域的2D本地映射的逆映射, 该2D本地映射在其中所述函数
(基准函数和其它函数)是当前迭代的p曲线与其相关的表面定义的迭代处已经被先前确
定。这将稍后进行解释。这加速了所述方法并且增加了压缩, 因为先前确定的信息可以被重
新使用。 实际上,
当前迭代的第一数据可以简单地指代讨论中的先前迭代的第二数据, 通过
指定所述2D本地映射的逆映射被预期。
[0111] 如先前解释的,该函数可以定义作为彼此的拷贝的面。每一个面可以由下面进行
定义: 一个基准表面定义,
至少一个其它表面定义, 具有包括在所述基准表面定义的定义域
中的值域的至少一个p曲线的基准集合, 以及具有位于所述其它表面定义的定义域中并且
与该基准集合的各自一个相对应的至少一个p曲线的另一集合(即, 每一个“其它”p曲线与
作为“基准”面的拷贝的面的边界曲线相对应, 即,由所述基准表面定义和p取向定义的一
个, 所述边界曲线是基准面的各自边界曲线的拷贝)。
[0112] 在这样的情况下,更换S50包括通过由如早前解释的S40的几个迭代确定的并且全
部形成描述不同元素的数据的第一和第二数据更换该另一表面定义和该另一集合(p曲
线)。这些元素包括指向基准表面定义的指针。这些元素还包括对于该另一集合(P曲线)的
每一个指向基准集合的相对应一个(基准P曲线)的指针。这些元素还包括将与基准表面定
义相对应的表面变换为与该另一表面定义相对应的表面的刚性运动, 在该另一表面定义的
定义域和基准表面定义的定义域之间的2D本地映射, 以及在该另一集合的每一个的定义域
到该基准集合的相对应的一个的定义域之间的1D本地映射。在这样的情况下, 该方法在压
缩比方面尤其有效。
[0113] 现在讨论由该方法使用的2D本地映射的定义。
[0114] 使P:A→R3 , 并且Q:B→R3 , 是两个三维参数化表面(即,
2
参数表面定义)。定义域A和B是R (的子集)。 通过定义, 表面P和Q的值域是R3的如下子集:
[0115] R(P)={P(u ,v);(u ,v)∈A}
[0116] 并且
[0117] R(Q)={Q(s ,t);(s ,t)∈B}
[0118] 提到表面Q是从表面P复制的 (即, 拷贝)意味着存在刚性运动D∈SE(R 3) (如前所
述, 当划分面时可以被确定)以使得移动表面P的值域使其与表面Q相同:
[0119] D(R(P))=R(Q)
[0120] 换言之, 这意味着对于全部的(u ,v)∈A, 存在(s ,t)∈B以使得:
[0121] D(P(u ,v))=Q(s ,t)
[0122] 并且反之亦然。 先前的方程暗示性地定义了参数定义域A和B之间的对应关系。2D
本地映射的目标是使这一对应关系明确。通过定义, 与表面P和Q连同刚性运动D相关联的2D
本地映射是映射q:B→A, 以使得对于所有(s ,t)∈B:
[0123] D(P(a(s ,t)))=Q(s ,t)
[0124] 这可以被等效地写为
[0125]
[0126] 这对于处理映射q及其逆映射的坐标是有用的。
因此,
下面的标注是有用的。

18
CN 104217460 B 说 明 书 16/21 页

[0127] q(s ,t)=(f(s ,t) ,g(s ,t))


[0128] 并且
[0129] q-1 (u ,v)=(f*(u ,v) ,g*(u ,v))
[0130] 现在讨论可以由该方法使用的1D本地映射的定义。
[0131] 除了先前的几何对象,
在表面P上定义p曲线 并且在表面Q
上定义p曲线 定义域I和J是R(的间隔)。通过定义,
这些p曲线的值
3
域分别是R 的下面的子集:
[0132]
[0133] 以及
[0134]

[0135] 假设刚性运动D将p曲线 的值域改变为p曲线 的值域,



[0136]
[0137] 这意味对于所有μ∈J,
存在λ∈I以使得
[0138]
[0139] 这暗示性地定义了定义域I和J之间的对应关系。这里再次说明,
1D本地映射是为
了使这一对应关系简明。通过定义,
与表面P、Q,
与p曲线 以及与刚性运动G相
关联的1D本地映射是这样的映射,
以使得对于所有μ∈J
[0140]
[0141] 但是,
由于本地映射q,
对于所有(s ,t)∈B,
D(P(q(s ,t)))=Q(s ,t) ,
因此,
对于所
有μ∈J
[0142]
[0143] 并且接着
[0144]
[0145] 因为刚性运动是可逆的并且表面P是内射的,
这暗示着:
[0146]
[0147] 并且, 通过使用2D本地映射的逆映射q-1
最后,
[0148]
[0149] 其可以被等效地写为
[0150]

[0151]
[0152] 或者

[0153]

[0154]
这一关系是该方法的示例的关键特征,
因为其将表面Q上的p曲线与组合有本地映
射的表面P上的p曲线进行链接。

19
CN 104217460 B 说 明 书 17/21 页

[0155] 为了完整性,
也讨论了0D本地映射的定义,
尽管没有被涉及在所提供的压缩的示
例中。
[0156] 除 了 先 前的 几 何 对象 ,在 p曲 线 上 定 义 p 顶 点λ0 并 且 在 p曲 线
上定义p顶点μ0 。这些p顶点的值域分别是它们的3D坐标 和
而且,
刚性运动D将p顶点λ0 (的值域)改变为p顶点μ0 (的值域),
这意味着:
[0157]
[0158] 该0D本地映射为值r(μ0)其中r(·)是p曲线的1D本地映射。接着,
由于λ0=r(μ0) ,
能够通过使用在p曲线 上定义的p顶点μ0以及适当的1D本地映射来计算在p曲线
上定义的顶点λ0。
[0159] 现在提供2D本地映射及其确定的示例。
[0160] 使表面P为通过下面进行参数化并且在图14上说明的z轴圆柱形

[0161]

[0162] 并且使表面Q为在图15中说明的并且由下面进行参数化的x轴圆柱形

[0163]

[0164] 清楚地,
根据围绕y轴的 旋转移动表面P的值域使其与表面Q的值域一致。所述旋

转的矩阵是:

[0165]

[0166] 接着,
直接的计算开始于如下定义:

[0167]

[0168] 生成下面的2D本地映射。

[0169]

[0170]

[0171] 其是这样的, 对于所有(s ,t):


D(P(f(s ,t) ,g(s ,t)))=Q(s ,t)。
[0172] 并且2D本地映射的逆映射是:

[0173]

20
CN 104217460 B 说 明 书 18/21 页

[0174]

[0175] 其是这样的, 对于所有(u ,v)


[0176] D(P(u ,v))=Q(f*(u ,v) ,g*(u ,v))。
[0177] 现在提供1D本地映射及其确定的示例。
[0178] 在表面P上的p曲线
[0179]
[0180]
[0181] (图16上的虚线160)在R3中定义了由下面进行参数化的曲线:

[0182]

[0183] 这一曲线是中心位于(0 ,0 ,bv0)处的圆形,


半径为a并且垂直于z轴(图17上的虚线
170)。
[0184] 表面Q上的P曲线:
[0185]

[0186]

[0187]
(图18上的虚线180)定义了中心位于(bv0 ,0 ,0)处的圆形,
半径为a并且垂直于x轴
(图19上的虚线190)。
其通过下面进行参数化:

[0188]

[0189] 根据刚性移动D移动表面P上的圆形会产生(从值域点来看)表面Q上的圆形。可以
根据开始于下面的定义来计算1D本地映射

[0190]

[0191] 这产生下面的1D本地映射。

[0192]

[0193] 其是这样的,
对于所有μ:

21
CN 104217460 B 说 明 书 19/21 页

[0194]

[0195] 现在讨论说明如何使用该方法来执行压缩的示例。
[0196] 在该示例中,输入数据是实体模型的B-Rep。第一步骤是在B-Rep上识别全部复制
的表面和p曲线。这通过识别如早前讨论的拷贝表面来执行。前述算法通过识别复制的支撑
表面和复制的边界边来识别复制的面。根据这一信息, 该方法可以容易地输出复制的表面
的图形G和复制的p曲线的图形H。 图形G(表征图形)的节点是编码(表征p曲线)并且图形的
弧使用刚性运动进行标记。 图形G(表征H)的每一个连接的部分是表面的组合(表征p曲线) ,
其是相同的共同基准的复制。在每一个连接的部分中, 该示例的方法任意地选择作为基准
节点的一个节点。
[0197] 应当注意,
为了找到将表面 的值域改变为表面 的值域
的合适的刚性移动D, 早前描述的并且也可以在这里使用的算法执行一个表面上的点到另
一表面上的点的多个投射。具体地说, 这产生参数(ui ,vi)和(si ,ti)的几个配对,
以使得D(P
(ui ,vi))=Q(si ,ti)。它们能够在下面被有利地重新使用。
[0198] 示例中的第二步骤是计算本地映射。 该示例仅处理仿射本地映射。这是有利的, 因
为仿射本地映射要求小的计算时间和小的存储空间。而且, 工业经验表明当使用实体来建
模机械部件时, 非仿射本地映射看起来是不必要的。每次在根据基准表面P复制非基准表面
Q(“其它”表面)时, 计算2D仿射本地映射。2D仿射本地映射可以被写为:

[0199]

[0200]
以使得必须标识六个系数qi ,i=1 ,......,6。这能够通过从第一识别步骤进行收
集而被有利地完成,对于j=1 ,2 ,3,

[0201]

[0202] 这对于未知的q i ,i=1 ,......,6产生3×2=6个线性方程,其通过使用标准线性


代数式来解析。可以执行一些额外的验证来确保这一(候选的)仿射本地映射在整个表面上
是有效的。 这将随后关于仿射本地映射验证进行详细说明。
[0203] 每次在根据基准p曲线复制非基准p曲线时, 计算1D仿射本地映射。其通过下面进
行定义:
[0204] r(μ)=r1μ+r0
[0205] 通过从第一识别步骤进行收集来获得未知系数γi ,i=1 ,2, 对于j=1 ,2,
r(μj)=
λj。对于未知的ri ,i=1 ,2, 这产生两个线性方程, 其通过使用标准线性代数式来解析。
[0206] 最后的步骤是压缩本身。 压缩通过本地映射、 刚性运动和指向基准几何体的指针
来更换非基准几何体。 更精确地说, 通过下面三项来更换非基准表面Q:
[0207] ●指向基准表面P的指针
[0208] ●刚性运动D以及
[0209] ●2D仿射本地映射q。
[0210] 在非基准表面(其基准表面为P)上定义的非基准p曲线由下面三项来更换:

22
CN 104217460 B 说 明 书 20/21 页

[0211] ●指向在基准表面P上定义的基准p曲线(u~ ,v~)的指针


[0212] ●2D仿射本地映射q
[0213] ●1D仿射本地映射r。
[0214] 解压缩按照下面执行。 通过根据下面的公式取回其基准表面P、相关联的刚性运动
D和2D本地映射q, 恢复非基准表面Q的数学定义:
[0215]
[0216] 通过根据下面的公式取回本地映射q和r以及基准p曲线 恢复非基准p取向
-1
的数学定义(其中,
q的逆映射q 可以容易进行联机计算):

[0217]

[0218] 清楚地, 仅需要直接的评估, 这使解压缩快速而安全。


[0219] 该示例的确定S40可以进一步包括仿射本地映射验证。 这在下文中进行讨论。计算
2D仿射本地映射以使得:
[0220] D(P(q(si ,ti)))=Q(si ,ti)
[0221] 对于i=1 ,2 ,3, 不必对于所有(s ,t)产生
[0222] D(P(q(s ,t)))-Q(s ,t)=0
[0223] 额外的核查是有利的。 该原理是取决于表面P和Q的程度,对于足够大的多个点
(si ,ti)核查先前的关系。 当表面P和Q是平面的或者B-样条的, 则下面的函数是多项式。
[0224] f(s ,t)=D(P(q(s ,t)))-Q(s ,t)
[0225] 当P或者Q是NURBS表面(包括标准表面以及自由形式表面)时, 函数f(s ,t)是有理
函数, 但是基本代数操作能够将其改变为多项式函数。无论如何, 关键点是核查多项式函数
f(s ,t)对于所有(s ,t)是否消失。 其可以被写为:
[0226]

[0227] 对于j=0 ,......,d t。重复该过程ds+1次,


其中,ds是多项式的最大阶数, 保证了gj
(s)=0, 对于j=0 ,......,dt并且对于所有s。这意味着函数f是零函数, 以使得仿射本地映
射q对于所有(s ,t)是有效的。注意到多项式函数f不需要是简明的, 只要其阶数是相关的,
这可以通过考虑表面P和Q的阶数来获得。
[0228] 如果验证失败, 则表面Q不被压缩。
[0229] 现有的压缩技术处理数据的低级语义: 网格三角形、 数据结构(指针、 数组)以及几
何坐标。因此, 当实体模型由精确的的几何体构成时, 基于网格的压缩技术是无法起作用
的。而且, 当实体模型涉及相同形状的多次出现时, 每次出现被独立地压缩, 因而错失了数
据压缩的很大的潜力。
[0230] 相反,所描述的方法利用在机械部件的形状上经常发生的重复特征。在第一步骤
中, 该方法识别所有相似的几何体。被考虑的几何体是表面和p曲线, 其在B-Rep模型中被广
泛使用。这一识别步骤产生拷贝的空间位置以及本地映射。本地映射在两个复制的几何体

23
CN 104217460 B 说 明 书 21/21 页

的参数定义域之间建立关系。接着, 该方法创建所重复的几何体的字典, 对于每一个复制的


几何体, 在于指向基准几何体的指针连同刚性运动以及本地映射。输入B-Rep的压缩版本仅
包括压缩的几何体, 拓扑数据没有改变。
[0231] 该示例的方法的第一优点是, 压缩几何体显著地减少了B-Rep数据的量。实际上,
根据机械CAD模型的表征数据库在达索系统上执行的工业试验表明, 由几何体占据了74%
的存储器, 与由拓扑体占据了25%相对。因而,压缩几何体节省了用于数据存储的存储器并
且加速了网络环境中的数据传输。
[0232] 第二个优点是, 现有的压缩技术能够用于压缩由这里描述的方法产生的B-Rep模
型。 换言之, 本发明可以用作现有压缩技术的预处理器。
[0233] 第三个优点是, 该解压缩方法不执行任何数值计算。通过使用刚性运动和本地映
射组合基准表面和p曲线, 解压缩恢复了表面和p曲线的原始格式。在没有本地映射的情况
下, 解压缩的非基准几何体的参数化将改变, 这使得数值投射或交叉不可避免, 这潜在地是
不安全的。
[0234] 现在讨论由该方法提供的结果。
[0235] 从存储器尺寸来看, 刚性运动由轴向量、角度值和平移向量定义, 以使得用于存储
刚性运动的存储器存储是7个实数。2D本地映射通过6个实数定义, 并且1D本地映射通过2个
实数定义。压缩比取决于几何体的本质。NURBS几何体可以是任意大的(按照存储器尺寸) ,
因此压缩比也可以是任意大的, 因为所述几何体由恒定尺寸数据更换。标准几何体(平面、
圆柱形、 圆锥形、球形、
圆环)能够被压缩, 并且尽管它们具有恒定的尺寸。申请人在压缩比
方面的经验如下:
[0236]
平面 圆柱形 圆锥形 球形 圆环
1 .5 1 .67 1 .67 1 .67 1 .83
[0237] 现在参照图20-27讨论根据该方法的压缩的完整示例。
[0238] 该示例的B-Rep模型包括在表面上定义的并且由n个p曲线pi ,i=1 ,......,n界定
的面F。其还包括位于空间中的分离位置处的面F的m个拷贝Fj ,j=1 ,......,m, 如在图20中
说明的, n=4并且m=2。
[0239] 拷 贝的 面的 表 面 被 标 记 为 S j ,j=1 , . . . . . . ,m ,界 定 面 F j 的 p曲 线 被 标 记 为
并且它们指向其支撑表面。
[0240] 每一个几何元素都配备有其自己的数学描述220, 如在图22-24的示意性表示图中
说明的。
[0241] 该算法经过刚性运动Dj识别出面F j是面F的各自拷贝。结果, 提供2D本地映射q j以
使得 以及1D本地映射ri j以使得
对于j=1 ,......,m, 对于i=
1 ,......,m以及j=1 ,......,n。在图25-27中说明了代表压缩的模块的数据结构, n=4并
且m=2。应当注意到, 每一个2D本地映射由相同表面上的所有p曲线共享。每一个表面Sj的
数学描述由包括指针(指向基准表面S)、 刚性运动(7个实数)以及2D本地映射(6个实数)的
恒定尺寸数据块260更换。每一个p曲线 的数学描述由包括指针(指向基准p曲线pi)和1D
本地映射rii (2个实数)的固定尺寸数据块260更换。

24
CN 104217460 B 说 明 书 附 图 1/11 页

图1

25
CN 104217460 B 说 明 书 附 图 2/11 页

图2

26
CN 104217460 B 说 明 书 附 图 3/11 页

图3

图4

27
CN 104217460 B 说 明 书 附 图 4/11 页

图5

图6

图7

28
CN 104217460 B 说 明 书 附 图 5/11 页

图8

图9

图10

29
CN 104217460 B 说 明 书 附 图 6/11 页

图11

图12

图13

30
CN 104217460 B 说 明 书 附 图 7/11 页

图14

图15

图16

31
CN 104217460 B 说 明 书 附 图 8/11 页

图17

图18

图19

32
CN 104217460 B 说 明 书 附 图 9/11 页

图20

图21

33
CN 104217460 B 说 明 书 附 图 10/11 页

图24

34
CN 104217460 B 说 明 书 附 图 11/11 页

35

You might also like