选择对象集的视点的制作方法

文档序号:14721794发布日期:2018-06-17 17:19阅读:148来源:国知局

本发明涉及计算机程序及系统领域,尤其是一种用于选择对象集的视点的方法、系统及程序。



背景技术:

市场上提供了用于对象的设计、工程及制造的若干系统及程序。CAD为计算机辅助设计的缩写,例如它涉及用于设计对象的软件解决方案。CAE为计算机辅助工程的缩写,例如它涉及用于仿真未来产品的物理行为的软件解决方案。CAM为计算机辅助制造的缩写,例如它涉及用于定义制造过程及操作的软件解决方案。在此类计算机辅助设计系统中,图形用户界面对于该技术的效率起着重要作用。这些技术可以嵌入产品生命周期管理(PLM)系统中。PLM是指一种经营策略,其跨越扩展企业的概念,帮助公司共享产品数据、应用共同过程、并利用从概念至生命结束的产品开发的企业知识。

由达索系统公司提供的PLM解决方案(商标为CATIA、ENOVIA和DELMIA)提供了组织产品工程知识的工程中心、管理制造工程知识的制造中心、和使企业能够集成并连接入工程中心及制造中心的企业中心。所述系统一起传递开放的对象模型链接产品、过程、资源,以使能驱动优化的产品定义、制造准备、生产及服务的动态的、基于知识的产品创造及决策支持。

在CAD系统中,用户处理包括成千上万对象的对象组件。在这方面,对于易于将组件的视图的中心定到特定区且具有特定朝向,用户遇到了困难。对此问题的一种公知解决方案是在3D场景中提供具有X、Y、Z方向以及所加载的组件的全局参考系:能够根据用户动作转动所述全局参考系,关于组件的视点跟随所述参考系的转动。用户因而能够改变关于组件的视图。另一公知的解决方案是在模型的特定面上提供摄像头校准的工具。

然而,这些解决方案未提供快速访问以校准关于所述组件的特定区域的视点。通常,用户不得不在3D场景中手动改变第一视点,并接着指向正确位置。另外,这些解决方案是非专用的,并且未提供具有最小用户交互的关于大型组件的专用区域的准确视图。

在此上下文内,仍然存在改进选择关于大型组件对象的视点的需要。



技术实现要素:

因此提供了一种计算机实现的用于选择包围盒内对象集的视点的方法。所述包围盒包括其中围有所述对象集的至少一个体。所述方法包括识别所述至少一个体的面,将每个识别的面与关于所述对象集的视点关联,根据用户动作而选择与一个视点关联的所述面中的一个面,并根据与所选择的面关联的视点显示所述对象集的视图。

所述方法可以进一步包括:

-识别所述至少一个体的面包括:确定所述至少一个体的轮廓;识别所述轮廓内部的一个或多个可视面;以及识别与轮廓的至少一部分关联的一个或多个不可视面;

-选择所述面中的一个面的步骤进一步包括:检测在轮廓的部分的给定距离处的用户动作;选择与在其附近检测到用户动作的轮廓的部分关联的不可视面;

-所述包围盒与所述至少一个体为矩形长方体、立方体中的一个;

-在识别所述至少一个体的面之前,步骤有:提供形成组件的对象集,所述集的对象是三维建模对象,所述组件为三维建模组件;计算所述三维建模组件的简化视图,所计算的简化视图为用减小的比例表示所述组件并形成一单个网格的一个三维对象的视图;显示所述简化视图,所述至少一个体在所述简化视图上表现,并围有所述简化视图的三维建模的表示;

-计算所述三维建模组件的简化视图的步骤包括:将变换矩阵与三维建模对象的组件关联,所述变换矩阵表示所述组件的三维建模对象的信息集;以及根据所述变换矩阵和组件来计算所述简化视图,所述计算的简化视图为用减小的比例表示所述组件并形成一单个网格的一个三维对象的视图;

-由所述变换矩阵表示的信息集至少包括:三维场景中所述对象的朝向(x,y,z),所述朝向使用三维场景的全局朝向;比例因子;以及所述三维场景中三维建模对象的位置;

-所述简化视图是在与在其中显示了所述对象集的视图的三维场景不同的三维场景中显示的;

