会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
首页 / 专利库 / 地球科学 / 地球科学 / 用于交互式基于特征的地球科学几何建模的场景图的构造和维护

用于交互式基于特征的地球科学几何建模的场景图的构造和维护

阅读:854发布:2020-05-12

IPRDB可以提供用于交互式基于特征的地球科学几何建模的场景图的构造和维护专利检索,专利查询,专利分析的服务。并且提供了一种方法、计算机系统或者计算机程序,用于交互式地构造、编辑、绘制以及操纵地球科学模型,包括聚合几何系统以及图形系统的功能,加强几何系统以及图形系统之间的一致性,并且经由集成层将几何系统以及图形系统通过接口连接到应用程序。还提供了状态机,用于允许只对那些其几何结构或者拓扑结构已经改变并且被用户指定为可视的图形对象更新,由此提高性能。还提供了一种场景图构造技术来减少内存需求并且进一步地增强性能。其中提供了一种材料性质框架,用来将几何结构或者拓扑结构方面的变化传达到聚合对象,所述聚合对象然后确定哪些图形对象受到改变的影响,并且哪些图形对象将要被更新。,下面是用于交互式基于特征的地球科学几何建模的场景图的构造和维护专利的具体信息内容。

1.一种用于交互式地编辑包括第一表面特征的模型的方法,所述 方法在计算机上实现,所述计算机包括处理器、数据存储器系统、至 少一个输入装置和至少一个输出装置,所述计算机还具有包括了随机 访问存储器的存储器,所述模型被存储在计算机可读媒体上,所述方 法包括:创建场景图;

把第一表面特征的数据从存储在数据存储器系统中的数据库装 载到所述计算机的存储器中;

为第一表面特征创建聚合特征;

根据所述聚合特征创建第一图形对象;

将第一图形对象添加到所述场景图;

为聚合特征创建几何对象;

经由不规则空间划分通过编辑用于所述几何特征对象的几何对 象来编辑所述模型中的第一表面特征,使得所述表面特征变成所述模 型的一部分;

有选择地只为那些已经改变的单元更新用于所述模型的图形,其 中所述更新根据选自几何标准、拓扑标准以及图形对象可视性的定义 的标准而加以选择;以及在已经将表面特征分类成模型之后,从所述场景图中移除用于第 一表面特征的第一图形对象。

2.如权利要求1所述的方法,其中所述编辑步骤包括:提供一接口;

提供利用所述接口操作的IGM;

提供利用所述IGM操作的GQI;

经由所述接口,选择用来执行第二表面特征的操作,所述接口被 构造并且设置成用于向IGM通知所述选择;

利用GQI调用操作;

在执行所述操作期间,执行从GQI到IGM的至少一次回调;以及更新所述模型的图形对象以便刷新输出装置。

3.如权利要求1所述的方法,其中所述编辑步骤通过不规则空 间的划分来实现。

4.如权利要求1所述的方法,其中更新图形对象的步骤包括创 建图形对象。

5.如权利要求2所述的方法,其中执行回调的步骤引起聚合特 征状态的变化。

6.如权利要求5所述的方法,其中聚合特征状态的变化处于一 致性有限状态机中。

7.如权利要求6所述的方法,其中所述一致性有限状态机管理 几何结构和图形之间的一致性。

8.如权利要求5所述的方法,其中执行回调的步骤包括使聚合 特征的图形对象无效。

9.如权利要求5所述的方法,其中执行回调的步骤包括使聚合 特征的几何结构有效。

10.如权利要求5所述的方法,其中执行回调的步骤包括提供一 组对象,所述一组对象包括:几何建模器特征对象;

该几何建模器特征对象中包含的改变了的几何对象;

可操作地与改变了的几何对象相关联的第一元性质属性对象;

与第一元性质属性对象相关联的第一元性质对象,所述第一元性 质对象具有:点集保存性质对象;

点集保存性质策略对象;

单元反向指针性质对象;

聚合反向指针性质策略对象;

与单元反向指针对象相关联的几何单元对象;

与几何单元对象相关联的聚合单元对象;以及与聚合单元对象相关联的显示单元图形对象;

与几何建模器特征对象相关联的第二元性质属性对象;以及与第二元性质属性对象相关联的第二元性质对象,第二元性质对 象具有:第二点集保存性质对象;

第二点集保存性质策略对象;

特征反向指针性质对象;

第二聚合反向指针性质策略对象;

与特征反向指针性质对象相关联的几何特征对象;

与几何特征对象相关联的聚合特征对象;以及与聚合特征对象相关联的显示特征图形对象。

11.如权利要求10所述的方法,其中执行回调的步骤包括:如果所述回调针对体积对象,那么为体积特征执行编辑回调;否 则为表面特征执行编辑回调。

12.如权利要求1所述的方法,其中更新步骤只针对那些已经发 生几何改变的单元的图形而进行。

13.如权利要求1所述的方法,其中更新步骤只针对那些已经发 生拓扑改变的特征而进行。

14.如权利要求1所述的方法,其中创建用于来自模型的至少一 个聚合特征的图形的步骤包括:获取模型中所有相关的表面特征;

对于每个相关的表面特征:

如果所述表面特征具有图形对象,那么更新用于表面特征的 图形对象,否则创建用于表面特征的图形对象;并且将用于表面特征的图形对象添加到表面场景图根节点。

15.如权利要求14所述的方法,其中创建图形对象的步骤包括:获取用于表面特征的所有二维单元的聚合对象;

提示每个单元的聚合对象来获取至少一个有效的图形对象以及 将图形对象添加到表面特征的子场景图;以及使表面特征的图形对象有效。

16.如权利要求15所述的方法,其中获取用于单元的有效图形 对象的步骤包括:如果用于所述单元的图形对象不存在,那么创建用于所述单元的 图形对象,并且使所述图形有效;以及如果用于所述单元的图形对象存在但不是有效的,那么更新用于 所述单元的图形对象并且使所述图形有效。

17.如权利要求1所述的方法,其中更新图形对象的步骤包括参 考可视性有限状态机。

18.如权利要求17所述的方法,其中所述可视性有限状态机管 理对图形对象的更新以及对图形对象可视性的更新。

19.如权利要求18所述的方法,其中所述可视性有限状态机使 只对那些被指定为可视的对象图形的更新能够进行。

20.如权利要求18所述的方法,其中更新步骤包括:将图形对象指定为可视的;

检验图形对象的有效性;

如果所述图形对象是有效的,那么将所述图形对象添加到场景 图,否则,更新所述图形对象,然后将所述图形对象添加到场景图。

21.如权利要求1所述的方法,其中创建用于来自模型的至少一 个体积单元的图形的步骤包括:获取模型中至少一个相关的有效体积单元;

确保每个体积单元的所有二维单元的图形对象都已经被创建;

为每个二维单元,获取聚合,并且如果二维单元聚合不存在,就 创建新的聚合;

确保每个二维单元都具有有效的图形;

为至少一个体积单元的每个创建图形对象;

为每个体积单元,将体积单元的每个二维单元的图形内容添加到 体积单元的图形对象的子场景图;以及将用于每个体积单元的图形对象添加到体积场景图根节点。

22.如权利要求21所述的方法,其中二维单元的、图形内容的 实例化由至少一个包含具有作为孩子的二维单元的表面特征的图形 对象、以及包含具有一个体积单元或者两个体积单元的图形对象的至 少一个场景图共用,其中所述两个体积单元具有作为它们的边界部分 的二维单元。

23.如权利要求6所述的方法,其中所述更新步骤包括:检验场景图中的每个特征的状态;

如果所述图形是有效的或者如果几何结构对于所述特征来说是 无效的,那么不更新所述特征的图形对象;

如果所述几何结构是有效的而所述图形是无效的,那么更新所述 特征的图形对象。

24.如权利要求6所述的方法,其中所述更新步骤包括:检验场景图中的每个单元的状态;

如果所述图形是有效的或者如果几何结构对于所述单元来说是 无效的,那么不更新所述单元的图形对象;

如果所述几何结构是有效的而所述图形是无效的,那么更新所述 单元的图形对象。

25.如权利要求11所述的方法,其中为体积特征而执行编辑回 调的步骤包括:利用几何建模器接口注册元性质分割回调类方法,所述几何建模 器接口被构造并且设置成用于要在发生体积分割事件时加以调用;

将第一元性质属性附加到由所述体积特征包含的至少一个体积 对象上;

从几何建模器接口接收用于指定第一体积对象、受第一体积对象 的变化影响的第二体积以及第一元性质属性的回调;

从第一元性质属性来获取指针值并且反引用所述指针值以便定 位第一元性质对象;

利用第一元性质属性、第一体积对象以及第二体积对象,在第一 元性质对象中调用分割回调,包括:获取第一点集保存性质实例;

从所述性质实例来获取第一点集保存策略;

利用点集保存性质实例、第一体积对象以及第二体积对象, 来启动对所述点集保存策略实例的第一分割回调,包括:获取用于第一体积对象的至少一个包含特征;并且利用所述包含特征以及第二体积对象在所述几何建模 器接口上启动特征添加孩子更新;

获取单元反向指针性质实例;并且

从所述单元反向指针性质实例来获取聚合反向指针性质策 略实例;以及利用单元反向指针性质实例来启动对聚合反向指针性质策 略实例的第二分割回调,包括:从所述单元反向指针性质实例来获取体积几何单元对 象;并且启动对体积几何单元对象的单元分割调用,包括:启动对体积几何单元对象的体积单元聚合主顾的 调用,以便使第一体积的图形无效。

26.如权利要求25所述的方法,其中为体积特征而执行特征添 加孩子更新的步骤包括:利用所述几何建模器接口注册元性质添加孩子回调类方法,所述 几何建模器接口要在发生特征添加孩子事件时被调用;

将第二元性质属性实例附加到体积特征;

从所述几何建模器接口接收用于指定所述体积特征、体积对象以 及第二元性质属性的添加孩子回调;

从第二元性质属性来获取指针值并且反引用所述指针值来定位 第二元性质对象;

在第二元性质对象中调用所述添加孩子回调,包括:获取第二点集保存性质实例;

从第二点集保存性质实例来获取第二点集保存性质策略实 例;以及利用体积特征以及体积几何对象来启动第二点集策略对象 的添加孩子回调方法,包括:将所述点集保存性质附加到所述体积单元;

获取特征反向指针性质实例;

从特征反向指针性质实例来获取第二聚合反向指针性 质策略实例;以及利用体积特征、体积几何对象以及体积特征反向指针性 质,来启动第二聚合反向指针性质策略实例的添加孩子回调方法,包 括:对由特征反向指针性质实例标识的体积特征几何 对象启动添加孩子通知调用,包括:启动对体积特征对象的体积特征聚合主顾的 调用,以便使体积特征对象的几何结构有效;以及启动对体积特征对象的体积特征聚合主顾的 调用,以便使体积特征对象的图形无效。

27.如权利要求11所述的方法,其中为表面特征执行编辑回调 的步骤包括:利用所述几何建模器接口注册元性质分割回调类方法,以在发生 表面分割事件时加以调用;

将第一元性质属性附加到由所述表面特征包含的至少一个表面 对象;

从几何建模器接口接收用于指定第一表面对象、受第一表面对象 的变化影响的第二表面以及第一元性质属性的回调;

从第一元性质属性来获取指针值并且反引用所述指针值以便定 位第一元性质对象;

利用第一表面对象、第二表面对象以及第一元性质属性在第一元 性质对象中调用第一分割回调,包括:获取第一点集保存性质实例;

从所述性质实例来获取第一点集保存策略实例;

利用点集保存性质实例、第一表面对象以及第二表面对象, 来启动对所述点集保存策略实例的第一分割回调,包括:获取用于第一表面对象的至少一个包含特征;并且利用所述包含特征以及第二表面对象在所述几何建模 器接口上来启动特征添加孩子更新;

获取单元反向指针性质实例;

从所述单元反向指针性质实例来获取聚合反向指针性质策 略实例;以及利用单元反向指针性质实例来启动对聚合反向指针性质策 略实例的第二分割回调,包括:从单元反向指针性质实例来获取表面几何单元对象;以 及启动对表面几何单元对象的单元分割调用,包括:启动对表面几何单元对象的表面单元聚合主顾的 调用,以便使第一表面的图形无效。

28.如权利要求27所述的方法,其中执行特征添加孩子更新的 步骤包括:利用所述几何建模器接口注册元性质添加孩子回调类方法,以在 发生特征添加孩子事件时加以调用;

将第二元性质属性实例附加到表面特征;

从所述几何建模器接口接收用于指定所述表面特征、表面对象以 及第二元性质属性的添加孩子回调;

从第二元性质属性来获取指针值并且反引用所述指针值来定位 第二元性质对象;以及在第二元性质对象中调用所述添加孩子回调,包括:获取第二点集保存性质实例;

从第二点集保存性质实例来获取第二点集保存性质策略实 例;以及利用表面特征以及表面几何对象,来启动第二点集策略对象 的添加孩子回调方法,包括:将所述点集保存性质附加到所述表面单元;

获取特征反向指针性质实例;

从特征反向指针性质实例来获取第二聚合反向指针性 质策略实例;以及利用表面特征、表面几何对象以及表面特征反向指针性 质,来启动第二聚合反向指针性质策略实例的添加孩子回调方法,包 括:启动对由特征反向指针性质实例标识的表面特征 几何对象的添加孩子通知调用,包括:启动对表面特征对象的表面特征聚合的主顾 的调用,以便使表面特征对象的几何结构有效;以及启动对表面特征对象的表面特征聚合主顾的 调用,以便使表面特征对象的图形无效。

29.如权利要求2所述的方法,其中执行回调的步骤引起所述单 元状态的变化。

30.如权利要求29所述的方法,其中所述单元状态的变化处于 一致性有限状态机中。

31.如权利要求2所述的方法,其中在所述模型之内不包含第二 表面特征。

32.如权利要求2所述的方法,其中所述模型内包含第二表面特 征。

33.如权利要求1所述的方法,其中所述输出装置是计算机监视 器。

34.如权利要求11所述的方法,其中为体积特征执行编辑回调 的步骤包括:利用几何建模器接口注册元性质合并回调类方法,以在发生体 积合并事件时加以调用;

将第一元性质属性附加到所述体积特征包含的至少一个体积对 象;

从几何建模器接口接收用于指定第一体积对象、第二体积对象、 原先分界第一以及第二体积对象并且已经从所述模型移除的表面对 象以及元性质属性的回调;

从所述几何建模器属性来获取指针值并且反引用所述指针值来 定位第一元性质对象;以及在所述第一元性质对象中调用合并回调,包括:获取第一点集保存性质实例;

从所述性质实例来获取第一点集保存策略实例;

利用点集保存性质实例、第一体积对象,第二体积对象以及 表面对象,来启动对所述点集保存策略实例的第一合并回调,包括:获取用于第一体积对象的至少一个包含特征;并且利用所述包含特征以及第二体积对象在所述几何建模 器接口上来启动特征移除孩子更新;

获取单元反向指针性质实例;

从所述单元反向指针性质实例来获取聚合反向指针性 质策略实例;并且利用所述单元反向指针性质实例、第一体积对象、第二 体积对象以及表面对象来启动对聚合反向指针性质策略实例的第二 合并回调,包括:从所述单元反向指针性质实例来获取体积几何单元对 象;并且启动对体积几何单元对象的单元合并调用,包括:启动对体积几何单元对象的体积单元聚合主顾的 调用,以便使第一体积的图形无效。

35.如权利要求34所述的方法,其中执行特征移除孩子更新的 步骤包括:利用所述几何建模器接口注册元性质移除孩子回调类方法,以在 发生特征移除孩子更新事件时加以调用;

将第二元性质属性实例附加到体积特征;

从所述几何建模器接口接收用于指定所述体积特征、体积对象以 及第二元性质属性的移除孩子回调;

从第二元性质属性来获取指针值并且反引用所述指针值来定位 第二元性质对象;并且在第二元性质对象中调用所述移除孩子回调,包括:获取第二点集保存性质实例;

从第二点集保存性质实例来获取第二点集保存性质策略实 例;

利用体积特征以及体积几何对象,来启动第二点集策略对象 的移除孩子回调方法,包括:将所述点集保存性质从所述体积单元移除;

获取特征反向指针性质实例;

从特征反向指针性质实例来获取第二聚合反向指针性 质策略实例;以及利用体积特征、体积几何对象以及体积特征反向指针性 质,来启动第二聚合反向指针性质策略实例的移除孩子回调方法,包 括:对由特征反向指针性质实例标识的体积特征几何 对象启动移除孩子通知调用,包括:启动对体积特征对象的体积特征聚合主顾的 调用,以便使体积特征对象的几何结构有效;以及启动对体积特征对象的体积特征聚合主顾的 调用,以便使体积特征对象的图形无效。