-在表示至少一个体的简化视图上完成选择与一个视点关联的所述面中的一个面的步骤。

进一步提供了一种包括用于执行上述方法的指令的计算机程序。

进一步提供了一种计算机可读介质,其具有记录在其上的所述计算机程序。

进一步提供了一种系统,包括与耦接到存储器的处理器和图形用户界面,所述存储器具有记录在其上的所述计算机程序。

附图说明

现在将通过非限制性示例并参考附图描述本发明的实施例,其中:

-图1显示了所述方法的示例的流程图;

-图2和3显示了用于提供一组包围盒的方法的流程图;

-图4显示了显示围有对象的包围盒的示例的流程图;

-图5显示了3D建模对象的3D建模组件的视图的示例;

-图6显示了系统的图形用户界面的示例;

-图7、8a和8b显示了围有对象的包围盒的示例;

-图9a-b显示了选择包围盒的隐藏面的示例;以及

-图10显示了用于执行本发明的系统的示例。

具体实施方式

参考图1的流程图,提出了一种计算机实现的用于选择包围盒内对象集的视点的方法,该包围盒包括其中围有对象集的至少一个体。对象可以是三维(3D)建模对象,组件可以是3D建模组件。方法包括识别所述至少一个体的面。方法进一步包括将每个识别的面与对象集的视点关联。视点(即观察点)各面均不同。方法还包括选择与一个视点关联的面中的一个面。该选择一般由用户执行。所述方法还包括根据与所选择的面关联的视点显示所述对象集的视图。

这一方法改进了对关于对象的大型组件的视点的选择。实际上,用户能够利用将一个组件划分为区(即,划分成包围体)以选择一个试点。特别地,用户在不改变当前视点的情况下具有对所有相关视点的访问;他仅需要选择围有对象的组件的一些对象的包围盒中的一个的一个面。因此,因为为了获取显示好视图而不必执行视图变化,因此节约了计算资源;实际上,用户具有了对所有体可视性,且一眼就能访问所有体。

该方法是计算机实现的。这意味着该方法的步骤(或基本上所有步骤)是由至少一个计算机或任意类似的系统执行的。因此,该方法的步骤是由所述计算机可能全自动或半自动地执行的。在示例中,可以通过用户-计算机交互执行触发该方法的至少一些步骤。所需的用户-计算机交互水平可以取决于所预见的自动化水平,并与实现用户意愿的需求平衡。在示例中,这一水平可能是用户定义和/或预定义的。

例如,可以根据用户动作而触发提供3D建模对象的步骤(图1的S100)。作为另一示例,还根据用户动作执行选择步骤S140、S150。

该方法的计算机实现的典型示例是利用适配于此目的的系统来执行该方法。该系统可以包括耦接到存储器的处理器和图形用户界面(GUI),该存储器具有记录在其上的包括用于执行该方法的指令的计算机程序。存储器还可以存储数据库。存储器是适配于此类存储的任意硬件,可包括数个物理不同的部件(例如,一个用于程序,并且一个可用于数据库)。

在本发明的方法中,能够在存储器上存储3D建模对象的组件的对象。所计算的包围盒还可以存储在该存储器上。

“数据库”,意指为搜索和取回而组织的任意数据(即信息)的集合。当存储在存储器上时,数据库允许由计算机快速搜索和取回。数据库的结构实际上便于结合各种数据处理操作而存储、取回、更改和删除数据。该数据库可以由能够拆分为记录的文件或文件集构成,其中每个记录由一个或多个字段构成。字段为数据存储的基本单位。用户可以主要通过查询而取回数据。使用关键词和排序命令,用户能够根据所使用的数据库管理系统的规则来在许多记录中快速搜索、重排、分组和选择字段,以取回或创建关于特定数据的聚合的报告。

该方法总体上操纵建模对象,例如表示诸如部件或部件的组件之类的产品,或可能是产品的组件。建模对象是由数据库中存储的数据所定义的任意对象。通过扩展,“建模对象”这一表述指定数据本身。根据系统的类型,建模对象可以由不同种类的数据定义。系统可实际上是CAD系统、CAE系统、CAM系统、PDM系统和/或PLM系统的组合。在那些不同的系统中,建模对象是由对应的数据定义的。人们可以由此谈及CAD对象、PLM对象、PDM对象、CAE对象、CAM对象、CAD数据、PLM数据、PDM数据、CAM数据、CAE数据。然而,这些系统并不互相排斥,这是因为建模对象可以是由对应于这些系统的任意组合的来定义的。系统因而可以是CAD和PLM系统两者,如根据下面提供的此类系统的定义而显而易见的。

CAD系统,意指至少适配于基于建模对象的图形表示来设计该建模对象的任意系统,例如CATIA。在此情况下,定义建模对象的数据包括允许建模对象的表示的数据。CAD系统可以例如使用边或线,在一些情况下利用面或表面,来提供CAD建模对象的表示。线、边或表面可以以各种方式表示,例如非一致性理性B样条(NURBS)。特别地,CAD文件包含规范,根据规范可以生成几何,进而允许生成表示。建模对象的规范可以存储在单个CAD文件或多个CAD文件中。表示CAD系统中建模对象的文件的典型大小在每部件一兆字节的范围内。并且建模对象通常可以是具有成千上万部件的组件。

在CAD的上下文中,建模对象通常可以是3D建模对象,即表示诸如部件或部件的组件的产品,或可以是产品的组件。“3D建模对象”意指由允许其3D表示的数据而建模的任意对象。3D表示允许从所有角度对该部件的观察。例如,当被3D表示时,可以处理3D建模对象并绕其任意轴转动,或绕着在其上显示该表示的屏幕中的任意轴转。这明显排除了非3D建模的2D图标。3D表示的显示便于设计(即,加快了统计上设计师完成其任务的速度)。这加速了工业中的制造过程,因为产品的设计是制造过程的一部分。

CAD系统可以是基于历史的。在此情况下,建模对象是进一步由包括几何特征的历史的数据来定义的。建模对象可以实际上由物理的人(即,设计者/用户)使用标准的建模特征(例如,模压、外卷、切割和/或圆角等)和/或标准的表面处理特征(例如,刮模、接合、放样、填充、变形、平滑和/或等)来进行设计。许多支持此类建模功能的CAD系统是基于历史的系统。这意味着设计特征的创建历史通常由通过输入及输出链接将所述几何特征链接在一起的非循环数据流保存。自80年代起,基于历史的建模范例就是公知的。建模对象由两个持久的数据表示来描述:历史和B表示(即界限表示)。B表示为历史中所定义的计算的结果。当表示建模对象时在计算机屏幕上所显示的部件的形状是B表示(的棋盘格)。该部件的历史是设计意图。基本上,所述历史收集了关于该建模对象所经历的操作的信息。B表示可以与历史一起保存,以使得更易于显示复杂部件。历史可以与B一起保存以便允许根据所述设计意图的部件的设计变化。

PLM系统意指适配于对表示物理制造的产品的建模对象的管理的任意系统。在PLM系统中,建模对象因而是由适于制造物理对象的数据来定义的。这些通常可以是尺寸值和/或公差值。对于对对象的正确制造,实际上具有此类值是更好的。

CAM代表计算机辅助制造。CAM解决方案意指适配于对产品的制造数据进行管理的任意解决方案、软件或硬件。制造数据总体上包括与要制造的产品、制造过程和所需资源有关的数据。CAM解决方案用于计划和优化产品的整个制造过程。例如,它能够给CAM用户提供关于可行性、制造过程的持续时间或资源数目的信息,例如特定机器人,这些信息可以在制造过程的特定步骤使用;并且因此允许关于管理或所需投资的决策。CAM为CAD过程和潜在的CAE过程之后的过程。此类CAM解决方案由达索系统公司以商标来提供。

CAE代表计算机辅助工程。CAE解决方案意指适配于对建模对象的物理行为进行分析的任意解决方案、软件或硬件。一种公知且广泛使用的CAE技术为有限元素法(FEM),其通常涉及将建模对象划分为能够通过方程计算并仿真的物理行为的元素。此类CAE解决方案由达索系统公司以商标来提供。另一种发展中的CAE技术涉及对由来自不同物理领域的多个组件(而不是CAD几何数据)所构成的复杂系统的建模与分析。CAE解决方案允许仿真并且因此优化、改进和验证要制造的产品。此类CAE解决方案由达索系统以商标来提供。