36.如权利要求11所述的方法,其中为表面特征执行编辑回调 的步骤包括:利用所述几何建模器接口注册元性质合并回调类方法,以在发生 表面合并事件时加以调用;

将第一元性质属性附加到所述表面特征包含的至少一个表面对 象;

从几何建模器接口接收用于指定第一表面对象、第二表面对象以 及原先分界第一以及第二表面并且已经从所述模型移除的曲线对象 以及元性质属性的回调;

从所述几何建模器属性来获取指针值并且反引用所述指针值来 定位第一元性质对象;以及在所述第一元性质对象中调用合并回调,包括:获取第一点集保存性质实例;

从所述性质实例来获取第一点集保存策略实例;以及利用点集保存性质实例、第一表面对象、第二表面对象以及 曲线对象来启动对所述点集保存策略实例的第一合并回调,包括:获取用于第一表面对象的至少一个包含特征;并且利用所述包含特征以及第二表面对象在所述几何建模 器接口上来启动特征移除孩子更新;

获取单元反向指针性质实例;

从所述单元反向指针性质实例来获取聚合反向指针性质策 略实例;并且利用所述单元反向指针性质实例、第一表面对象、第二表面 对象以及曲线对象,来启动对聚合反向指针性质策略实例的第二合并 回调,包括:从单元反向指针性质实例来获取表面几何单元对象;以 及启动对表面几何单元对象的单元合并调用,包括:启动对表面几何单元对象的表面单元聚合主顾的 调用,以便使第一表面的图形无效。

37.如权利要求36所述的方法,其中执行特征移除孩子更新的 步骤包括:利用所述几何建模器接口注册元性质移除孩子回调类方法,以在 发生特征移除孩子更新事件时被调用;

将第二元性质属性实例附加到表面特征;

从所述几何建模器接口接收用于指定所述表面特征、表面对象以 及第二元性质属性的移除孩子更新;

从第二元性质属性来获取指针值并且反引用所述指针值来定位 第二元性质对象;并且利用第二元性质属性、表面特征以及表面几何对象,在第二元性 质对象中调用所述移除孩子更新,包括:获取第二点集保存性质实例;

从第二点集保存性质实例来获取第二点集保存性质策略实 例;以及利用表面特征以及表面几何对象来启动第二点集策略对象 的移除孩子回调方法,包括:将所述点集保存性质从表面单元中移除;

获取特征反向指针性质实例;

从特征反向指针性质实例来获取第二聚合反向指针性 质策略实例;以及利用表面特征、表面几何对象以及表面特征反向指针性 质,来启动第二聚合反向指针性质策略实例的移除孩子回调方法,包 括:启动对由特征反向指针性质实例标识的表面特征 几何对象的移除孩子通知调用,包括:启动对表面特征对象的表面特征聚合主顾的 调用,以便使表面特征对象的几何结构有效;以及启动对表面特征对象的表面特征聚合主顾的 调用,以便使表面特征对象的图形无效。

38.一种用于交互式地编辑包括第一表面的模型的方法,所述 方法在计算机上实现,所述计算机包括处理器、数据存储器系统、至 少一个输入装置以及至少一个输出装置,所述模型被存储在计算机可 读媒体上,所述方法包括:使用几何查询接口GQI对象构建所述模型,GQI对象具有GQI材 料性质框架对象,所述GQI材料性质框架对象包括:与gmMP对象、gmMPPolicy对象和gmMPConstant对象相关联 的参考对象;

gmMP对象,用于定义材料性质表示类的行为;

gmMPPolicy对象,用于传播材料策略;以及gmMPConstant对象,用于提供对材料性质常量的访问;

使用从公共模型构建器对象派生的交互式几何建模IGM对象来编 辑所述模型的第一特征,IGM对象与所述GQI材料性质框架对象以及 IGM材料性质框架对象相关联,所述IGM材料性质框架对象包括:与所述gmMP对象相关联的gmMPPolyXYZ对象;

与gmMP对象相关联的gmMPZ对象;

与gmMPZ对象相关联的gmMPTime对象;

与gmMPZ对象相关联的gmMPDepth对象;

与gmMP对象相关联的gmMP2DPoly对象;

与gmMP对象相关联的gmMP2DGrid对象;

与gmMP对象相关联的gmMP3dGrid对象;

与gmMPConstant对象相关联的gmMPName对象;

与gmMPConstant对象相关联的mbCellGMReference对象;

与gmMPConstant对象相关联的mbFtrGMReference对象;

与所述gmMPConstant对象相关联的vspQualityProp对象;

与所述gmMPConstant对象相关联的 vspTransverseIsotroppy对象;以及与所述gmMPConstant对象相关联的fbFtrParameters对 象;

有选择地只为那些已经改变的单元更新模型,其中所述更新是根 据选自几何标准、拓扑标准和图形对象可视性的定义的标准而加以选 择。

39.如权利要求38所述的方法,其中所述IGM材料性质框架对 象还包括:gmGradientProp对象;

与所述gmGradProp对象相关联的vspDensProp对象;

与所述gmGradProp对象相关联的vspVelPProp对象;

与所述gmGradProp对象相关联的vspVelSProp对象;以及与所述gmGradProp对象相关联的gmResistivityProp对象。

40.如权利要求38所述的方法,其中所述IGM材料性质框架对 象还包括:与所述gmMPName对象具有组成关系的gmMPNamePropertyPolicy 对象。

41.如权利要求38所述的方法,其中所述IGM材料性质框架对 象还包括:与所述mbCellGMReference对象具有组成关联、并且与所述 mbFtrGMReference对象具有组成关系的gmMPIGMPropertyPolicy对 象。

42.如权利要求38所述的方法,其中所述GQI材料性质框架对 象还包括:gmutil_status对象;

mv_vt对象;以及

gm_mp_atoms对象。

43.如权利要求38所述的方法,其中所述GQI材料性质框架对 象还包括:与所述gmMPConstant对象相关联的gmSysRules对象;

与所述gmMPConstant对象相关联的gmSysPSPProperty对象;

与所述gmMPConstant对象相关联的gmUtilFtrBnd对象;

与所述gmMPPolicy对象相关联的gmMPGQIPolicy对象;

与所述gmMPPolicy对象相关联并且与所述gmSysPSPProperty对 象具有组成关系的gmSysPSPolicy对象;

与所述gmMPPolicy对象相关联并且与所述gmSysRules对象具有 组成关系的gmSysRulesPolicy对象;以及与所述gmMPPolicy对象相关联并且与所述gmMPConstant对象具 有组成关系的gmMPVolumePropertyPolicy对象。

44.如权利要求43所述的方法,其中所述GQI材料性质框架对 象还包括:与所述gmMPGQIPolicy对象相关联的gmUtilFtrBndPolicy对 象。

45.如权利要求43所述的方法,其中所述GQI材料性质框架对 象还包括:与所述gmMPPolicy对象具有组成关系的 gmMPTopologyTraversalStates对象。

46.如权利要求44所述的方法,其中gmMPIGMPropertyPolicy 对象与gmUtilFtrBndPolicy对象相关联。

47.如权利要求43所述的方法,其中gmMPNamePropertyPolicy 对象与所述gmMPVolumePropertyPolicy对象相关联。

48.如权利要求39所述的方法,其中gmMPVolumePropertyPolicy 对象与所述gmGradientProp对象具有第一组成关系并且与所述gmMPZ 对象具有第二组成关系。

49.如权利要求38所述的方法,其中所述计算机包括框架,所 述框架包括:与所述gmMP对象相关联的aqi_Parameter对象;

与所述gmMPPolicy对象相关联的gmMPTopologyTraversalState 对象;

与所述gmMP对象相关联的第一gqi_MetaProperty对象;

与所述gmMP对象相关联的第二gqi_MetaProperty对象;

与所述第一gqi_MetaProperty对象相关联的 gqi_AttachmentSite对象;以及与所述第二gqi_MetaProperty对象相关联并且与所述 gqi_AttachmentSite对象相关联的gqi_Core对象。

50.如权利要求49所述的方法,其中所述框架还包括:ag_BaseClass对象;

与所述ag_BaseClass对象相关联的ag_Geometry对象;

与所述ag_Geometry对象相关联的gm_Geometry对象,所述 gm_Geometry对象与所述几何对象具有关系;

与ag_Feature对象相关联的oi_Feature对象,所述ag_Feature 对象与所述ag_Geometry对象相关联,所述ag_Feature对象还与所 述gm_Feature对象相关联;

与ag_Cell对象具有关系的oi_Cell对象,所述ag_Cell对象与 所述ag_Cell对象相关联,所述ag_Cell对象还与gm_Cell对象相关 联;

与所述gm_Feature对象相关联的X_Feature对象,所述 X_Feature对象与xAttrFtr对象相关联,所述xAttrFtr对象与 gqi_Feature对象相关联,所述gqi_Feature对象与所述X_Feature 对象相关联;

X_Cell对象,所述X_Cell对象与X_Feature对象相关联,所述 X_Cell对象与第一xAttrMP对象相关联,所述第一xAttrMP对象与第 一gqi_MetaProperty对象相关联,所述第一gqi_MetaProperty对象 与FtrRef对象具有关联,所述FtrRef对象与gm_Feature对象具有 至少一个关联;以及所述X_Feature对象还与第二xAttrMP对象相关联,所述第二 xAttrMP对象与第二gqi_MetaProperty对象相关联,所述第二 gqi_MetaProperty对象与CellRef对象具有关联,所述CellRef对象 与所述gm_Cell对象具有至少一个关联。

51.如权利要求1所述的方法,其中在所述装载步骤中,来自在 数据存储系统中所存储的数据库的第一表面特征进入到所述计算机 的随机访问存储器中。

52.如权利要求1所述的方法,其中在所述装载步骤中,来自在 数据存储系统中所存储的数据库的第一表面特征进入到所述计算机 的非所述随机访问存储器的存储器中。

53.如权利要求1所述的方法,其中所述模型被存储在是计算机 硬盘的计算机可读媒体上。

说明书全文

发明的技术领域

本发明总的来说涉及计算机图形成象以及几何建模,更具体而 言,本发明涉及交互式地构造、编辑、绘制以及操纵地球科学模型。

相关技术背景

地质学家、地球物理学家以及石油工程师使用包括计算机化模型 在内的地壳模型,来计划勘探与生产碳氢化合物以及更少程度的其 他矿物。由于碳氢化合物变得越来越多稀少,所以对限制定位以及 生产碳氢化合物的成本以及诸如汽油和燃料油之类的碳氢化合物产 品的相关成本来说,计算机化模型的准确度变得日益重要。

对存储在计算机化模型中的地球物理学及地质数据的解释,依赖 于以能够辨别和编辑包含于模型中的信息的方式来显示模型的能 力,

交互式几何建模库(IGM)(参见Lu等人提出的第6,191,787号美 国专利)集成了几何引擎和图形引擎。这种集成提供了一种高级接 口,所述高级接口支持交互式的基于特征的3D地球科学几何模型的 构建、绘制及编辑。

场景图是一种由图形引擎对场景图的表示。高效的场景图构造和 维护会直接影响到交互式系统的性能。这篇专利申请描述了几种用 于构造和维护场景图的新技术,这些技术极大地增强了IGM的性能 并且为IGM增添了新的功能。

IGM使用的几何引擎是几何查询接口(GQI)(参见Assa等人提出 的第6,128,577号美国专利)。所述GQI是一个从XOX公司建立在称 为“Shapes”的几何核心顶上的层。所述图形引擎称为Open Inventor。所述IGM将这两个引擎进行集成,以实现交互式的基于 特性的几何建模。

所述GQI使用布尔运算、经由不规则空间的划分来构建几何模 型。作为结果得到的模型是边界表示(b-rep)模型。所述GQI提供了 地球科学应用的基于特性的建模,其中这些特征是对涉及几何组的 最终用户有意义的实体以及模型中的拓扑元素。

对于构造和维护用于构建地球科学模型的场景图来说,必须考虑 几个因素。该过程以及所生成的地球科学几何模型不同于传统的CAD 工业中的那些。下面列出了涉及本发明的这些差异中的一些。这些 差异影响用于绘制的场景图的构造和维护方式。

第一,经由其中将输入特性分割成片的不规则空间划分来构建模 型,而CAD工业一般使用经由布尔运算来组合输入特性的构造性立 体几何(Constructive Soild Geometry)。第二,地球科学几何模 型中的材料性质一般是空间改变的,而且以特征级相附连,而CAD 工业中模型的每个元素一般具有恒定的材料性质。第三,在地球科 学模型中,裂缝是正常的,但是在CAD模型中裂缝也许是一个缺陷。

类似于CAD工业中的用户需要,地球科学用户希望能够与输入 特征的身份进行交互并维护输入特征的身份,且希望能够指定新的 特征并与新的特征进行交互。

对于地球科学应用程序来说,一般需要以下两种视图。第一类型 是表面视图,用于绘制模型中的表面单元或者特征。第二类型是体 积视图,用于绘制所述模型中的体积单元或者特征。表面单元具有 其自身的身份。它还充当共用它的两个体积单元的边界单元。用户 可能还希望这两种类型组合。因此,对于同一几何模型来说存在不 止一种的图解表示。

最后,与地球科学应用相关的软件通常消耗相当大的计算机资 源,时常需要不易移动的大功率工作站。然而,在野外定位(field location)具有上述的能力将是合乎需要的。因此,在本领域中存 在将地球科学软件的效率提高到可以将其安装在标准的移动计算装 置上的需要,所述标准的移动计算装置诸如是膝上型计算机。

发明概要

依照本发明,通过以下方法可以解决与现有技术相关联的缺点和 问题,所述方法是通过一种新的场景图构造方法来减少内存需求 的,并且还提供了一种有限状态机,其用于处理图形对象(无论设置 为可视的还是不可视的、以及有效的或者无效的)与其对应的几何对 象之间的一致性,借此能够只对其几何结构或者拓扑结构已经改变 的、并由用户设置为可视的那些图形对象进行选择或者局部更新, 由此进一步增强了性能。

本发明包括一种用于交互式地编辑模型的方法,所述方法包括第 一表面方法,其在具有处理器、存储系统以及至少一个输入装置和 至少一个输出装置的可编程计算机上实现。优选地,将所述模型存 储在可编程计算机可读媒体上,或者可以存储在诸如磁带、硬盘、 CD-ROM等等的其他介质上。可利用存储系统操作的数据库以及处 理器均存储了各种能在一个或多个场景图上察看的对象的模型。

在本发明方法的最简单实施例中,将数据库中表示第一表面特征 的数据载入到本发明计算机系统的随机存取存储器或者系统存储器 中。为第一表面特征创建聚合(aggregate)特征。创建所述聚合特 征之后,根据所述聚合特征来创建第一图形对象。然后,将第一图 形对象添加到所述应用场景图中。此后,创建聚合特征的几何对象, 然后在所述模型中编辑第一表面特征。编辑所述表面特征之后,有 选择地更新所述模型的图形,以便使只有其几何对象已经改变并且 没有由用户设置为可视的那些图形对象是不被更新的,由此来节省 时间和资源。选择性更新是本发明的一个重要特征,而且也是本发 明与现有技术的区别,而不管那些对象是否是可视的和/或是否已经 改变。本发明仅更新模型中向用户所显示的那些图形。例如,如果 将所讨论的图形对象设置为对用户来说是不可视的,那么不立即更 新它们。一旦完成所述更新步骤,从所述应用场景图中移除第一图 形对象。

本发明还提供了一种接口,和一种利用所述接口操作的IGM,以 及利用所述IGM操作的GQI。所述接口用于选择一种要对第二表面特 征执行的操作,并且还将该接口开发为通知IGM用户已经作出的选 择。该操作一经发生,所述IGM就可以利用GQI来调用操作。此后, 在执行所述操作期间,执行来自于所述GQI的至少一次回调 (CallBack)以通知所述IGM,以便可以执行对模型的图形对象的 更新以刷新所述输出装置。

优选的是,所述编辑是通过不规则空间的划分来完成的,并且图 形对象的更新包括创建图形对象,或者,如果回调的执行引起了聚 合特征的状态变化,那么就将聚合特征状态变化记录在本发明的一 致性有限状态机中。所述一致性有限状态机管理几何结构以及图形 之间的一致性。所述一致性有限状态机有助于有选择性地(部分地) 更新呈现给所述用户的图形。

本发明的方法还包括一种回调方法,该方法包括使聚合特征的图 形对象无效。所述回调方法还可以执行使聚合特征的几何结构有 效,以便在无效图形以及有效几何结构之间可以进行区别。