PDM代表产品数据管理。PDM解决方案意指适配于管理与特定产品有关的所有类型的数据的解决方案、软件或硬件。PDM解决方案可以由产品的生命周期中涉及的所有参与者使用;主要是工程师,也包括项目经理、财务人员、销售人员和买家。PDM解决方案总体上是基于面向产品的数据库的。它允许参与者共享关于其产品的一致的数据,并且因此防止参与者使用分歧的数据。此类PDM解决方案由达索系统公司以商标来提供。

有趣的是,本发明不限于CAD/CAE/CAM/PDM或PLM系统,并且它能用于使用对象的3D表示的任意系统,并可以对非CAD用户专用,例如用于执行技术说明、维护或培训操作的系统、组件展示、诸如交互部件目录的交互应用程序、设计/创作系统……。应当理解建模对象可以由不同种类的数据定义。

图6显示了用于执行技术说明的系统的GUI示例。本方法能够用于任意种类的GUI。

GUI100可以是典型的类似CAD的界面,具有标准的菜单栏110、120以及底部工具栏140和侧工具栏。如本领域公知的,此类菜单栏及工具栏包含用户可选的图标集,每个图标与一个或多个操作或功能关联。这些图标中的一些与适配于编辑和/或针对GUI100内显示的3D建模对象200进行操作的软件工具关联。应当理解3D建模对象200为3D建模对象的3D建模组件。软件工具可以合成为工作台。每个工作台包括软件工具的子集。特别地,工作台中的一个为编辑工作台,适于编辑建模产品200的几何特征。在操作中,设计者可以例如预先选择对象200的部件,并接着发起操作(例如,增加注释以完成技术说明)。作为另一示例,设计者可以预先选择对象200的部件,并接着通过选择适当的图标来编辑几何约束。例如,典型的CAD操作为对在屏幕上显示的3D建模对象的冲孔或折叠进行建模。

GUI100可以进一步显示各种类型的图形工具130、150,例如用于便于所述对象的3D定向、用于触发对所编辑的产品的操作的仿真或渲染所显示的产品200的各种特质。光标160可以由触觉设备控制以允许用户与所述图形工具交互。

图10显示了系统的示例,其中该系统为客户端计算机系统,例如用户的工作站。

该示例的客户端计算机包括连接到内部通信总线1000的中央处理单元(CPU)1010、也连接到总线的随机存取存储器(RAM)1070。客户端计算机进一步具有图形处理单元(GPU)1110,其与连接到总线的视频随机存取存储器1100关联。视频RAM1100在本领域中也称作帧缓冲器。大容量存储设备控制器1020管理对诸如硬盘驱动1030的大容量存储设备的访问。适于有形地实施计算机程序指令及数据的大容量存储设备包括各种形式的非易失性存储器,举例来说包括半导体存储器设备,例如EPROM、EEPROM和闪速存储器设备;诸如内部硬盘和可移除盘的磁盘;磁光盘;以及CD-ROM盘1040。前述的任一可以由特别设计的ASIC(特定用途集成电路)提供或并入其。网络适配器1050管理对网络1060的访问。客户端计算机还可以包括触觉设备1090,例如光标控制设备、键盘等。光标控制设备用于客户端计算机中以允许用户选择性地将光标定位在显示器1080上任意期望的位置。另外,光标控制设备允许用户选择各种命令并输入控制信号。光标控制设备包括用于到系统的输入控制信号的若干信号生成设备。通常,光标控制设备可以是鼠标,鼠标的按钮用于生成信号。替代或另外地,客户端计算机系统可以包括触敏垫和/或触敏屏。

所述计算机程序可以包括可由计算机执行的指令,该指令包括用于使上述系统执行所述方法的单元。程序可记录在任意数据存储介质上,包括系统的存储器。程序可以例如以数字电子电路、或以计算机硬件、固件、软件或其组合实现。程序可以实现为装置,例如机器可读设备中有形地实施的以供由可编程处理器执行的产品。方法步骤可以由执行指令程序的可编程处理器执行,以通过对输入数据操作并生成输出来执行该方法的功能。处理器因而可以是可编程的,并耦接以从数据存储系统、至少一个输入设备和至少一个输出设备接收数据及指令并向其传送数据及指令。应用程序可以以高级面向过程或面向对象编程语言、或以汇编或机器语言实现。无论如何,语言可以是编译或解释语言。程序可以是完全安装程序或更新程序。无论如何,程序在系统上的应用导致用于执行该方法的指令。

现在参考图1。在步骤S100,在3D场景中提供形成3D建模组件的3D建模对象。提供3D建模对象意味着该对象对执行本方法的系统是可用的。该3D建模对象可以显示在例如图10的系统的显示器1080上。

图5显示了3D建模对象的3D建模组件的示例:此处对自行车进行了建模。图6显示了在GUI100上显示的图5的自行车200。在3D场景内显示了3D建模组件。3D场景为在其中描述了3D对象之间空间关系的空间,例如形成自行车的3D建模对象在3D场景中的位置与朝向。

接下来,在图1的步骤S110,计算包含3D建模组件的主包围盒(boundingbox)。该执行是本领域公知的。作为结果,步骤S100提供的全部对象被围在主包围盒中。

接着,在步骤S120,计算3D场景中的至少一个体。该体被围在步骤S110所计算的主包围盒中。所计算的体围有(enclose)所述3D建模组件的3D建模对象集。

现在参考图2和3讨论步骤S120的计算所述体的示例。

在图2的步骤S200,用户执行对在步骤S100提供的一个或多个3D建模对象的至少一个属性的选择。属性可以是诸如对象的材料参数的对象的物理属性、诸如对象的颜色的对象的渲染属性、所述3D建模组件的产品结构中对象的级别,在其上存储3D建模的数据库的属性——该数据库可以是PLM数据库、由用户根据组件的对象的任意特质创建的属性……。总体来说,术语属性能够包含对象的任意特性。例如,对象的创建日期、3D场景中对象的位置、允许对对象操作的设计者(或任意其它的读/写/执行访问权……)是与一个或多个对象有关的特质,因而是对象的属性。

接下来,在步骤S210,创建了一组3D建模对象。要理解该组能够包括一个或多个3D建模对象。该组的对象符合由用户所选择的一个或多个属性。例如,假如用户选择属性“蓝色对象”,则创建以蓝色渲染(或要以蓝色渲染)的一组对象。

当由用户选择两个或更多个属性时,一个对象可以属于数个组。在此情形下,一个对象所属于的组的数量可以是有限的;例如,一个对象不能属于多于三个的组。这有利地限制了组的数量。另外,对象的属性之间可存在优先级规则。可能属于数个组的对象将属于与具有最高优先级的属性关联的组。

现在,在步骤S220,计算两个或更多个包围盒。这些包围盒围被包含在主包围盒中;换言之,它们完全被围在主包围盒内。这些两个或更多个包围盒中的一个包括属于在步骤S210创建的组的3D建模对象。

实践中,包围盒的计算取决于3D场景中对象的位置。在示例中,通过识别加权点系统中的重心来计算包围盒。在第一步骤中,计算3D场景中的点云,其中这些点表示所创建的组的3D建模对象的轮廓。接着,针对所有的对象组接连执行该步骤,包括不属于组的对象。该点云因而包括属于组的点(例如,根据点所属于的组而赋予其特定颜色),并且给云的点加权,例如根据对象所来自的对象的体积或三角数。接下来,如本领域公知的,对于给定组的每个点,计算重心。并且接着,计算针对3D对象的组的包围盒,该包围盒使用重心而作为由该包围盒定义的体的重心。针对每个组执行该步骤。重要的是,不存在对所计算的包围盒之间的重叠或交叉的恢复。