本发明的回调方法包括提供一组有助于回调的对象,即第一几何 建模器特征对象。所述方法中还包括改变的几何对象,所述改变的 几何对象包含在几何模型或者特征对象中。还存在与改变的几何对 象相关联的第一元性质属性对象(first meta-property attribute)。此外,还提供了与元性质属性对象相关联的第一元性 质对象。所述第一元性质对象具有许多与它相关联的属性,主要为: 点集保存属性、点集保存属性策略对象、单元反向指针性质对象、 聚合反向指针性质策略对象、与单元反向指针对象相关联的几何单 元对象、与所述几何单元相关联的聚合单元对象以及与所述聚合单 元对象相关联的显示单元图形对象。此外,还包括与所述几何模型 特征对象相关联的第二元性质对象以及与第二元性质属性对象相关 联的第二元性质对象。第二元性质对象具有许多与所述第一元性质 对象相同的对象以及特征。换句话说,第二元性质对象具有点集保 存属性对象、点集保存属性策略对象、特征反向指针性质对象、第 二聚合反向指针属性策略对象、与所述特征反向指针属性对象相关 联的几何特征对象,与几何特征对象相关联的聚合特征对象以及与 所述聚合特征对象相关联的显示特征对象。

在一系列子步骤中执行回调。例如,如果回调针对体积对象,那 么执行针对体积特征的编辑,否则执行表面特征的编辑。在更新图 形的情况下,优选的是,仅对那些已经在几何结构上发生改变的单 元执行更新。作为选择,图形中的更新可以仅包括已经发生拓扑改 变的那些特征。然而,本发明的另一个实施例包括对已经拓扑地改 变或者几何地改变的那些特征的图形进行更新。最后,可以对既拓 扑地又几何地改变的那些特征进行更新。

在一系列的子步骤中执行对模型的聚合特征的图形创建。通常, 可以根据所述模型获取相关的表面特征,并且对于每个相关的表面 来说,如果所述表面特征具有图形对象,那么更新所述图形对象。 否则,首先创建图形对象,然后将更新的图形对象或是创建的图形 对象添加到表面场景图根节点。

本发明的操作

本发明可以作为一种用于交互式地编辑模型的方法来描述,所述 方法在计算机上实现,所述计算机包括处理器、数据存储器系统、 至少一个输入装置以及至少一个输出装置,包括但不限于计算机监 视器、存储装置或者打印输出。优选的是,将所述模型存储在计算 机可读媒体上。所述模型自身至少具有一第一表面,不过通常可以 建立许多表面的模型。

所述方法从数据库加载第一表面特征的数据开始,其中所述数据 库存储在数据存储器系统中。接下来,为所述第一表面特征创建聚 合特征。这样允许根据聚合特征来创建第一图形对象。此后,将所 述第一图形对象添加到应用场景图。接下来,为所述聚合特征创建 几何对象。然后随心所欲地编辑模型中的所述第一表面特征。一旦 编辑完成(例如,用户退出编辑模式,或者必需的时间周期期满), 就有选择地更新模型的图形。所述有选择性地更新使各种装置不必 重新计算以及显示所有的更新和改变。而是仅仅对影响用户体验的 那些更新进行更新。最后,将所述第一表面特征的第一图形对象从 应用场景图上移除。

编辑和更新

编辑自身的过程由几个步骤组成。首先,必须提供一个接口。接 下来,必须还提供利用所述接口操作的IGM。提供了利用IGM来操作 以便能够进行几何建模的GQI。这使用户能够通过所述接口来选择要 对第二表面特征执行的操作。将所述接口设计成能通知IGM用户的 选择。所述操作本身是利用GQI来调用的。在所述编辑过程期间, 在执行所述操作期间、有必要执行从GQI到IGM的至少一次回调。 所述回调用于更新模型的图形对象以便刷新输出装置。可以经由不 规则空间的划分来实现编辑,不过依照本发明也能够使用其它的编 辑技术。一旦完成编辑,就可以开始更新图形,这一般通过创建所 述图形对象来实现。本发明具有这样一种特殊特征,其中更新步骤 包括只对那些已经几何地和/或拓扑地改变了的单元更新图形。所述 更新步骤还可以包括参考可视性有限状态机。所述可视性有限状态 机有助于管理图形对象的更新操作,以及图形对象的可视性更新操 作。使用可视性有限状态机能够只更新那些被指定为(对用户来说) 可视的图形对象。所述可视性有限状态机可用于指定图形对象为可 视的,并且还可用于检查图形对象的有效性。如果所述图形对象是 有效的,那么可以将所述图形对象添加到场景图。否则,可以更新 图形对象、然后将其添加到场景图。

更新过程可以包含几个步骤。例如,更新过程可以包括检验场景 图中每个特征的状态。通常,如果特征的图形是有效的、或者如果 特征的几何结构是无效的,那么不更新所述特征的图形对象。然而, 如果特征的几何结构是有效的、而图形是无效的,那么更新所述特 征的图形对象。

更新过程的另一个方式可以包括检验场景图中每个单元的状 态。在这种情形下,如果所述单元的图形是有效的、或者如果该单 元的几何结构是无效的,那么不更新所述单元的图形对象。如果所 述单元的几何结构是有效的、而所述单元的图形是无效的,那么更 新所述单元的图形对象。

本发明的方法还可以涵盖如下的那些情况,即其中所述模型内不 包含第二表面特征,不过所述第二特征当然也可以包含在模型中。

创建图形

本发明的方法还涉及为各种实体创建图形,诸如聚合特征。通 常,此过程涉及获取模型中的所有相关的表面特征。对于每个相关 的表面特征来说,如果该表面特征具有图形对象,那么更新该图形 对象。否则,为所述表面特征创建图形对象。然后,将表面特征的 图形对象添加到表面场景图根节点。

除前段中略述的步骤之外,可以选择性地实现其他步骤,例如, 可以获取所述表面特征的所有二维单元的聚合对象。接下来,每个 单元的聚合对象可以被提示以获取至少一个有效的图形对象,并且 将该图形对象添加到表面特征的子场景图。一旦完成所述步骤,就 可以使表面特征的图形对象有效。

对于上面刚略述的方法来说,还可采用更多的步骤。例如,为单 元获取有效的图形对象的步骤可以包括检验以确定所述单元的图形 对象是否存在。如果所述图形对象不存在,就创建所述单元的图形 对象并使其有效。如果所述单元的图形对象存在但不是有效的,则 更新所述单元的图形对象并使其有效。

作为选择,用于创建图形的本发明的方法还可以包括:根据所述 模型为至少一个体积单元创建图形。这种可选的方法包括:获取模 型中至少一个相关的有效体积单元。一旦获取,可以执行检验以确 保每个体积单元的所有二维单元的图形对象都已创建。然后,对于 每个二维单元,可以获取聚合。如果二维单元聚合不存在,则可以 创建新的聚合。然后,检验每个二维单元以确保它具有有效的图形。 此后,可以为每个体积单元创建图形对象。然后,对于每个体积单 元来说,在没有彩色材料的情况下,优选的是,将所述体积单元的 每个二维单元的图形内容添加到所述体积单元的图形对象的子场景 图。最后,为每个体积单元、将图形对象添加到体积场景图根节点。 在没有彩色材料的情况下,优选的是,将图形地表示二维单元的图 形内容的实例化由至少一个包含把二维单元作为孩子的表面特征的 图形对象、以及包含把二维单元作为其部分边界的一个体积单元或 者两个体积单元的图形对象的至少一个场景图所共用。

回调

本发明在对象框架内广泛应用回调。例如,回调可以引起聚合特 征的状态变化。优选的是,所述聚合特征是一致性有限状态机,以 便有效地方便利用所述回调。此外优选的是,所述一致性有限状态 机管理几何结构和图形之间的一致性。回调还可以用于使聚合特征 的图形对象无效,以及用于使聚合特征的几何结构有效。例如,如 果所述回调针对体积对象,那么特定的回调用于所述体积特征。否 则,为表面特征执行编辑回调。

依照本发明的回调能够以各种配置和环境来形成。例如,用于体 积特征的编辑回调包括:利用几何建模器接口注册元性质分割回调 类方法。所述几何建模器接口要在发生体积分割情况时被调用。此 后,将第一元性质属性附加到由体积特征包含的至少一个体积对 象。然后,从几何建模器接口接收回调,其指定第一体积对象、受 第一体积对象的变化影响的第二体积以及第一元性质属性。然后, 从第一元性质属性来获取指针值,第一元性质属性而后允许反引用 指针值来定位第一元性质对象。利用第一元性质属性、第一体积对 象和第二体积对象在第一元性质对象中调用分割回调。此最后一步 本身包含获取第一点集保存性质实例和来自所述性质实例的点集保 存策略实例,以及利用点集保存性质实例、第一体积对象和第二体 积对象启动对点集保存策略实例的第一分割回调。这最后的子步骤 本身包括:获取第一体积对象的至少一个包含特征,以及利用所述 包含特征和第二体积对象在所述几何建模器接口上启动特征添加孩 子更新。然后,获取单元反向指针性质实例,以便可以从所述单元 反向指针性质实例获取聚合反向指针性质策略实例,因此使用所述 单元反向指针性质实例启动针对聚合反向指针性质策略实例的第二 分割回调。后者的回调本身包括:从所述单元反向指针性质实例获 取体积几何单元对象,并且启动对体积几何单元对象的单元分割调 用。后者的子步骤可以包含:启动对体积几何单元对象的体积单元 聚合主顾(aggregate patron)的调用,以便使第一体积的所述图 形无效。

为体积特征而执行特征添加孩子回调包括利用所述几何建模器 接口注册所述元性质添加孩子回调类方法,所述几何建模器接口要 在发生特征添加孩子事件时加以调用。另外,这还可以包括将第二 元性质属性实例附加到所述体积特征;并且接收来自于所述几何建 模器接口的添加孩子回调,所述添加孩子回调指定体积特征、体积 对象以及第二元性质属性。然后,获取来自于第二元性质属性的指 针值,然后反引用所述指针值来定位第二元性质对象。在第二元性 质对象中调用添加孩子回调。后者的步骤包括:获取第二点集保存 性质实例;从第二点集保存性质实例来获取第二点集保存性质策略 实例;并且利用体积特征以及体积几何对象来启动第二点集策略对 象的添加孩子回调方法。后者的子步骤本身包括:将所述点集保存 性质附加到所述体积单元;获取特征反向指针性质实例;从特征反 向指针性质实例来获取第二聚合反向指针性质策略实例;以及利用 体积特征、体积几何对象以及体积特征反向指针性质来启动第二聚 合反向指针性质策略实例的添加孩子回调方法。后者的子步骤本身 包括:启动对所述特征反向指针性质实例标识的体积特征几何对象 的添加孩子通知方法调用。后者的子步骤本身包括:启动对体积特 征对象的体积特征聚合主顾的调用,以便使体积特征对象的几何结 构有效;并且启动对体积特征对象的体积特征聚合主顾的调用,以 便使体积特征对象的图形无效。

本发明的方法的又一个方面涉及为表面特征执行编辑回调。所述 方法的此方面包括:利用所述几何建模器接口注册元性质分割回调 类方法,所述几何建模器接口要在发生表面分割事件时被调用;将 第一元性质属性附加到由所述表面特征包含的至少一个表面对象 上;从几何建模器接口接收用于指定第一表面对象、受第一表面对 象的改变影响的第二表面以及第一元性质属性的回调;从第一元性 质属性获取指针值并且反引用所述指针值以定位第一元性质对象; 利用第一元性质属性、第一表面对象和第二表面对象在第一元性质 对象中调用分割回调。后者的步骤本身包括:获取第一点集保存性 质实例;从所述性质实例来获取第一点集保存策略实例;利用点集 保存性质实例、第一表面对象以及第二表面对象,启动对所述点集 保存策略实例的第一分割回调。后者的子步骤本身包括:获取第一 表面对象的至少一个包含特征;并且利用所述包含特征以及第二表 面对象在所述几何建模器接口上来启动特征添加孩子更新;获取单 元反向指针性质实例;从所述单元反向指针性质实例来获取聚合反 向指针性质策略实例;以及利用单元反向指针性质实例来启动对聚 合反向指针性质策略实例的第二分割回调。后者的子步骤本身包 括:从单元反向指针性质实例来获取表面几何单元对象;以及启动 对表面几何单元对象的单元分割调用。此后者的子步骤包括:启动 对表面几何单元对象的表面单元聚合主顾的调用,以便使第一表面 的图形无效。

执行特征添加回调的步骤(前段中所提到的)本身包括:利用几 何建模器接口注册元性质添加孩子回调类方法,所述几何建模器接 口要在发生特征添加孩子事件时被调用;将第二元性质属性实例附 加到表面特征;从几何建模器接口接收用于指定表面特征、表面对 象以及第二元性质属性的添加孩子回调;从第二元性质属性来获取 指针值并且反引用所述指针值来定位第二元性质对象;以及在第二 元性质属性对象中调用添加孩子回调。此后者的子步骤本身包括: 获取第二点集保存性质实例;从第二点集保存性质实例来获取第二 点集保存性质策略实例;以及利用表面特征和表面几何对象来启动 对第二点集策略对象的添加孩子回调方法。此后者的子步骤本身包 括:将点集保存性质附加到表面单元;获取特征反向指针性质实例; 从特征反向指针性质实例来获取第二聚合反向指针性质策略实例; 并且利用表面特征、表面几何对象以及表面特征反向指针性质来启 动对第二聚合反向指针性质策略实例的添加孩子回调方法。此后者 的子步骤本身包括:启动对表面特征几何对象的添加孩子通知调 用,所述表面特征几何对象是由特征反向指针性质实例标识的。此 后者的子步骤本身包括:启动对表面特征对象的表面特征聚合主顾 的调用,以便使表面特征对象的几何结构有效;并且启动对表面特 征对象的表面特征聚合主顾的调用,以便使表面特征对象的图形无 效。

回调可以对本发明的不同对象产生许多影响。例如,执行所述回 调可以引起单元的状态改变。可以将所述单元的状态变化记录在一 致性有限状态机中。

本发明的方法的另一个方面是为体积特征执行编辑回调。本发明 方法的此方面包括:利用几何建模器接口来注册元性质合并回调类 方法,所述几何建模器接口要在发生体积合并事件时被调用;将第 一元性质属性附加到由体积特征包含的至少一个体积对象上;从几 何建模器接口接收用于指定第一体积对象、第二体积对象、原先划 界第一和第二体积对象并且已经从所述模型中移除的表面对象、以 及元性质属性;根据几何建模属性来获取指针值并且反引用所述指 针值来定位第一元性质对象;以及在第一元性质对象中调用合并回 调。后者的子步骤本身包括:获取第一点集保存性质实例;从所述 性质实例来获取第一点集保存策略实例;以及利用点集保存性质实 例、第一体积对象、第二体积对象以及表面对象启动对点集保存策 略实例的第一合并回调。此后者的子步骤本身包括:获取第一体积 对象的至少一个包含特征;以及利用所述包含特征以及第二体积对 象在对几何建模器接口上来启动特征移除孩子更新;获取单元反向 指针性质策略实例;从单元反向指针性质实例来获取聚合反向指针 性质策略实例;并且利用单元反向指针性质实例、第一体积对象、 第二体积对象以及表面对象,来启动对聚合反向指针性质策略实例 的第二合并回调。后者的子步骤本身包括:从单元反向指针性质实 例来获取体积几何单元对象;并且启动对体积几何单元对象的单元 合并调用。此后者的子步骤本身包括:启动对体积几何单元对象的 体积单元聚合主顾的调用,以便使第一体积的图形无效。

用于对体积特征执行编辑回调的方法本身选择性地具有孩子编 辑回调的移除。该子方法包括:利用几何建模器接口注册元性质移 除孩子回调类方法,所述几何建模器接口要在发生特征移除孩子事 件时被调用;将第二元性质属性实例附加到体积特征上;从几何建 模器接口接收指定了体积特征、体积对象以及第二元性质属性的移 除孩子回调;根据第二元性质属性来获取指针值并且反引用所述指 针值来定位第二元性质对象;并且在第二元性质对象中调用移除孩 子回调。后者的子步骤包括:获取第二点集保存性质实例;从第二 点集保存性质实例来获取第二点集保存性质策略实例;利用体积特 征和体积几何对象来启动对第二点集策略对象的移除孩子回调方 法。后者的子步骤包括:从体积单元移除点集保存性质;获取特征 反向指针性质实例;从特征反向指针性质实例来获取第二聚合反向 指针性质策略实例;并且利用体积特征、体积几何对象以及体积特 征反向指针性质,来启动对第二聚合反向指针性质策略实例的移除 孩子回调方法。后者的子步骤包括:启动对由特征反向指针性质实 例标识的体积特征几何对象的移除孩子通知调用。此后者的子步骤 包括:启动对体积特征对象的体积特征聚合主顾的调用,以便使体 积特征对象的几何结构有效;以及启动对体积特征对象的体积特征 聚合主顾的调用,以便使体积特征对象的图形无效。