现在参考图8a和8b,显示了在用户针对属性而选择对象的颜色后计算的包围盒的示例。用户选择四种颜色作为属性,即红、绿、黄和粉。标识出五个组以作为该用户选择的结果:第一组对应于红色的前轮80,第二组对应于绿色的后轮82,第三组为黄色的座位86,第四组为粉色的车把88,最后一组3D建模对象为自行车架90;该组是隐式创建的并且包括不符合被选择作为属性的颜色的对象。每组对象由虚线圆环绕。如图9b所示,计算了6个包围盒800、810、820、830、840、850。在此示例中,系统的要求是必须由所计算的包围盒来使用该主包围盒(未表示)所定义的整个体,以及所计算的包围盒为矩形长方体。这导致六个包围盒如图9b所示排列。有趣的是,包围盒830为空,也就是说,此包围盒中(完全或部分)未围有对象。创建包围盒830是出于遵循系统的以下两个额外要求的目的:(i)对于主包围盒的一个方向,主包围盒周围包括最多两个邻接的叠加的包围盒,以及(ii)针对主包围盒的该一个方向的两个邻接的叠加的包围盒之间的界面形成主包围盒中的层,该层限制了其它包围盒的扩展。这允许创建主包围盒的常规划分;用户能够更易于理解如何划分3D建模组件。在图8b中,叠加的包围盒的数目在(提供主包围盒的朝向的参考系860的)方向“y”上被限为二;例如对于方向“x”,情况并非如此。另外,包围盒850和800在方向“y”上创建层(未表示),并且该层不能被任意其它包围盒穿过。因此,所有其它的包围盒840、810和830、820在此层两侧。

现在参考图3,讨论了步骤S120的对体的计算的示例,其中系统自动选择三维建模组件的一个或多个属性。

在步骤S300,主包围盒围有的所计算的包围盒的数目n由系统确定。该数目n取决于所述3D建模组件的大小。术语大小意指3D建模组件关于其参照系的尺寸,也就是该3D建模组件的长、宽、高。3D建模对象的尺寸因而确定了矩形长方体或立方体包围盒的最小大小。因此,主包围盒中围有的包围盒数目能够根据3D建模组件的尺寸确定。例如,所围有的包围盒的最小大小能够根据主包围盒与围有的包围盒的大小之间的比例来确定。在实践中,该比例使得每个所围有的包围盒可易于由用户识别。

一旦确定数目n,就能够计算所围有的包围盒的尺寸。在实践中,n个包围盒也遵循以下规则:(i)对于主包围盒的一个方向,主包围盒周围包括最多两个邻接的叠加的包围盒,(ii)针对所述主包围盒的所述一个方向的两个邻接的叠加的包围盒之间的界面形成主包围盒中的层,该层限制了其它包围盒的扩展,(iii)必须由所计算的包围盒来使用由主包围盒定义的整个体,以及(iv)所计算的包围盒为矩形长方体或立方体。

图7显示了由系统确定的主包围盒所围有的包围盒的示例。主包围盒(未表示)中围有十二个立方体,这十二个包围盒具有相同的尺寸。

参考回图1,在步骤S130,识别至少一个体的面。这意味着建立了主包围盒中所围有的每个包围盒的面的列表。一个体的一个面是形成所述体的界限的一部分的、并且由至少三条边所限制的平面。例如,图7的每个立方体具有六个面,每个面由四条边定义。

对面的识别可以包括识别一个或多个可视面和识别一个或多个非可视面。如本领域广知的,在实践中,对3D场景中3D体的渲染是2D空间中的投影(显示器的像素)。而且,仅在2D空间上表示可视面。换言之,可视面为位于前方的面,而非可视面在背景中。

在步骤S132,确定该至少一个体的轮廓。该轮廓界定体的可视外轮廓线。在渲染步骤一般根据所述体的投影而获得所述体的轮廓。

例如,图9b以虚线显示了用透视图(例如,在图6的GUI100上)渲染的立方体的轮廓。

接下来,在步骤S134,识别所述轮廓内部的一个或多个可视面。此执行是本领域公知的。

在图9b,识别可视面900(数字1)、910(数字2)、920(数3)。

接着,在步骤S136,识别与所述轮廓的至少一部分关联的一个或多个非可视面。

在图9b中,所述轮廓包括六条边。每条边940、942、950、952、930、932形成轮廓的一部分,且与两个面关联:一个可视,一个不可视。图9a显示了图9b的展开立方体,其中表示出了非可视面960、970、980。属于轮廓的边940连接到可视面900和非可视面970。作为另一示例,轮廓的边932连接到可视面900和非可视面980。非可视面960连接到属于轮廓的边950和952。

因此,在所述方法的这一步骤,现在识别除了位于背景中且与轮廓的一部分关联的非可视面。能够根据用户动作选择一个可视或非可视的所识别的面。

接着,在步骤S138,用每个所识别的面来识别视点。任意视点可以与所选的面关联。使用摄像头获得视点,其为具有位置、朝向和视野的软件对象。如本领域公知的,摄像头负责显示关于组件所位于的3D场景中的体的视图。将该视点(摄像头)建模为3D对象(虚拟物理对象),该视点也与3D建模对象一同位于3D场景中。实践中,朝向3D建模对象的组件的视点的瞄准点为所选择的面的重心,且与所选择的面垂直。这确保了关于对象集的新视图位于显示器(例如,执行所述方法的系统的显示器)的中心。要理解视点的任意配置可以关联到面。总体上,类似地配置与面关联的视点,使得用户能够更易于理解作为用户选择的结果而显示的视图。而且,这限制了执行所述方法的系统上的计算资源消耗。

在步骤S140,用户选择可视面,例如图9a、9b中的可视面900。该执行是本领域公知的。例如,用户使用由鼠标控制的光标160。可以修改可视面900的渲染,以向用户指示能够根据用户对鼠标的动作而选择该可视面。

在步骤S160,显示了所选择的面的体中所包含的对象集的视图,并且该视图是根据与所选择的面关联的视点而获取的。

在步骤S150,用户希望选择不可视面中的一个。如之前看到的,不可视面在背景中,使得用户无法直接选择不可视基面。

在步骤S152,系统在轮廓的一部分的给定距离处检测到用户动作。给定距离这一表述意指值的范围。例如,用户能够将光标向轮廓的一部分移动,且当表示光标与轮廓之间距离的值属于该值的范围时,用户有可能执行与该部分相关的动作。该距离可以是但不限于,欧几里得距离、若干像素……。该距离的测量能够从/至,但不限于光标一端、光标的重心、形成成所述部分的多个像素中的一个……。该执行是本领域公知的。替代地,可以在所述部分的一侧或两侧上定义一区域,且当用户在此区域执行动作时,所述系统认为该用户动作完成。可以修改轮廓的所述部分的渲染,以便向用户指示已检测到他的用户动作,例如光标在所述区域中。

接着,在步骤S154,用户选择与在其附近检测到用户动作的轮廓的一部分相关联的非可视面。该执行是本领域公知的。例如,用户使用由鼠标控制的光标160,且当所述光标在轮廓的所述部分上时点击鼠标。

接着,如上文说明的,完成步骤S160。

能够向用户表示所计算的包围盒(主包围盒及所围有的包围盒)。例如,它们能够直接显示在3D建模组件上。

替代地,它们能够显示在3D建模组件的视图的简化视图上。为了这个目的,计算该3D建模组件的简化视图。简化视图这一表述意指从系统的角度,不根据所述组件的个体对象来划分所述视图的图形元素。这涉及例如形成图5的自行车的对象(例如车轮)在显示时无法由用户在简化视图上进行选择。换言之。在简化视图中表示的对象集不是内容可寻址的,且用户无法选择组成视图中显示的组件的任意个体对象。该用户因而看到组件的简化模型。

简化视图可以是暗白色模型,应理解可以使用任意其它颜色。颜色优选为统一的;这有利地允许将它与GUI上的原始模型区分开来,且它突出了与所提供的信息有关的对象。另外,在简化视图的表示上不施加材料或纹理。这使得简化视图的计算及渲染更快,且所需的存储器较少。

简化视图的计算可包括将变换矩阵与3D建模对象的组件关联的步骤S310。该变换矩阵表示涉及组件的3D建模对象的信息集。在此上下文中,术语关联意指将表示所述变换矩阵的数据与表示所述一个对象的数据存储在一起;所述数据能够物理地存储(例如在同一文件中)或逻辑地存储(例如在两个不同文件中,具有从一个文件到第二个文件的指针)。

如本领域公知的,所述变换矩阵目的在于提供两个空间之间的线性变换。例如,变换矩阵允许从组件的3D空间变换到简化视图的3D空间。变换矩阵允许执行的操作例如但不限于对3D空间中的组件(或对子组件、或对3D建模对象)的转换、转动、缩放。有趣的是,变换矩阵可以易于逆向,使得对简化视图的操作能够施加在组件上。