执行对表面体积的编辑回调与为体积特征执行编辑回调方法(上 面描述的)相似。具体来讲,为表面特征执行编辑回调的步骤包括: 利用几何建模器接口注册元性质合并回调类方法,所述几何建模器 接口要在发生表面合并事件时被调用;将第一元性质属性附加到由 表面特征包含的至少一个表面对象上;从几何建模器接口接收用于 指定第一表面对象、第二表面对象以及曲线对象的回调,其中所述 曲线对象原先划界第一和第二表面并且已经被从所述模型以及元性 质属性中移除;根据几何模型属性获取指针值并且反引用所述指针 值来定位第一元性质对象;并且在第一元性质对象中调用合并回 调。后者的子步骤包括:获取第一点集保存性质实例;从所述性质 实例来获取第一点集保存策略实例;以及利用点集保存性质实例、 第一表面对象、第二表面对象以及曲线对象来启动对点集保存策略 实例的第一合并回调。后者的子步骤包括:获取第一表面对象的至 少一个包含特征;以及利用所述包含特征以及第二体积对象在几何 建模器接口上来启动特征移除孩子更新;获取单元反向指针性质实 例;从单元反向指针性质实例来获取聚合反向指针性质策略实例; 并且利用单元反向指针性质实例、第一表面对象、第二表面对象以 及曲线对象,来启动对聚合反向指针性质策略实例的第二合并回 调。后者的子步骤包括:从单元反向指针性质实例来获取表面几何 单元对象;以及启动对表面几何单元对象的单元合并调用。后者的 子步骤本身包括:启动对表面几何单元对象的表面单元聚合主顾的 调用,以便使第一表面的图形无效。

最后,执行表面特征的特征移除回调的步骤包括:利用几何建模 器接口注册元性质移除孩子回调类方法,所述几何建模器接口要在 发生特征移除孩子事件时被调用;将第二元性质属性实例附加到表 面特征;从几何建模器接口接收用于指定表面特征、表面对象以及 第二元性质属性的移除孩子回调;根据第二元性质属性来获取指针 值并且反引用所述指针值来定位第二元性质对象;并且在具有第二 元性质属性的第二元性质属性对象、表面特征以及表面几何对象中 调用移除孩子回调。后者的子步骤包括:获取第二点集保存性质实 例;从第二点集保存性质实例来获取第二点集保存性质策略实例; 以及利用表面特征和表面几何对象启动第二点集策略对象的移除孩 子回调方法。后者的子步本身包括:将点集保存性质从表面单元移 除;获取特征反向指针性质实例;从特征反向指针性质实例来获取 第二聚合反向指针性质策略实例;并且利用表面特征、表面几何对 象以及表面特征反向指针性质来启动第二聚合反向指针性质策略实 例的移除孩子回调方法。后者的子步骤包括:启动对由特征反向指 针性质实例标识的表面特征几何对象的移除孩子通知调用。后者的 子步骤本身包括:启动表面特征对象的表面特征聚合主顾的调用, 以便使表面特征对象的几何结构有效;并且启动表面特征对象的表 面特征聚合主顾的调用,以便使表面特征对象的图形无效。

能够以多种方式执行回调。然而,通常是以一个或多个对象集来 实现所述回调的。一般来讲,该对象集包括几何建模器特征对象; 在该几何建模器特征对象中包含的改变了的几何对象;可操作地与 改变了的几何对象相关联的第一元性质属性对象;与第一元性质属 性相关联的第一元性质对象;与几何模型特征对象相关联的第二元 性质属性对象;以及与第二元性质属性对象相关联的第二元性质对 象。

所述第一元性质对象本身具有对象集,比如点集保存性质对象; 点集保存性质策略对象;单元反向指针性质对象;聚合反向指针性 质策略对象;与单元反向指针对象相关联的几何单元对象;与几何 单元对象相关联的聚合单元对象;以及与聚合单元对象相关联的显 示单元图形对象。

第二元性质属性对象本身具有对象集,包括:第二点集保存性质 对象;第二点集保存性质策略对象;特征反向指针性质对象;第二 聚合反向指针性质策略对象;与特征反向指针性质对象相关联的几 何特征对象;与几何特征对象相关联的聚合特征对象;以及与聚合 特征对象相关联的显示特征图形对象。

附图简述

为了更彻底的理解本发明及其优点,现在将结合附图进行以下的 描述,其中:

图1和7是框图。

图2、5a和5b是将要建模的项的表示。

图3,4a和4b是建模过程中各阶段的表示。

图5c是几何模型的表示。

图6是图形模型的表示。

图8-14是表示对象关系的图。

图15是状态图。

图16是举例说明本发明的两个体积以及表面单元和它们的各个 节点表示。

图17将举例说明具有共同表面的本发明的两个体积以及表面单 元以及它们的各个节点表示。

图18a以及18b是举例说明表面和体积特征与本发明的节点表 示之间的通信的框图。

图19是本发明的状态图。

图20是本发明的主框架的框图。

图21是举例说明本发明的各种对象的关系的框图。

图22是举例说明本发明的各种对象关系的框图。

图23是举例说明本发明的各种对象关系的框图。

图24是举例说明本发明的各种对象关系的框图。

图25是举例说明本发明的各种对象关系的框图。

图26是举例说明本发明的各种对象关系的框图。

图27-40举例说明了本发明的各种方法。

发明的详细说明

几何模型的构建和编辑很大程度上是需要足够图形支持的一种 交互式过程。给定交互式计算机制图的复杂性,理想情况是:使用 诸如OPEN INVENTOR、面向对象的图形库之类的高级开发工具来编 写应用程序。

Schlumberger有限公司的GEOFRAME产品,即一种用于执行地 球科学建模的应用程序,包括称为GEOMETRY QUERY INTERFACE (“GQI”)的几何建模部件,该部件用于提供应用编程接口(“API”) 来构建和编辑立体3D几何建模。立体3D几何模型包含模型中包含 的各种几何元素之间的关系。所述GQI的几何建模功能的一部分是 由商业的几何引擎提供的,诸如由XOX公司的SHAPES包提供。

图形系统如此显示图形信息以便可以使诸如几何模型中包含的 那些复杂的关系可视化。所述SHAPES包包括基于OpenGL的图形系 统。然而,由于性能的原因,使图形交互和几何处理分开是十分重 要的。此外,事实上所有的地球科学应用程序都需要可视化或者交 互式图形,而不是所有的地球科学应用程序都需要几何建模。因此, 本发明简化了开发过程,以便运用一种普遍适用的图形系统来编写 应用程序,并且只在需要的地方添加几何引擎。

当设计一种既包括图形又包括几何系统的应用程序时,设计问题 不仅在于如何绘制几何模型并可视地与之交互,而且还在于如何使 几何引擎与图形引擎平滑地合作。在OPEN INVENTOR和GQI/SHAPES 的情况下,两个引擎都是自含的并且管理他们自己的对象和对那些 对象的操作。对于等效的对象来说,所述两个引擎使用不同的内部 表示来描述它们的几何结构、拓扑关系以及物理性能。这导致了两 个引擎对同一对象的操作的不一致性。两个引擎的集成要求添加一 些机构来跟踪那些不一致并且协调那些不一致。

一种这样的设计、诸如交互式几何建模库(“IGM”)10集成了高 级图形系统(“图形系统”)12以及高级几何建模包(“几何系统”)14, 向应用程序16提供两个子系统的一致性视图,如图1中所示。所述 IGM提供了一种用于集成图形系统和几何系统以便允许交互地构 造、编辑以及可视化地球科学模型的体系结构。

除传统的CAD包满足的那些需求之外,地球科学应用程序具有 特定的几何建模需求。地下结构通常形成“层式蛋糕”20,其中具 有诸如水平线22a、22b、22c,水平线24a、24b,以及水平线26 和28的“水平线”,诸如分段的层30a、30b,分段的层32a、32b, 分段的层34a、34b的独立层,以及层36和38,如图2中所示。往 往将层式蛋糕分解为“断层块”,诸如断层块30a、30b、32a、32b、 34a、34b,所述断层块由诸如断层40和42的“断层”分界。就几 何建模而言,这意味着所使用的几何引擎必须支持非流形几何结构 (non-manifold geometries)的表示和计算,所述非流形几何 结构也就是具有混合维数的几何结构(即3D断层块和2D断层块)。

水平线形成各层的边界;断层区分并且偏移各层的块。即使将各 层和水平线例如象分割层32a、32b与层34a、34b的水平线22a、 22b、22c那样被分裂并且在空间被分开,那么逻辑上它们也被认为 是单个对象。

兴趣区域50可以通过插入表面52a、52b被再分,以便产生层 式蛋糕54,如图3中所示。首先,所述再分仅出现在屏幕上。一旦 所述应用程序满足于表面位置,它“提交”56,计算相交,并且在 组装中的所有对象之间建立连接关系,以便产生层式蛋糕58并将这 些层绘制在屏幕上以提供屏幕视图59。

构建地下结构的几何建模或者地球模型在很大程度上是一种迭 代过程,其中当新的地下数据变成有效时细化模型。在图3中,使 下部表面52b变形以产生水平线71,这样将其上方的层60的几何结 构改变为楔形或者“变薄”。此外,应用程序得以满足之后,它提交 62,令所述改变反映在几何模型64中并且显示在屏幕66上。特别 是,所述IGM合并两个层70和72以产生层74,在所述过程中移除 了水平线76。为了适应这种变化,对模型编辑的充分支持与便于从 头开始构建模型一样重要。

地球模型可以是大型的并且可以包含几十到几百个表面,在棋盘 格状的表面的情况下,所述表面均由几万到几十万的三角形表示。 所述IGM必须很好地执行庞大的数据集。虽然它也许是可接受的、 乃至是需要的,但是对于一些以批处理来运行的应用程序来说,必 须能够与地球模型交互式地工作。这包括察看模型以及编辑其对象 以及它们的属性。

不同的应用程序必须能够共用所述地球模型。这意味着持久的存 储器必须包括组成模型的所有形状、拓扑关系以及属性。

大多数的商业几何建模系统使用边界表示法,并且从体系结构上 区分形状、拓扑的表示以及诸如材料性质之类的属性。一些系统能 够表示非流形几何结构,例如具有嵌入式表面的3D对象或者具有嵌 入式曲线的2D对象。在这种对象中,边界在相邻部件之间共用,例 如,断层42由断层块30b、32a以及32b共用,如图2中所示。

传统的计算机辅助设计(“CAD”)应用程序,通过组合诸如块以 及圆柱之类的基本3D砌块来构建了复杂的3D几何结构。将这称为 构造性立体几何(CSG)模型。例如,如图4a中所示,将子体积80a-d 从最初的形状82中减去。此外,将子体积84a-c减掉以产生最后形 状86。CSG建模不适合用来构建这样一种地球模型,即其中诸如地 层的3D对象的形状必须根据对它们分界的2D对象来推断,所述2D 对象比如是水平线和断层面之类的对象。

不规则的空间分区(“ISP”)提供了用于构建地球模型的能力, 因为它按照再分和插入的顺序来操作,如图4b中所示。兴趣区域90 由表面92a和92b进行再分以产生层式蛋糕94。将表示盐穹的子体 积96插入层式蛋糕94中,并且编辑对象之间的边界形状以产生最 后的模型98。

此外,ISP模型可以平滑地表示材料性能场的改变,其可以包含 沿不同的边界发生的内部的不连续性。不连续边界的位置组成模型 的形状和结构。不连续边界的形状被明确地表示出来。这些边界可 以位于无限空间中的任何地方,具有任意的形状并且彼此相交以便 将空间划分为不同子区域集。

通过定义“兴趣区域”以及用更低维数的对象来再分它,以构建 ISP模型,例如,通过地层的边界将地下区域再分成层。除再分区域 之外,可以将其它区域嵌入它们。ISP建模的GQI实现支持特征概 念,所述特征概念能够将区域的聚合视为统一的对象。

几何引擎为形状提供了各种表示,包括分析、参数曲线以及表面 表示。在地球科学中,将三角网广泛的用于表面表示。

模型中的拓扑关系以图的形式来表示,其中节点是拓扑实体,诸 如顶点、曲线、表面以及体积,并且其中边是连通性关系。这被称 作边界表示或者“b-rep”。CSG和ISP建模都可以生成b-reps。

例如,图5a示出了由具有共用边界106的两个相邻矩形102、 104组成的对象100。图5b中所示的对象100的分解图版本显示出 它包括两个面108、110,七个边106、112、114、116、118、120 和122以及六个顶点124,126,128,130,132和134。这些几何元素 之间的拓扑关系在图5C中作了举例说明,图5C包括圆圈136和 138,分别表示面108和110。面108与四个边120、122、112和 106相连,并且以这四个边为界,这四个边分别由圆圈140,142,144 和146表示。所述“以......为界”的关系由线150,152,154和156 表示。表面110与四个边缘114、116、118和106相连,并以这四 个边缘为界,所述四个边缘分别由圆圈158、160、162和146表示。 所述“以......为界”的关系由线164、166、168和170表示。

属性通常与拓扑实体相关联。例如,所述矩形的色彩属性172 和174可以分别与它们相应的面136和138相关联。

几何建模系统支持综合的几何操作集。这些包括曲线/曲线、平 面/平面和平面/曲线相交以及诸如立体对象的并、减以及交的布尔 运算。对立体对象的布尔运算也称为(拓扑)分类。对非流形对象的 支持暗指一些分类、即再分操作产生组成式而不是“整体 (monolithic)”式对象。例如,考虑由图3中的两个表面52a和 52b对兴趣区域50的再分。除表面52a和52b之外,结果形成的模 型包含替换所述初始块的三个层180,182和184。

许多几何计算运行在“交互时间”,也就是说,它们以少于几秒 的时间完成。然而,涉及数量级大约50万的三角形组成的网格的布 尔运算可能花费分钟数量级。

单个对象的变换是飞快的;转换同一对象,如果它形成一件较庞 大的组装,那么因为需要再分类而要花费更多的时间。

GQI/SHAPES实现了用于支持非流形对象的表示和计算的几何建 模系统。GQI/SHAPES提供了具有封装的抽象数据类型的C语言API。 通过SHAPES属性机制来给出可扩展性,所述SHAPES属性机制允许 应用程序利用属性来注册回调。作为分类算法触发的回调改变了它 们关联对象的状态。GQI/SHAPES为永久性存储器定义了专有的文件 格式。

高级3D图形系统是这样一个库,其中封装形状和属性表示,绘 制方法并且交互方法。商业产品包括OPEN INVENTOR、IRIS PERFORMER、HOOPS、RENDERWARE、COSMO 3D及其他。所述模型使 用OPEN INVENTOR,一种可扩展的、面向对象的3D图形库。应用程 序使用OPEN INVENTOR调用来创建3D对象并且以有向无环图(DAG) 来安排它们,所述有向无环图就是所谓的场景图。

例如,具有在图5a中举例说明的共用边的两个矩形可以由图6 中所示的场景图(“场景图在此写为一个单词“scenegraph”)来表 示。所述场景图中的遍历顺序是从上到下、从左到右。组节点190 是遍历的开始。下一个节点192建立材料性质,即色彩(灰色40)。 节点194建立图像的开始坐标,节点196建立“IndexedFaceSet”, 即左侧矩形的顶点标志。节点198将彩色材料性质的值改变为灰色 20,节点200建立右侧的三角形的“IndexedFaceSet”。当遍历此场 景图时,将图5a中所示图像显示在屏幕上。

特定的类集、即所调用的动作,允许应用程序创建遍历场景图并 且对其节点执行操作的对象。例如,存在绘制动作来显示场景图中 的对象,存在搜索动作来寻找场景图中的对象等等。场景图的角色 在于定义遍历顺序。在任何操作必须维护一种状态的地方使用动 作,所述状态不存储在对象中而是在遍历期间执行的操作的副作 用。例如,图6中的场景图包含与两个IndexedFaceSets共用其坐 标的一个坐标节点194。在遍历期间,维护“当前坐标”数组。每个 IndexedFaceSet表示一个矩形并且包含其角坐标的标志。类似于坐 标,直到由新材料节点覆盖前,材料值都保持有效。因此,在图6 中,按比第二矩形更暗的灰色阴影来绘制第一矩形。