由变换矩阵表示的信息集至少包括3D场景中组件的朝向及位置。如本领域公知的,组件的朝向及位置被定义为附接于该组件的参考系(例如三轴(x,y,z)系)相对于3D场景的全局系(也称作参考系)的朝向及位置。该信息集进一步包括比例因子,其与用于获取用减小的比例表示所述组件的简化视图的比例因子相同(即,相同值)。

创建3D建模对象的组件与所述变换矩阵之间的关联,使得可以创建位于第一3D空间中的组件与位于第二3D空间中的简化视图之间的链接。有趣的是,一个变换矩阵可以与组件的每个对象关联:这意味着该组件与和组件中的对象一样多数量的转换矩阵相关联,且一个变换矩阵包括与该组件的对象中的一个的信息集有关。换言之,该组件与针对该组件的每个对象的变换矩阵关联。这有利地允许提供在简化视图与该组件之间创建的链接的准确度,这是因为所使用的粒度是对象而不是形成该组件的对象集。

接着,根据变换矩阵和3D建模对象的组件来计算简化视图。该执行是本领域公知的。所计算的简化视图为利用减小的比例(例如比例因子1/10(所述简化视图比所述对象的组件小10倍)表示该组件的3D对象(也称作简化模型)的视图。减小(reduce)比例不同于缩小(zoomout),缩小为对表示进行操控以便仅使该表示变小,而减小比例涉及在获取表示之前执行对形成所述组件的对象的变换(收缩(shrink))。

另外,所述一个3D对象(或简化模型)形成一单个网格。这意味着仅获取一个网格作为子网格的聚合,其中每个子网格为所述组件的对象的网格。因此,对聚合表示进行处理以形成接下来要渲染的视图。网格的聚合是如本领域公知的那样执行的。术语网格意指定义3D中建模对象形状的顶点、边和面的集。实践中,面可以是三角形、四边形或其它简单的凸多边形。简化视图的网格相对于组件的网格而言是简化的网格;显示简化视图所需的存储器较少。

如本领域公知的,在计算简化视图之前可以进行基于各种准则的简化,例如阈值大小(可能是用户参数化的)或垂度,即用于对象的棋盘格表示的输入参数。因此,在聚合期间无需使用所述集的全部部件(例如,如果显示整个飞机,则将放弃该飞机的铆钉)。进一步地,其它部件中包含的部件不需要在聚合中使用(因此掩去)。其它准则可以用于放弃一些对象,例如客户可选的部件目录。

有趣的是,所计算的简化视图在显示视图所需的存储器方面极为不同。实际上,虽然简化视图通常需要一些存储器资源(例如数K字节),但是包含部件的全部表示的视图可能需要将高达成千上万兆字节载入至计算机存储器。由于比例减小且计算一单个网格,所以视图的计算和渲染更快。

接着,在GUI上的3D场景内显示从计算步骤S300获取的简化视图,其中显示的简化视图与在其中显示组件的视图不同。换言之,在第一3D场景中显示3D建模对象的组件,在第二3D场景中显示3D建模对象的组件的简化视图,两个场景都显示在同一GUI上。换言之,所述简化视图显示在与显示组件的3D场景不同的3D场景中。

实践中,这是通过在GUI上显示两个窗口来执行的,如图6所示。自行车200和简化模型的简化视图300显示在同一GUI100上,但在两个不同的窗口中。窗口310显示在其中显示简化视图300的3D空间,而窗口210显示在其中显示组件200的3D空间;这两个3D空间不相同;它们有自己的全局朝向。

接下来,在简化视图上显示所计算的包围盒。利用变换矩阵来计算所述简化视图上包围盒的位置。实践中,3D场景中所述包围盒的坐标与变换矩阵之间的(数学)乘积提供在简化视图的3D场景中的所述包围盒的新坐标。例如,图7(或图8b)的自行车可以视作简化视图以及围有3D对象集的简化表示的数个体的示例,且这一简化视图可以显示在图6的窗口300中。因此,用户能够直接在简化视图上执行视点选择,且该视图显示在主窗口210中。通过这种方式,用户可以容易且直接地访问所有相关视点而无需改变当前视点;他只需在简化表示上选择所述包围盒中的一个的一个面。

描述了本发明的优选实施例。要理解可以进行各种修改,而不背离本发明的精神及范畴。因此,其它实现方式在随后的权利要求的范畴内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1