另一个称为传感器的类集可用于监视节点以及场景图的子图。应 用程序可以将回调与传感器关联,每当“所感测的”对象状态改变 时触发所述传感器。

Open Inventor对象包括诸如框、球体以及圆柱之类的固有的 (implicit)形状,以及包括诸如NURBS曲线和曲面以及三角网的 带参数的形状。虽然能够创建并且显示这些形状,但是除了坐标变 换以及射线对象交集(ray-object),没有对于几何计算的支持。这 些操作通常快速地运行,并且如果需要重绘制,则受绘制时间的支 配。只要可达到的帧速率支持,就能够进行交互式工作。例如,如 果可以在0.1秒内绘制一场景图,那么就可以将对象以每秒10帧的 速度在该场景图周围移动。

存在几个由几何以及图形子系统的IGM集成满足的重要的必要 条件。第一,所述IGM提供一致的、用于交互式地构造、绘制、编 辑以及操纵3D对象的面向对象的接口。第二,所述IGM就开销而言 是轻量的。每个子系统本身是复杂的,而集成使额外的开销最小化, 并且不会使性能恶化。第三,所述接口是可定制的并且是可扩展的。

此外,在上述几何以及图形系统的概述中存在由IGM致力于解 决的三个主要争问题。它们在任一的系统的几何对象表示中是失配 的,在对象属性的表示中是失配的,而且在处理速度方面存在差异。

几何系统中的对象表示与图形系统中的不匹配。虽然几何系统中 的对象明确地通过拓扑图相连,如图5c所示,但是在场景图中仅仅 指令了图形对象,如图6所示。

此外,在地球模型中,许多表面作为相邻对象之间的边界被共 用,并且因此在几何系统中可作两种角色用。第一,它们是凭本身 的资格用于通过在空间再分一些区域来构建地球模型的对象。第 二,它们是岩层的分界接口,并且照此它们是层对象的一部分。在 所述图形系统中,当绘制地球模型时,可以将其作为一表面集、作 为层集或者作为两种的混合来绘制。当绘制层集时,为了良好的性 能,只将共用的表面绘制一次。

因此,在几何对象和图形对象之间不存在一对一的关系。更确切 地说,所述图形对象必须是几何对象的瞬态表示,当必须维护两个 对象数据的表示时,这会潜在地引发数据复制。此外,数据复制需 要数据一致性控制以便确保当对象的一个表示改变时,其另一个表 示也一起被更新。将几何系统中的属性直接地与对象或者对象件 (pieces)相关联,诸如图5c中的色彩属性172和174。图形系统 中的属性没有明确地与几何对象相关联。而是,在场景图中存在“自 治的”对象,诸如图6中的节点192和198,它们用于影响绘制状态 并且由此间接地控制绘制的形状的外观。

所述IGM支持具有复杂的几何模型的交互式工作。能够监视用 户对对象图形表示所作的改变在希望时要求用户向几何表示“提 交”任何的改变。考虑图3中的例子。为再分具有表面52a和52b 的兴趣区域50,所述表面必须首先被正确地定位。这可以通过仅操 纵表面几何结构的图形表示交互式地执行。在这个阶段中,几何模 型与屏幕上可视的几何模型不一致。接下来,执行分类以便将所述 表面并入几何模型中。在这个过程之后,所述过程也许会花费一些 时间,所述几何模型58与屏幕54上的绘制再一次一致。

所述图形系统及几何系统都是可扩展的系统。在集成两个系统中 的初步设计选择可以是察看作为主要系统的一个系统并且通过在另 一个系统中得到的功能扩展它,还是在两个子系统之上创建集成 层。所述模型使用后一种方法。利用集成所述图形系统和几何系统 的集成层,必要时任一的子系统可以被替换,在图形和几何操作之 间存在明确的区分,并且能够进行这样一种分布式实现,其中每个 子系统在不同的主机上运行。

所述集成层以C++实现。下一个设计选择是使用多继承还是对象 聚合。利用多继承,孙子继承孩子的父母,而不访问任何他们的其 它后代。人们曾想建立一种“堂兄弟”关系模型,其中在一个层级 中的后代与其它层级中的后代相关联,因此多继承是不合适的。

此外,所述优选实施例并没有完全地封装所述子系统,而是将它 们呈现给应用程序。这样做可以使开销最小化,这是因为它剩下了 专用于它们各个子系统的操作的可访问对象,同时允许应用程序只 管理在所述集成层中定义的对象。数据一致性控制有助于避免子系 统间不一致性的因果创建。

所述模型在集成层的设计中使用了“对象聚合”。“聚合对象 (AggregateObject)”210封装对象的几何对象(GeometryObject) 表示212和图形对象(GraphicsObject)表示214的公共方面,如 图7所示。线220和222表示一对多关系,由在一端上具有箭头的 线表示,同时具有“一”的关系位于具有箭头的那端。例如,线222 表示单个应用程序228管理多个AggregateObject,其中一个 AggregateObject是AggregateObject 210(其它的没有示出)。线 216、218表示一对一关系。在所示例子中,AggregateObject 210 具有一个GraphicsObject 214及一个GeometryObject 212。所述 GraphicsObject类可以包括同一GeometryObject的多个图形视图 227和229。

在图7上所示的“IgmAction”类224封装需要用于遍历拓扑图 以及生成合适的图形表示、或者用于遍历去掉了过时的 GraphicsObject的场景图或者生成GeometryObject的方法。

GeometryObject类层级提供用于几何子系统中的 GeometryObject的C++封装函数,如图8所示。在树的顶端处, IgmObject 230是GeometryObject基本类。所述gmGeometry类232 (图中所示变量名中的下划线、诸如图8中的“gm”和“Geometry” 之间的那个在规范的文本部分省去)是IgmObject的子类,子类由具 有箭头-头部的线表示,诸如线234。所述gmGeometry类具有两个 子类,即用于特征的gmFeature 236以及用于单元的gmCell 238, 所述子分类由线240表示。所述gmFeature类以及gmCell类分别存 储特征和单元的GQI处理。所述gmFeature类具有许多子类,包括 用于平面的gmPlane 242、用于框的gmBox 244、用于web的gmweb 246、用于ISP的gmISP 248及其他250,所述子分类由线252表示。

所述GraphicsObject类层级描述可以在屏幕上加以绘制的对 象,如图9所示。所述GraphicsObject类负责绘制GeometryObject 以及处理图形交互。在GeometryObject树的顶端是OPEN INVENTOR 的SoWrapperKit 254,其提供了一个机制来构建和管理场景子图。 通常,那些子图包含属性和形状节点。由此,SoWrapperKits关联 属性和形状,提供简单的方式来处理图形和几何子系统之间的属性 表示失配。oiBaseKit 256是SoWrapperKit的子类,由线258表示。 所述oiBasekit具有许多子类,包括oiFeature类260、oiCell类 262以及oinongmBasekit类264,利用线266表示所述子分类。所 述oiFeature类具有许多子类,包括oiBox类268、oiweb类270、 oiISP类272及其它类274,所述子分类由线276表示。此外,用于 绘制不是几何模部分的对象的oinongmBaseKit具有许多子类278, 所述子分类由线280表示。

除了那些不是几何模型部分的图形对象之外,图形对象包含表示 它们相应的GeometryObject的当前绘制的场景图,诸如图6中所 示。例如,ISP模型的GraphicsObject可以包含以表示其构成特征 的GraphicsObject填充的场景图。应用程序将GraphicsObject添 加到他们自己的场景图,以便绘制所期望的几何模型部分。通常, 所述应用程序将新的未分类对象的GraphicsObject添加到场景图 中。分类之后,所述新对象变成复合对象部分,并且将其“独立于 操作系统”的表示从场景图上移除。将ISP模型的所述 GraphicsObject添加到场景图或者当其已被添加时进行更新。

经由用户交互对GraphicsObject做出的改变可以由Open Inventor传感器来监控。传感器可以触发回调,用于通知变化的 AggregateObject。用户经由IGM交互器(interactor)与 GraphicsObject进行交互。只将所述改变图示,直到用户满意,并 且所述应用程序通知AggregateObject更新所述GraphicsObject 并且将所述改变传送到GeometryObject。

GraphicsObject不需要具体化为GeometryObject,不过需要 时将其专业化也是可能的。多数情况下,泛型的GraphicsObject足 以封装所需要的功能。例外包括存在纯粹的图解表示法的对象,也 就是没有根据GeometryObject来构造,例如已经将它们分类前根据 突出的(extruded)曲线来构建表面;以及需要特定交互作用的对 象,诸如web表面,其需要特定交互作用来编辑或者变形。

所述AggregateObject类层级表示集成的对象,如图10所示。 在AggregateObject类树的顶端是IgmObject 230,其也曾处于 GeometryObject类层次结构的顶端(参见图8)。agBaseClass 280 是IgmObject类230的一个子类,并且所述子类由线282表示。所 述agBaseClass类具有两个子类:几何类284以及nagBaseClass 类286,所述子类由线288表示。所述几何类具有两个子类,一个 agFeature类290以及一个agcell类292,所述子分类由线294表 示。表示不是几何模型部分的对象的nagBaseClass 286具有多个子 类296,所述子类由线298表示。所述agFeature类具有许多子类, 包括agPlane类300、agBox类302、agweb类304、agISP类306 及其他类308,所述子类由线310表示。

AggregateObject表示在GraphicsObject和GeometryObject 之间共用的数据以及方法的集成。例如,所述agPlane对象和其相 应的GraphicsObject以及GeometryObject形成类层次结构,如图 11所示。大多数层级是从图8-10中举例说明的类层级中提取出来 的。已经添加了由线320表示的聚合类和图形类之间的关联、以及 由线322表示的聚合类与几何类之间的关联,并且表示所述聚合。

AggregateObject可以根据对象参数而构造,例如平面的点 (point)与法线(normal)。所述AggregateObject类提供了构造 其相应的GraphicsObject与GeometryObject的方法。当要创建所 述子对象时由应用程序控制。

作为选择,AggregateObject可以根据现有的GraphicsObject 或者根据现有的GeometryObject来构造。这允许应用程序来从各包 来导入对象,其中所述包只提供图形表示的等价物(例如,其他OPEN INVENTOR应用程序)。更重要的是,对于永久性存储器,它允许应 用程序使用将GeometryObject表示,完全具有形状、拓扑以及属性 的信息。通常,当载入来自于永久性存储器的GeometryObject时, 实时地创建AggregateObject和GraphicsObject。

所述三个类树相似但具有一些差异。例如,所述三个类树具有不 同的深度。所有三个类支持动态类型检查。

除通用的GraphicsObject、GeometryObject以及 AggregateObject之外,所述IGM定义了许多标准对象。例如,因 为它们封装了可以依照几何系统建立模型的不同对象,所以所述 GeometryObject类层次结构包含许多子类。因为许多 GeometryObject可以使用类的方法来绘制,所以所述 GraphicsObject层级包含少数对象。例如,存在用于平面、例如图 8中的242的特定的GeometryObject,但没有特定的 GraphicsObject,如图9所示。诸如网格表面以及复合对象的其他 对象需要支持交互式的编辑,其中所述交互式的编辑以具体化的 GraphicsObject来实现。复合对象可以变得十分复杂并且被封装在 特殊类中,所述特殊类以每一部件为基础来管理更新。

应用程序实例化AggregateObject并且管理它们,如图7所示。 AggregateObject还经由对AggregateObject的调用330来提供图 形以及几何操作,其中所述AggregateObject稍后被分派给适当子 类,即要么经由分派路径332被分派给给GraphicsObject214,要 么经由分派路径334被分派给GeometryObject212,如图12所示。 应用程序还具有分别经由调用路径336和338只读存取 GraphicsObject以及GeometryObject,以便执行不影响系统一致 性的操作,如图13所示。通过此示出(exposure),由于使 AggregateObject中的GraphicsObject或者GeometryObject方法 得以最小化,因此可以满足最小开销的必要条件。

图14中所举例说明的其根类为mpMap 340的特定类(如由线342 所示,它本身是来源于Igmobject类230的),实现从物理特性到可 绘制属性的必要的数据格式的转换和映射。例如,作为如线346所 示的来自于mpMap类的子类的mpColorMap类344,以及作为如线350 所示的来自于mpColorMap类344的子类的mpCLutMap类348,提供 了可以按照许多方式索引的色彩映射。作为由线354示出的来自于 mpCLutMap类的子类的mpCLutDoubleMap类352提供了用于将色彩 映射到双精度浮点数范围的方法。此外还存在作为分别来自于mpMap 以及mpCLutMap类的子类的其他类356和358。

GeometryObject通过GQI/形状属性来使用有效的回调机制,同 样地,GraphicsObject使用Open Inventor传感器:将 GeometryObject的状态改变通知给AggregateObject。

所述AggregateObject完成许多工作,其中两项工作是一致性 控制和数据转换管理,这些内容将更详细地讨论。所述这些工作如 下:

1.集成GraphicsObject和GeometryObject(,由此向几何和 图形子系统提供了具有简单的一致接口的应用程序。

2.管理对象一致性。例如,当GeometryObject变换因也许需 要再计算交集和拓扑关系而可能需要时间时,可以交互式地执行 GraphicsObject变换。AggregateObject跟踪是否已经在两个子系 统中应用了变换。

3.最小化编辑操作的副作用。ISP对象可能包括许多子类,不 是所有的子类通常都受涉及复合对象的分类的影响。通过管理在边 界表示级的状态改变,AggregateObject使所需要的更新局部化。

4.管理GeometryObject和GraphicsObject之间的“平面几 何数据”转换。平面几何数据是在没有拓扑关系表示情况下的形状 描述。

5.管理拾取。拾取将通常由GraphicsObject加以启动,但是 对于一些子类来说,将通过相应的GeometryObject来执行。所述 AggregateObject协调(coordinates)拾取并且传达结果。

通过IGM集成的两个子系统并不总是一致,也就是说,它们有 时具有相同的地质数据的不一致的表示。往往,在延长的编辑操作 时期内,有意地留下所述两个子系统,以便改进性能。

对于所述两个子类来说,存在有限数目的可能的“有效/无效” 状态,并且可以将AggregateObject当作具有作为状态变量的两个 子类的有限状态机,如图15所示。子类可以要么是“有效的”要么 是“无效的”,这取决于它们是否表示最后用户交互的结果。 AggregateObject监视并且管理从一种状态到另一种状态的转换, 由此管理一致性并且解决处理速度差异的出现。

所述状态机通过响应各种事件来改变状态而操作。假定 GraphicsObject和GeometryObject两者都是有效的,这意味着所 述系统处于状态360。如果所述GraphicsObject分别是有效的或者 无效的,那么表示诸如状态360的状态的左侧框部分是加阴影的或 者不加阴影的。同样地,如果所述GeometryObject分别是有效的或 者无效的,那么所述框的右半部分是加阴影的或者不加阴影的。表 示状态360的所述框的两部分是加阴影的,指明GraphicsObject 和GeometryObject两者都是有效的。

现在假定所述GraphicsObject改变。这种改变的一个例子会是 应用程序拾取图形对象并且在没有提交去移动的情况下移动它。这 种改变由转换(362)到状态364表示,其中所述GraphicsObject 是有效的但所述GeometryObject是无效的。如果所述 GraphicsObject被进一步地改变,那么所述系统不从此状态中转 换,如转换(366)所表示的那样。

如果提交对GraphicsObject的改变,令所述改变(诸如分类所 移动的表面)在所述GeometryObject中进行时,或者如果创建 GeometryObject,那么所述系统转换(368)回到状态360,其中 GraphicsObject以及GeometryObject两者都是有效的。相反,如 果一个参数被改变,那么系统转换(370)到状态372,其中 GraphicsObject以及GeometryObject两者都是无效的。进一步地 设置参数或者参数的改变使系统留在状态372中。

所述系统可以在两种环境下离开状态372。如果所述系统创建了 GraphicsObject,那么系统转换(374)回到状态364,其中所述 GraphicsObject是有效的而所述GeometryObject是无效的。相 反,如果所述系统创建了GeometryObject,那么所述系统转换 (376)到状态378,其中GraphicsObject是无效的而所述 GeometryObject是有效的。所述系统保持在状态378下,以便进一 步地在GeometryObject380中改变。如果更新所述GraphicsObject 或者创建所述GraphicsObject,那么所述系统转换382到状态360。 相反,如果改变参数,那么系统从状态378转换(384)到状态372, 其中GeometryObject和GraphicsObject两者都是无效的。

考虑图3中的例子,其中所述用户在屏幕上定位新的表面。自从 表面的图形表示具有用户预定的形状和位置,它们就是有效的。因 为所述对象覆盖了现有的对象、而没有在它们之间建立拓扑关系, 所以所述几何建模是无效的。由此,所述系统处于状态364。一旦所 述用户提交改变,所述系统转换(368)到状态360,由此改变 GeometryObject并且更新所述GraphicsObject。

用于执行GeometryObject和GraphicsObject间复杂的转换的 方法以其自己的类来实现,并且将它们的基本类称作IgmAction 224,如图7所示。IgmAction包括gg_Action(及其子类),其用于 根据几何结构来生成图形。gm_object借助于ag_object或者 oi_object、根据图形对象生成GeometryObject(gqi实例)。从 igm_Object类派生的gg_Action对象可以遍历拓扑图,以便视情况 而定来对个体的对象执行所期望的操作和调用方法。ggAction是用 于处理子系统之间几何对象表示失配的方面的组件。它由 AggregateObject使用来支持一致性管理。

一个例子是可以依照几个不同的绘制模式、根据 GeometryObject来创建或者更新GraphicsObject的IgmAction, 这取决于GraphicsObject包含的不同属性以及要绘制的形状。绘制 模式包括:

1.子体积的绘制,其中每个体积的分界接口被绘制(相邻体积之 间的边界只绘制一次)。在此模式中,拾取(picks)返回体积对象 并且将剪切的体积绘制为闭合的对象(看上去是切开的对象相反);

2.划分空间的表面的绘制。拾取返回表面并且在表面中剪切可 以产生一些洞。

绘制模式的管理举例说明了GraphicsObject是它们相应的 GeometryObject的可视化表示。如上所述,在所述两个对象类型之 间不存在一对一的关系。例如,由表示一个体积的GraphicsObject 绘制的形状,取决于相邻对象以及剪切平面的存在。

不是所有的将要在3D视图中显示的对象都必需是形成或者意欲 形成几何模型部分的对象。这些例子包括文本、符号以及点符。此 外,许多应用程序处理具有几何解释的数据,其中所述几何解释被 绘制但不是几何模型部分。来自于地球科学的例子是钻孔轨迹 (borehole trajectory),所述钻孔轨迹可被绘制仅用于参考。所 述IGM提供了agBaseClass 280(图10),根据所述agBaseClass 280 可以派生出用于这种“非几何模型”对象的nagBaseClass 286。 nagBaseClass的等效GraphicsObject是oinongmBaseKit 264(图 9)。

这个方法允许应用程序管理一个泛类型的对象,无论它们是否将 用于所述几何模型。例如,SceneManager类可以被编写为跟踪被显 示或者隐藏在一个或多个应用程序窗口中的对象。此外, nagBaseClass的子类可以将GraphicObjects的绑定封装到存储在 数据库中的实体。

本发明可以采用硬件或软件或者两者的结合来实现。然而,优选 的是,本发明可以采用在可编程计算机上执行的计算机程序来实 现,其中所述可编程计算机均包括处理器、数据存储器系统(包括易 失性以及非易失性存储器和/或存储元件)、至少一个输入装置以及 至少一个输出装置。将程序代码应用于输入数据以便执行上面描述 的功能并且生成输出信息。按已知的方式,将所述输出信息应用于 一个或多个输出装置。

注意图16,其中第一体积400和第二体积402由表面单元401 分开。在所述体积单元400和402右边,是一系列由对应于表面单 元401的表面特征404表示的注释解释。所述表面特征节点404包 含节点MP 406、MB 408和面410,这些是没有彩色材料的图形内容。 所述体积单元400具有体积412的节点表示,所述体积412具有MP 414、MB 416和面418。某个第二体积402具有以体积2节点420 转移方向的注释表示,具有MP 422、MB 424和面426。

图17示出了不同的实现方式,其中具有体积428和体积430的 相似的体积表面单元安排由表面单元429加以区分。所述节点表示 与图16的节点表示相比具有重大差别。像图16的节点表示一样, 如图17所示,存在表面特征节点432、体积节点438和体积节点 444。然而,本发明的多个实施例具有公共面450,如图17所示,所 述公共面450与表面特征节点432、体积节点438和体积节点444 相连。诸如MP 434、MP 440、MP 446以及MB 436、MB 442和MB 448 的其它元素如图17中所示那样进行连接。

图18a示出了依照本发明举例说明的各种体积和表面特征的二 维表示。特别是,体积A1 452、A2 454和B2 458由表面特征H1 460、 F1 464、F2 466、H2 462和F3 468来分开。将图18a的不同表面 和体积在图18b中以节点形式表示。具体来讲,所述表面根470包 含所有表面节点。所述体积根486包含所有体积节点。例如,表面 特征H 472具有分别对应于图18a的H1 460和H2 462的表面特征 H1 474和H2 476。同样地,存在对应于图18a的表面特征F1 464、 F2 466和F3 468的其它表面特征F1 480、F2 482和F3 484。图 18a中示出的体积单元具有在图18b右侧上的相应节点表示。具体来 讲,节点体积488、节点体积490、节点体积492与节点体积494对 应于图18a的体积452,454,456和458。所述图形内容,即面 474,476,480,482和484由位于表面根470的根的表面场景图和位 于体积根486的根的体积场景图共用。

本发明的框架

本发明以一种新的框架来代替其它实现方式的低级GQI C结构 机制。为了进一步提高性能,上面描述的核心gmMP框架类不再具有 对IGM的任何依赖。本发明由一组对象实例组成,所述对象实例作 为软件例如在数字计算机上实现。然而,本发明适合完全以硬件方 式来实现,或者以硬件和软件的一些组合。

图20举例说明了本发明的框架2002,其包括一组相互联系的模 块化应用程序实体。例如,存在建模部应用程序(Modeling Office Application)2004、双子应用程序(Gemini Application)2006、 地质导向应用程序(GeoSteering Application)2008、大角度最 佳评估应用程序(High-Angle Well Evaluation Application) 2010和一个或多个研究原型模块2012,所有的这些应用程序以共同 模型构建器2014设施来操作,如图20中所示。所述共同模型构建 器2014向其基本类中的图20的其它模块的服务提供接口。所述各 种应用程序直接地使用共同模型构建器基本类或者从它们派生的内 容来实现具体化的行为。那些其它服务包括交互式几何建模库(IGM) 2016和应用数据接口ADI 2026,所述ADI是用于GeoFrame的数据 存取API。所述几何查询接口(GQI)2020利用IGM 2016和ADI 2026 两者来操作。IGM 2016和GQI 2020两者都分别具有材料性质 (material property)元素IGM MP 2018和GQI MP 2022。如图 20中示出的那样,所述IGM MP 2018利用GQI MP 2022操作。最后, 所述图形库2024实现各种模块(modules)所使用的数据的图形表 示。所述图形库2024可利用IGM 2016来操作,如图20中示出的。

图21举例说明了用于GQI材料性质框架的一组对象。具体来 讲,所述GQI材料性质框架2022包含一组包括gmMP 2104的对象, 其与ccRefObj对象2150具有IsA关系,如图21中所示。还具有 gmMPPolicy对象2106,其与ccRefObj对象2150具有IsA关系。 存在gmMPTopologyTraversalStates对象2118,其与gmMPPolicy 类2106具有组成关系(composition relationship),如图21所 示。

gmMPConstant对象2120与gmMP对象2104具有IsA关系。 gmUtilFtrBndPolicy对象2108与gmMPGQIPolicy对象2110具有 IsA关系,如图21所示。几个其它策略对象(policy objects), 其中包括gmSysPSPPolicy对象2112、gmSysRulesPolicy对象2114 以及gmMPVolumePropertyPolicy对象2116,所有对象与 gmMPPolicy对象2106具有IsA关系,如图21所示。此外, gmSysPSPPolicy对象2112与gmSysPSPProperty对象2124具有策 略组成关系。同样,所述gmSysRulesPolicy对象2114与gmSysRules 对象2122具有策略组成关系。所述gmUtilFtrBnd对象2126是最后 的组,并且它连同gmSysRules2122和gmSysPSPProperty对象2124 一起与gmMPConstant对象2120具有IsA关系。所述 gmMPVolumePropertyPolicy对象2116还与gmMPConstant对象 2120具有组成关系,如图21所示。最后,所述GQI材料性质框架 2022还选择性地包括gmutil_status对象2128和mv_vt对象2130 和gm_mp_atoms对象2132,所有这些对象有助于本发明的存储以及 信息处理方面的于交互和联系。

图22举例说明了GQI材料性质、框架2022以及IGM材料性质 框架2018之间的相互关系。所述IGM材料性质框架2018其中包括 gmMPNamePropertyPolicy对象2228,所述 gmMPNamePropertyPolicy对象2228与gmMPName对象2230具有组 成策略关系。所述gmMPIGMPropertyPolicy对象2234与 mbCeIIGMReference对象2232和mbFtrGMReference对象2236具 有两个独立的组成策略关系。所述gmMPName对象2230、 mbCellGMReference对象2232、mbFtrGMReference对象2236以及 vspQualityProp对象2238、vspTransverseIsotroppy对象2240 和fbFtrParameters对象2242,都与gmMPConstant对象2120具 有IsA关系,如22图所示。存在另一个对象子集,具体来讲是gmMPZ 对象2216以及gmMPTime对象2218和gmMPDepth对象2220。后两 个对象与前者对象、即gmMPZ 2216具有IsA关系。此外,在所述子 集中有gmMP2DPoly对象2222、gmMP2DGrid对象2224和gmMP3DGrid 对象2226。所述gmMPZ对象2216以及gmMP2DPoly对象2222、 gmMP2DGrid对象2224和gmMP3DGrid对象2226,都与gmMP对象 2104具有IsA关系,如图22所示。存在最后的对象子集,该子集包 含IGM材料性质框架2018,即gmMPPolyXYZ对象2204,其与GQI 材料性质框架2022的gmMP对象2104具有IsA关系。最后,存在与 gmGradientProp对象2206具有IsA关系的四个对象,即 vspDensProp对象2208、vspVelPProp对象2210、vspVelSProp对 象2212和gmResistivityProp对象2214。

图23举例说明了GQI材料性质框架2022和IGM材料性质框架 2018内各种对象之间的关系。具体来讲,存在gmUtilFtrBndPolicy 对象2108和gmMPIGMPropertyPolicy对象2234,其中后者与 gmUtilFtrBndPolicy对象2108具有IsA关系。在GQI材料性质框 架2022之内有gmMPVolumePropertyPolicy对象2116。IGM材料性 质框架2018的gmMPNamePropertyPolicy对象2228与 gmMPVolumePropertyPolicy对象2116具有IsA关系,如图23所 示。同样,所述gmMPVolumePropertyPolicy对象2116与gmMPZ对 象2216和gmGradientProp对象2206具有组成关系,如图23所示。

图24举例说明了本发明的用于有助于计算和显示数据的对象装 置,优选的是,计算和显示地震数据。图24举例说明了与gqi_Core 对象2018具有IsA关系的gqi_AttachmentSite对象2404。存在分 别用于gqi_AttachmentSite对象2404和gqi_Core对象2402两者 的XAttr对象2408和2406。所述gqi_AttachmentSite对象2204 与gqi_MetaProperty对象2412具有操作关系。同样地,gqi-_Core 对象2402与gqi_MetaProperty对象2410具有操作关系。所述gmMP 对象2104与gqi_MetaProperty 2412和gqi_MetaProperty 2410 具有O..n表示的操作关系,如图24所示。所述aqi_Parameter对 象2414与gmMP对象2104具有O..n操作关系(PropertyDI)。所 述gmMPPolicy对象2106与gmMP对象2104具有组成关系。最后, 所述gmMPTopologyTraversalState对象2416与gmMPPolicy对象 2106具有操作关系。

参考图21和22,可以将料性质框架类聚合成四个类别。所述系 统类(图21的2104、2106、2108、2110、2112、2114、2118、2122、 2124、2126、2128、2130和2132)支持GQI的操作(例如点集保存、 特征边界跟踪)。所述IGM类(图22的2232、2234和2236)(例如 特征退回指针,feature back pointers)必须与系统类隔离,因为 它们对IGM具有依赖性。严格地限制所述系统类以便内部的使用并 且不应该从应用程序派生或者由应用程序来实例化。所述应用程序 支持性质类(图21和22的2120、2204、2206、2216和2228)实现 应用程序(以及系统部件)所需要的基本机构,所述应用程序用于 附加(attachment)、不变量维护(invariant maintenance)以及 评估。它们可以应用程序派生,在一些情况下,可以直接地由应用 程序使用。更适宜的是,所述系统类还从这些应用程序支持类派生。 最后,将第四类的集、即应用程序类(图22的2208、2210、2212、 2214、2218、2220、2222、2224、2226、2230、2238、2240和2242) 规定为由用于直接表示材料性质的应用程序来使用。

抽象基本类

图21和22的gmMP类2104定义了材料性质表示类的基本行为。 它直接地支持以下能力:

·mp_class实例的读/写,包括在读/写期间跟踪对同一实例的 多个应用,数值类型scan/print/pack/unpack;

·维护对为形状编辑事件回调提供方法的附加策略(见下文)的 参考;

·按返回类型:evalDouble、evalPtr、evalString、 evalOnPolyLine、evalMinMax进行的性质评估的实例方法;

·按性质名称:evalPropertyDouble、evalPropertyPtr、 evalPropertyString、evalPropertyMinMax进行的性质评估的类 方法;

·用于按评估器(evaluator)类和位点,按位点和性质DI,按 位点、性质代码、(以及可选的是性质类名)查找gmMP派生类实例的 混杂方法;以及

·用于标志性质附加的性质DI的缺省构造。

所述gmMP基本类2104还提供了由上述方法使用的数据结构, 以便管理派生类的所有实例并且支持必要的查找能力。

所述gmMPPolicy摘要基本类2106实现以下行为:

·维护对拓扑遍历生成器的引用,所述拓扑遍历发生器列举出符 合给定策略的材料性质将被传播到的子单元;

·形状编辑事件处理器以及由那些事件处理器调用的哑有效实例 方法。在重新设计的系统中,所有可能的回调必须得以支持。在先 前的设计中,在gmMPPolicy级别处只有以下类被支持: CellCopyCallback、CellDissociateCallback、 CellSplitCallback、CellEmbedCallback、CellMergeCallback、 CellDeleteCallback、FeatureAddChildCallback、 FeatureRemoveChildCallback、FeatureReplaceChiIdCallback;

·将所述gmMPPolicy类作为单例(Singleton)实现,这意味 着提供了一种类方法来获取或者创建一个实例。

图21的所述gm_MPTopologyTraversalState 2118实现了几 个用于不同性质传播策略的生成器,并且像迭代器一样工作以便进 行遍历,同时维护遍历状态。所述被支持的生成器包括:

·generateNone:所述哑生成器;

·generateHereOnly:所述列表的头、没有继承者;

·generateHereAndChildren:返回开列表的头;如果下一个位 点是核心或者特征则继承者有下一个位点的孩子们,如果下一个位 点是3单元则下级桥接;

·generateHereAndChildrenNoSubs:返回开列表的头;如果 下一个位点是任何种类的组,则继承者是下一位点的孩子们;不生 成下级;

·generateChildrenOf3Cell:只遍历子桥以及3单元的下级2 单元。3单元本身除外;

·generateHereAndPartialBridges:从启动单元遍历所述拓 扑结构,向下直到局部单元桥的一级。如果reference_cell是 NULL,那么我们遍历现存的层级。如果reference_cell不是NULL, 那么我们创建其方位匹配reference_cell的局部桥的那些局部 桥;以及

·generateSupBridgesOf2Cell:如果参考单元是给定的,则 遍历2单元的超桥,查找或者生成与参考单元的局部桥的方位匹配 的局部桥。

材料性质表示方案

图24中表示为“mp XATTR”2408和2406的形状属性在形状实 体gqi_AttachmentSite 2404和相应的gqi_MetaProperty实例 2412之间建立映射。正如可以从图24中看到的那样,已经将早期的 基于C结构的方案替换为对gmMP实例2104的直接引用(direct reference)。

在本发明的优选实施例中,所述核心不再管理事件处理器。在现 有技术的实践中,曾确定事件处理器不是独立的。而是,将事件处 理器聚集为几个相关处理器集。依照本发明,现在将所述现有技术 的事件处理器由gmMPPolicy实例2106(参见图21和24)表示。因 为所述gmMPPolicy 2106没有持续状态(如果支持重进入遍历的话, 所述遍历状态必须被多实例化),所以使用单例来使事件处理器虚函 数表的数目最小化。

本发明的评估器可以作为gmMP 2104中的虚函数(例如子函数) 和从gmMP 2104派生的类来加以实现。类似于单例gmMPPolicy 2106 的模式可能用来表示gmMP 2104的评估器,所述gmMP 2104是随着 评估器的数目的增长而派生的类。然而,所述gmMP 2104实例由特 别的“性质实例”被传播到的每个附属位点(attachment sites) 共用。

本发明的对象的设计将上述两种行为分割为两个新的类对:

点集保存

·gmSysPSPProperty 2124携带点集保存(“PSP”)的附属语义。 gmSysPSPProperty 2124的顶层附属位点是模型核心本身。如果存 在一个以上核心,那么生成多个PropertyDI的核心,并且每个核心 被认为具有独立的附属(attachment)。对于此性质来说不存在其它 的持久状态。

·图21的gmSysPSPPolicy 2112为PSP实现传播策略并且编辑 回调。

规则

·图21的gmSysRules 2122为“核心”和“特征”附连的规 则集携带附属语义。这些性质实例的状态包括实际规则附属以及它 们的激发状态(firing state)。规则的状态(框架规则被附连以及 规则违反(violation))由对gmSysRules性质实例2122进行的评 估操作加以管理。激发规则解析器近是仅仅由gmSysRules类2122 所实现的不同操作。

·gmSysRulePolicy 2114为规则实现传播策略以及编辑回调, 包括激发规则检测器。

性质DI和附属语义

所述性质(参数)数据项提供了非常具体的用户可视语义,如在 以下的例子中所举例说明的那样。指定的Property_Code的性质、 名称、修改者(及其他支持对数曲线命名约定的属性)已经由用户 (或者代表用户活动的应用程序)附加。这些属性允许用户区别给定 位点上的多个相似的性质。

具有称为TopLevelSite的参数的gmMP数据成员2104存储顶层 附属被做到其的原始位点。如果gmMP实例2104的属性被修改(例 如,缺省的,或者值),那么如果与所述修改相关联的位点不是所述 顶层位点,就必须创建gmMP实例2104的副本。

为使用性质(参数)数据项和附属位点而建立了以下策略:

1.每个顶层分配到位点(例如到体积)的性质的分配均与唯一的 (在其它顶层分配中)性质DI和gmMP子类实例2104相关联。

2.所述gmMPPolicy类2106将分配(例如体积和绑定2单元之 间的桥)传播到的每个位点接收相同的性质DI和相同的gmMP实例 2104。给定的策略可以令相同代码的多个性质实例借助于从两个方 向的传播来附连于同一位点。由于支持多个性质实例,所以这不是 问题。

3.应用程序可以将多个性质附加到附属位点的子单元,其中所 述附属位点已经让相同代码的性质附加到并且传送到所述子单元。 所述传播的附属不考虑顶层,但是显式地附加的性质实例是顶层附 属,并且生成新的性质DI。

4.只有顶层附属可以被删除。对于性质策略类来说,在传播所 述删除正象它传播所述附属一样是其职责。

有限状态机

图19举例说明了本发明的有限状态机。具体来讲,图19中存 在以框496示出的状态1,以框500示出的状态2,以框502示出的 状态3以及以框498示出的状态4。在操作504中,从状态1转换到 状态4的转换使通过将对象设置为不可视来进行的。通过在操作506 中使图形无效,来完成从状态1到状态2的转换。通过在操作510 中将对象设置为不可视的,来完成从状态2到状态3的转换。通过 在操作508中使图形无效,来完成从状态4到状态3的转换。通过 在操作512中将对象设置为可视的,来完成从状态4到状态1的转 换。通过在操作516中更新所述图形,来完成从状态2到状态1的 转换。最后,操作514更新并且还使所述图形有效,并且将所述对 象设置为可视的,以便从状态3转换到状态1,如图19中所举例说 明的那样。

回调方案

图26举例说明了本发明的回调方案。图26中的对象结构举例 说明了本发明的回调方面。

如图26中所示,在图26的左边以及中间部分存在的三个主对 象组。如上所述,所述对象覆盖三种通常的情况:几何、特征以及 单元。按照符号约定的常规,在所述对象的特殊方面之前出现了用 于通用类别的只取首字母的缩写词。例如,“ag”代表聚合;“gm” 代表几何建模;“oi”代表OPEN INVENTOR,一个图形引擎;gqi代 表几何查询接口;以及“X”代表XOX形状,几何引擎。

参见图26,首先,存在ag_BaseClass 280(参见图11),其与 图26中所示的ag_Geometry对象284具有IsA关系288。所述 gm_Geometry对象232与ag_Geometry对象284处于hasA关系 322,并且与gqi_Geometry_t对象2608具有另一个关系2658。

聚合特征对象ag_Featurei 2638和聚合单元对象ag_Celli 2644的实例分别经由IsA关系2648和2649、与聚合几何对象 ag_Geometry 284相关联,如图26中所示。open inventor特征对 象实例oi_Featurei 2640经由关联2699有选择地与ag_Featurei 相关联。同样,所述open inventor单元对象实例oi_Cellj经由 关联2696有选择地与ag_Cellj2644相连。

所述几何建模对象实例gm_Featurei 2636和gm_Cellj2642 分别经由关联2698和2694与ag_Featurei 2698和ag_Cellj 2644 相连。此外,所述gm_Featurei对象2636与gm_Geometry对象232 具有关系2637。所述gm_Cellj对象同样与gm_Geometry对象232 具有关系2643,如图26中所示。

如图26中所示,依照本发明来提供X_Featurei对象2614。所 述X_Featurei对象2614与gm_Featurei对象2636具有关系 2692。所述X_Featurei对象2614与xAttrFtr对象2612具有关系 2660,也与gqi_Featurei对象2610具有关系2662。所述 gqi_Featurei对象2610也与所述X_Featurei对象2614具有关系 2664。所述X_CelIi对象2618与所述X_Featurei对象2614具有 关系2678(并且XFeaturei对象2614与所述X_Cellj对象2618 具有关系2676),如图26中所示。

所述X_Featurei对象2614与gqi_Geometry_t对象2608具有 关联2615,如图26所示。所述X_Featurei对象2614还与xAttrMP 对象2628具有关系2666,并且其还与第一gqi_MetaProertyj实 例对象2622具有关系2668。gqi_MetaPropertyi对象2622的第一 实例针对特征,并且具有一组与其关联2684的对象,诸如对象2624 和FtrRefi对象2626的一个或多个实例,如图26所示。所述FtrRefi 对象2626通过与gmFeaturei对象2636的关系2686和2688来有 助于本发明的回调功能,如图26所示。

所述单元对象具有gqi_MetaProperty对象的并行实例,即gqi_ MetaPropertyj对象2630。在本发明的这些方面中,X_Cellj对象 2618与所述xAttrMP对象2620具有关系2680。所述xAttrMP对象 2620也与gqi_MetaPropertyj对象2630具有关系2682,如图26 所示。如同采用gqi_MetaPropertyi 2622的第一实例一样,第二 gqi_MetaPropertyj对象2630与不同的对象具有关联2670,诸如 与对象2632和CellRefj对象2634。所述本发明的(用于单元的)回 调操作通过与gm_Cellj对象2642的关系2672和2674变得更为便 利。如同采用所述X_Featurei对象2614一样,所述X_CeIIj对象 2618与所述gqi_Geometry_t对象2608具有关系2619,如图26所 示。最后,所述X_Cellj对象2618共用与X_Featurei对象2614 的关系2678与关系2676,如图26所示。

本发明的操作

本发明可以作为一种用于交互式地编辑模型的方法来描述,其中 所述方法在这样一种计算机上实现,所述计算机包括处理器、数据 存储器系统、至少一个输入装置和至少一个输出装置,包括但不限 于计算机监视器、存储装置或打印输出。优选的是,将所述模型存 储在计算机可读媒体上。所述模型本身具有至少一第一表面,不过 典型地也可以构建多表面的模型。

示例:附加PSP性质

根据以下例子,能够使本发明的能力的一般指示(general indication)和结构的灵活性的更加显而易见。

图25举例说明了额外的核心无效特征。如图25所示,将处于 “未注册”状态的水平特征(horizon feature)(称为“H1”)2501 添加到模型核心C1(gqi_Core对象)2502的未分类的特征中。 对于模型来说所期望的是,将作为gmSysPSPProperty 2520的GQI 的行为附加到所述特征,并且将其传播给孩子们以及它们的子单 元。由此,实现将孩子方法2503添加到gqi_Feature 2504(在图 25中将其实例称为“IAF1”)。所述有效特征和无效特征都具有附加 的PSP性质,所以所述添加孩子方法2503将引发添加孩子事件,其 接着还引起了H1的附加(attachment)。注意,PSP性质的附加作 为添加孩子事件的结果而产生,因为核心的有效的和无效的特征携 带所述PSP性质。

根据所述gqi_Feature对象2504,调用组添加孩子方法2505 来作用于XOX形状对象2506,如图25所示。所述XOX形状对象2506 然后将类组添加孩子回调方法2507调用到gqi_metaProperty对象 2412上,该方法具有作为其参数的IAF1、H1以及IAF1,如图25 所示。所述gqi_MetaProperty对象2412还将属性获取指针值方法 2510调用到XOX处理对象2512上,该方法采用vlAttr变量作为参 数,XOX处理对象2512的实例化被标记为IAF1attr。此后,通过 gqi_MetaProperty对象2412将添加孩子回调方法2509调用到称为 IAF1meta 2514的gqi_MetaProperty实例,如图25所示。所述添 加孩子回调方法2509把IAF1、H1以及IAF1属性作为其参数。所述 gqi_MetaProperty 2412的IAF1meta实例启用双个方法。第一,在 gmSysPSPProperty对象2520的C1PSP实例上调用获取策略方法 2519。第二,在gmSysPSPPolicy对象2518上调用添加孩子回调方 法,所述方法令IAF1、H1以及PIAF1属性作为参数,如图25所示。 最后,由gmSysPSPPolicy对象2518将到方法2521的附属调用到 gmSysPSPProperty对象2520的C1PSP实例上。

其它方法描述

在图27-40中举例说明了与上面特殊的例子相比、本发明方法 的更概括描述。在伴随的描述中将说明在那些图中举例说明的特定 步骤。

根据图27,所述方法总体上从步骤2702开始。所述方法在步骤 2704继续,把有关第一表面特征的数据从数据库中装载到计算机系 统的存储器(随机访问存储器或者系统存储器)中,其中所述数据 库存储在数据存储器系统中。接下来,在步骤2706中,为所述第一 表面特征创建聚合特征。这允许根据所述聚合特征来创建第一图形 对象,步骤2708。此后,将所述第一图形对象添加到所述应用场景 图,步骤2710。然后,在步骤2712中,为所述聚合特征创建几何对 象。然后随心所欲地编辑所述模型中的第一表面特征,步骤2714。 一旦完成编辑(例如所述用户从编辑模式中退出,或者必需的时间周 期期满),有选择地更新所述模型的图形,步骤2716。所述有选择性 地更新使各种装置不必重新计算以及显示所有的更新和改变。相 反,只对那些能够对用户体验产生影响的更新进行更新。最后,将 所述第一表面特征的第一图形对象从所述应用场景图上移除,步骤 2718。

编辑和更新

编辑过程本身包括几个步骤。参见图28a,首先,必须提供一个 接口,步骤2804。然后,在步骤2806中,必须还提供利用所述接口 操作的IGM。它有助于包括利用与IGM操作的GQI。这允许所述用户 经由该接口来选择要对第二表面特征执行的操作,步骤2808。将该 接口设计成能向IGM通知用户的选择,步骤2810。所述操作本身利 用GQI被调用,步骤2812。在所述编辑过程期间,步骤2814,在执 行所述操作期间需要从GQI到IGM执行至少一次回调。将所述回调 用于更新模型的图形对象以便刷新所述输出装置。可以经由不规则 空间的划分来实现编辑,不过本发明还能够采用其它的编辑技术。 一旦完成所述编辑,通常就通过产生所述图形对象开始更新所述图 形,步骤2816。

如图28b所示,本发明具有特定特征,其中更新步骤2816只针 对那些发生在定义标准上的改变的特征进行,所述定义标准诸如几 何的和/或拓扑的,步骤2820。所述更新步骤还可以包括可视性有限 状态机的参考,步骤2822。所述可视性有限状态机有助于管理图形 对象的更新操作以及图形对象的可视性更新操作。利用所述可视性 有限状态机来允许只对那些指定为可视的(对于用户来说)图形对 象进行更新。所述可视性有限状态机可用于将图形对象指定为可视 的,并且还用于检查所述图形对象的有效性。如果所述图形对象是 有效的,步骤2824,那么可以将所述图形对象添加到所述场景图, 步骤2826。否则,所述图形对象可以被更新,然后添加到所述场景 图,步骤2828,如图28b所示。

更新的过程可以包含几个步骤。例如,更新可以包括检验所述场 景图中的每个特征的状态,如在图28c的步骤2854-2856中所示。 通常,如果所述特征的图形是有效的,步骤2854,那么不更新所述 特征的图形对象,步骤2860。然而,如果所述特征的图形是无效的, 步骤2854,而所述几何特征是有效的,步骤2856,那么特征的图形 对象被更新,步骤2862,如图28c所示。

更新的另一个方式可以包括检验场景图中每个单元的状态,如图 28d所示。在此方案中,如果所述单元的图形是有效的,步骤2872, 那么不更新所述单元的图形对象,步骤2878。如果所述单元的图形 是无效的,步骤2872,而所述单元的几何结构是有效的,步骤2876, 那么更新所述单元的图形对象,步骤2880。

本发明的方法还可能包含那些情况,其中所述模型内不包含第二 表面特征,不过所述模型内当然可以包含第二特征。

创建图形

本发明的方法还涉及为不同的实体创建图形,所述不同的实体诸 如是聚合特征,如图29中所示。通常,此过程涉及获取所述模型中 的所有相关的表面特征,步骤2904。然后,对于每个相关的表面特 征来说,如果该表面特征具有图形对象,步骤2905,那么更新该图 形对象,步骤2906。否则,创建用于表面特征的图形对象,步骤2908。 然后,将表面特征的所述图形对象添加到表面场景图根节点,步骤 2910,并且图29的方法通常在步骤2912结束。

除前段中略述的步骤之外,可以选择性地实现其它的步骤,如图 30所示。例如,可以获取所述表面特征的所有二维单元的聚合对象, 步骤3004。然后,可以提示每个单元的聚合对象获取至少一个有效 的图形对象,并且将该图形对象添加到表面特征的子场景图,步骤 3006。一旦完成上述步骤,可以使所述表面特征的图形对象有效, 步骤3008,并且所述方法通常在步骤3010结束。

为上面刚略述的方法可以仍可采用更多的步骤,如图31所示。 例如,为单元获取有效的图形对象的步骤可以包括检验,以便判断 所述单元的图形对象是否存在,步骤3104。如果所述图形对象没有 存在,那么所述单元的图形对象被创建并且使其有效,步骤3106。 如果所述单元的图形对象存在但不是有效的,那么更新并且使所述 单元的图形对象,步骤3108。

作为选择,本发明的用于创建图形的方法还可能包括根据所述模 型为至少一个体积单元创建图形,如图32所示。此可选方法包括获 取所述模型中的至少一个相关的有效的体积单元,步骤3204。一旦 获取,可以执行检验以确保每个体积单元的所有二维单元的图形对 象已经创建,步骤3206。然后,对于每个所述二维单元来说,可以 获取聚合,步骤3208。如果所述二维单元聚合不存在,那么可以创 建新的聚合,步骤3210。然后,检验每个二维单元以便确保它具有 有效的图形,步骤3212。此后,可以为每个体积单元创建图形对象, 步骤3214。然后,为每个体积单元,将所述体积单元的每个二维单 元的图形内容添加到体积单元的图形对象的子场景图中,步骤 3214。最后,为每个体积单元将所述图形对象添加到体积场景图根 节点,步骤3216。另外,在没有彩色材料情况下,图形地表示二维 单元的图形内容的例示,可以由包含让所述二维单元作为孩子的表 面特征的图形对象的至少一个场景图、以及包含一个体积单元或者 两个体积单元的图形对象的至少一个场景图来共用,其中所述两个 体积单元让所述二维单元作为它们的边界部分。

回调

本发明在所述对象框架内广泛地应用了回调。例如,回调可以令 所述聚合特征的状态变化。优选的是,所述聚合特征元素是一致性 有限状态机,以便有效地辅助所述回调。此外优选的是,所述一致 性有限状态机管理几何和图形之间的一致性。还将回调用于使聚合 特征的图形对象无效,并且用于使聚合特征的几何结构有效。例如, 如果所述回调针对体积对象,那么将特殊的回调用于体积特征。否 则为表面特征执行编辑回调。

能够以多种方式来执行回调。然而,所述回调通常利用一个或多 个对象集来实现。通常,该对象集包括第一几何建模器特征对象; 在所述几何建模器特征对象中包含的改变的几何对象;可操作地与 改变的几何对象相关联的第一元性质属性对象;与所述第一元性质 属性相关联的第一元性质对象;与所述几何建模器特征对象相关联 的第二元性质属性对象;以及与第二元性质属性对象相关联的第二 元性质对象。

所述第一元性质对象本身具有一组对象,比如点集保存性质对 象;点集保存性质策略对象;单元反向指针性质对象;聚合反向指 针性质策略对象;与所述回调指针对象相关联的几何单元对象;与 所述几何单元对象相关联的聚合单元对象;以及与所述聚合单元对 象相关联的显示单元图形对象。

第二元性质属性对象本身具有一组对象,包括:第二点集保存性 质对象;第二点集保存性质策略对象;特征反向指针性质对象;第 二聚合反向指针性质策略对象;与所述特征反向指针性质对象相关 联的几何特征对象;与所述几何特征对象相关联的聚合特征对象; 以及与所述聚合特征对象相关联的显示特征图形对象。

依照本发明的回调可以在各种配置以及环境中实现。例如,图 33举例说明了体积特征的编辑回调,所述过程包括利用几何建模器 接口来注册所述元性质分割回调类方法,步骤3304。当发生体积分 割事件时打算调用所述几何建模器接口。此后,在步骤3306中,第 一元性质属性附加到由体积特征包含的至少一个体积对象。然后, 在步骤3308中,从所述几何建模器接口接收回调,所述回调指定了 第一体积对象、受第一体积对象改变影响的第二体积以及第一元性 质属性。然后从第一元性质属性来获取指针值,然后,允许反引用 所述指针值来定位第一元性质对象,步骤3310。利用第一元性质属 性、第一体积对象以及第二体积对象在第一元性质对象中调用分割 回调。此最后一步本身包括获取第一点集保存性质实例,步骤3312, 以及从所述性质实例来获取第一点集保存策略实例,步骤3314,以 及利用点集保存性质实例、第一体积对象以及第二体积对象对点集 保存策略实例,来启动第一分割回调。此后者的子步骤本身包括: 获取至少一个第一体积对象的包含特征,步骤3316,以及利用包含 特征以及第二体积对象在所述几何建模器接口上来启动特征添加孩 子更新,步骤3318。然后,获取单元反向指针性质实例,以便可以 从所述单元反向指针性质实例获取聚合反向指针性质策略实例,因 此利用所述单元反向指针性质实例针启动对聚合反向指针性质策略 实例的第二分割回调。然后,获取单元反向指针性质实例,以便可 以从所述单元反向指针性质实例处获取聚合反向指针性质策略实 例,因此利用所述单元反向指针性质实例启动对聚合反向指针性质 策略实例的第二分割回调。后者的回调本身包括从所述单元反向指 针性质实例来获取体积几何单元对象,步骤3320,并且启动对所述 体积几何单元的单元分割调用。后者的子步骤可以包括:启动对体 积几何单元对象的体积单元聚合主顾(aggregate patron)的调用, 以便使第一体积的所述图形无效,步骤3322。

图34举例说明了为体积特征而执行特征添加孩子回调,包括: 利用几何建模器接口来注册所述元性质添加孩子回调类方法,当发 生特征添加孩子事件时将要调用所述几何建模器接口,步骤3404。 此步骤可以包括:将第二元性质属性实例附加到所述体积特征上, 步骤3406;并且接收来自于所述几何建模器接口的添加孩子回调, 所述添加孩子回调指定了体积特征、体积对象以及第二元性质属 性,步骤3408。然后,在步骤3410中,从第二元性质属性获取指针 值,然后反引用所述指针值以便定位第二元性质对象。在第二元性 质对象中调用添加孩子回调。后者的步骤包括:获取第二点集保存 性质实例,步骤3412;从第二点集保存性质实例来获取第二点集保 存性质策略实例,步骤3414;以及利用体积特征以及体积几何对象 来启动第二点集策略对象的添加孩子回调方法。后者的子步骤本身 包括:将所述点集保存性质附加到所述体积单元,步骤3416;获取 特征反向指针性质实例,步骤3418;以及从所述特征反向指针性质 实例来获取第二聚合反向指针性质策略实例;以及利用体积特征、 体积几何对象以及体积特征反向指针性质,来启动第二聚合反向指 针性质策略实例的添加孩子回调方法。后者的子步骤本身包括:启 动对体积特征几何对象的添加孩子通知方法调用,其中所述体积特 征几何对象由所述特征反向指针性质实例标识。此后者的子步骤本 身包括:启动对体积特征对象的体积特征聚合主顾的调用,以便使 体积特征对象的几何结构有效,步骤3420;以及启动对体积特征对 象的体积特征聚合主顾的调用,以便使体积特征对象的图形无效, 步骤3422。

本发明的方法的又一个方面涉及为表面特征执行编辑回调。所述 方法的这方面包括:利用几何建模器接口注册所述元性质分割回调 类方法,所述几何建模器接口要在发生表面分割事件时被调用,步 骤3504;将第一元性质属性附加到由所述表面特征包含的至少一个 表面对象,步骤3506;从几何建模器接口接收指定第一表面对象、 受第一表面改变影响的第二表面以及第一元性质属性的回调,步骤 3508;从第一元性质属性来获取指针值并且反引用所述指针值来定 位第一元性质对象,步骤3510;利用第一表面对象、第二表面对象 以及第一元性质属性、其本身,在所述第一元性质对象中调用分割 回调。后者的步骤包括:获取第一点集保存性质实例,步骤3512; 从所述性质实例来获取第一点集保存策略实例,步骤3514,以及利 用点集保存性质实例、第一表面对象以及第二表面对象启动对点集 保存策略实例的第一分割回调。后者的子步骤本身包括:获取第一 表面对象的至少一个包含特征,步骤3516;以及利用包含特征以及 第二表面对象在几何建模器接口上启动特征添加孩子更新,步骤 3518;获取单元反向指针性质实例,步骤3520;从所述单元反向指 针性质实例来获取聚合反向指针性质策略实例,步骤3522;以及利 用所述单元反向指针性质实例来启动对聚合反向指针性质策略实例 的第二分割回调。后者的子步骤本身包括:从所述单元反向指针性 质实例来获取表面几何结构单元对象,步骤3524;以及启动对表面 几何结构单元对象的单元分割调用。后者的子步骤包括:启动对表 面几何结构单元对象的表面单元聚合主顾的调用,以便使第一表面 的图形无效,步骤3526。

图36举例说明了用于执行特征添加回调(在前段中提及)的步 骤包括以下步骤:利用所述几何建模器接口来注册所述元性质添加 孩子回调类方法,所述几何建模器接口要在发生特征添加孩子事件 时被执行,步骤3604;将第二元性质属性实例附加到所述表面特征, 步骤3606;从所述几何建模器接口接收添加孩子回调,所述添加孩 子回调指定表面特征、表面对象以及第二元性质属性,步骤3608; 从第二元性质属性来获取指针值并且反引用所述指针值来定位第二 元性质对象,步骤3610;以及在第二元性质对象中调用所述添加孩 子回调。此后者的步骤本身包括:获取第二点集保存性质实例,步 骤3612;从第二点集保存性质实例来获取第二点集保存性质策略实 例,步骤3614;以及利用表面特征以及表面几何结构对象来启动第 二点集策略对象的添加孩子回调方法。此后者的子步骤本身包括: 将此点集保存性质附加到此表面单元,步骤3616;获取特征反向指 针性质实例,步骤3618;以及从所述特征反向指针性质实例来获取 第二聚合反向指针性质策略实例,步骤3620;以及利用表面特征、 表面几何对象以及表面特征反向指针性质来启动第二聚合反向指针 性质策略实例的添加孩子回调方法。此后者的子步骤本身包括:启 动对表面特征几何对象的添加孩子通知调用,所述表面特征几何对 象是由特征反向指针性质实例标识的。此后者的子步骤本身包括: 启动对表面特征对象的表面特征聚合主顾的调用,以便使表面特征 对象的几何结构有效,步骤3622;并且启动对表面特征对象的表面 特征聚合主顾的调用,以便使表面特征对象的图形无效,步骤3624。

回调可以对本发明的不同对象产生许多影响。例如,执行所述回 调可以引起单元的状态改变。可以将所述单元的状态变化记录在一 致性有限状态机中。

本发明的方法的另一个方面在于为体积特征执行编辑回调,如图 37所示。本发明方法的该方面包括利用几何建模器接口来注册元性 质合并回调类方法,所述几何建模器接口要在发生体积合并事件时 被调用,步骤3704;将第一元性质属性附加到由体积特征包含的至 少一个体积对象上,步骤3706;从几何建模器接口接收指定第一体 积对象、第二体积对象、原先限制第一和第二体积对象的以及已经 从所述模型中移除的表面对象、以及元性质属性,步骤3708;根据 几何模型属性获取指针值并且解关联所述指针值以便定位第一元性 质对象,步骤3710;以及在所述第一元性质对象中调用合并回调。 后者的子步骤本身包括:获取第一点集保存性质实例,步骤3712; 从所述性质实例来获取第一点集保存策略实例,步骤3714;以及利 用点集保存性质实例、第一体积对象、第二体积对象以及表面对象, 对点集保存策略实例启动第一合并回调。此后者的子步骤本身包 括:获取第一体积对象的至少一个包含特征,步骤3716;以及利用 包含特征以及第二体积对象在几何建模器接口上启动特征移除孩子 更新,步骤3718;然后在步骤3719中获取单元反向指针性质实例。 接下来,在步骤3720中,从所述单元反向指针性质实例来获取聚合 反向指针性质策略实例;并且利用单元反向指针性质实例、第一体 积对象、第二体积对象以及表面对象,启动对聚合反向指针性质策 略实例的第二合并回调。后者的子步骤本身包括:从单元反向指针 性质实例来获取体积几何单元对象,步骤3722,并且启动对体积几 何单元对象的单元合并调用。此后者的子步骤本身包括:启动对体 积几何单元对象的体积单元聚合主顾的调用,以便使第一体积的图 形无效,步骤3724。

图38举例说明了用于对体积特征执行编辑回调的方法,所述体 积特征本身选择性地去移除孩子编辑回调。此子方法包括利用几何 建模器接口注册元性质移除孩子回调类方法,所述几何建模器接口 要在发生特征移除孩子事件时被调用,步骤3804;将第二元性质属 性实例附加到体积特征上,步骤3806;从几何建模器接口接收指定 了体积特征、体积对象以及第二元性质属性的移除孩子回调,步骤 3808;从第二元性质属性来获取指针值并且反引用所述指针值来定 位第二元性质对象,步骤3810;并且在第二元性质对象中调用移除 孩子回调。后者的子步骤包括:获取第二点集保存性质实例,步骤 3812;从第二点集保存性质实例来获取第二点集保存性质策略实 例,步骤3814;利用体积特征和体积几何对象来启动第二点集策略 对象的移除孩子回调方法。后者的子步骤包括:从体积单元移除点 集保存性质,步骤3816;获取特征反向指针性质实例,步骤3818; 从特征反向指针性质实例来获取第二聚合反向指针性质策略实例, 步骤3820;并且利用体积特征、体积几何对象以及体积特征反向指 针性质,来启动第二聚合反向指针性质策略实例的移除孩子回调方 法。后者的子步骤包括:启动对由特征反向指针性质实例标识的体 积特征几何对象的移除孩子通知调用。此后者的子步骤包括:启动 对体积特征对象的体积特征聚合主顾的调用,以便使体积特征对象 的几何结构有效,步骤3822;以及启动对体积特征对象的体积特征 聚合主顾的调用,以便使体积特征对象的图形无效,步骤3824。

图39举例说明了对表面体积的编辑回调的执行,其与体积特征 的方法(上面描述的)类似。具体来讲,为表面特征执行编辑回调的 步骤包括利用几何建模器接口注册元性质合并回调类方法,所述几 何建模器接口要在发生表面合并事件时被调用,步骤3904;将第一 元性质属性附加到由表面特征包含的至少一个表面对象上,步骤 3906;从几何建模器接口接收指定第一表面对象、第二表面对象以 及曲线对象的回调,其中所述曲线对象原先限制第一和第二表面并 且已经从所述模型以及元性质属性中移除,步骤3908;从几何建模 属性获取指针值并且反引用所述指针值来定位第一元性质对象,步 骤3910;并且在所述第一元性质对象中调用合并回调。后者的子步 骤本身包括:获取第一点集保存性质实例,步骤3912;从所述性质 实例来获取第一点集保存策略实例,步骤3914;以及利用点集保存 性质实例、第一体积对象、第二体积对象以及曲线对象,对点集保 存策略实例启动第一合并回调。后者的子步骤包括:获取第一表面 对象的包含特征,步骤3916;并且利用包含特征和第二表面对象在 几何建模器接口上启动特征移除孩子更新,步骤3918;获取单元反 向指针性质实例;从单元反向指针性质实例来获取聚合反向指针性 质策略实例,步骤3920;并且利用单元反向指针性质实例、第一表 面对象、第二表面对象和曲线对象,对聚合反向指针性质策略实例 启动第二合并回调。后者的子步骤包括:从单元反向指针性质实例 来获取表面几何结构单元对象,步骤3922;并且启动对表面几何单 元对象的单元合并。后者的子步骤本身包括:启动对表面几何单元 对象的表面单元聚合主顾的调用,以便使第一表面的图形无效,步 骤3924。

最后,图40举例说明了执行表面特征的特征移除回调的步骤, 其中所述方法包括利用几何建模器接口注册元性质移除孩子回调类 方法,所述几何建模器接口要在发生特征移除孩子事件时被调用, 步骤4004;将第二元性质属性实例附加到表面特征,步骤4006;从 几何建模器接口接收移除用于指定表面特征、表面对象以及第二元 性质属性的孩子回调,步骤4008;从第二元性质属性来获取指针值 并且反引用所述指针值来定位第二元性质对象,步骤4010;并且利 用依照第二元性质属性、表面特征以及表面几何对象,来第二元性 质对象中调用移除孩子回调。后者的子步骤包括:获取第二点集保 存性质实例,步骤4012;根据第二点集保存性质实例来获取第二点 集保存性质策略实例,步骤4014;利用表面特征和表面几何对象来 启动第二点集策略对象的移除孩子回调方法。后者的子步骤本身包 括:从表面单元移除点集保存性质,步骤4016;获取特征反向指针 性质实例,步骤4018;从特征反向指针性质实例来获取第二聚合反 向指针性质策略实例,步骤4020;并且依照表面特征、表面几何对 象以及表面特征反向指针性质来启动第二聚合反向指针性质策略实 例的移除孩子回调方法。后者的子步骤本身包括:启动对由特征反 向指针性质实例标识的表面特征几何对象的移除孩子通知调用。此 后者的子步骤本身包括:启动对表面特征对象的表面特征聚合主顾 的调用,以便使表面特征对象的几何结构无效,步骤4022;并且启 动对表面特征对象的表面特征聚合主顾的调用,以便使表面特征对 象的图形无效,步骤4024。

因此,本发明适合于执行所述对象并且实现所提及的目标和优 点,以及其中固有的其他权益。虽然已经描述了本发明,并且所述 描述是通过参考本发明特定的实施例来限制的,但是,这种参考不 暗指对本发明的限制,并且也不会推断出这种限制。本发明可以在 形式和/或功能方面进行相当大的修改、更替、变化以及等价物置 换,正如本领域技术人员将想到的。所述描述的以及说明的本发明 的实施例仅仅是示范性的,而不是本发明的范围的穷举。因此,本 发明仅仅由所附权利要求书的精神和范围来限定,所述权利要求书 给出了在各个方面的等价物的完全的认定。

相关申请

此申请是于2001年7月31日申请的、申请号为60/308,915的 临时美国申请的转换(conversion),本申请根据35U.S.C.120的 规定要求了该篇申请的优先权。

高效检索全球专利

IPRDB是专利检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,专利查询、专利分析

电话:13651749426

侵权分析

IPRDB的侵权分析产品是IPRDB结合多位一线专利维权律师和专利侵权分析师的智慧,开发出来的一款特色产品,也是市面上唯一一款帮助企业研发人员、科研工作者、专利律师、专利分析师快速定位侵权分析的产品,极大的减少了用户重复工作量,提升工作效率,降低无效或侵权分析的准入门槛。

立即试用