首页> 中国专利> 在三维场景中设计连接第一点到第二点的路径

在三维场景中设计连接第一点到第二点的路径

摘要

本发明提出了一种用于在三维场景中设计连接第一点到第二点的路径的计算机实现的方法。该方法包括:提供耦合有第一向量的第一点;提供耦合有第二向量的第二点;通过遵循平行六面体的最多三个部分而提供一组路径,所述平行六面体包括在第一顶点所提供的第一点和在第二顶点所提供的第二点,所述平行六面体的部分是边、面的对角线、空间对角线。

著录项

  • 公开/公告号CN104346830A

    专利类型发明专利

  • 公开/公告日2015-02-11

    原文格式PDF

  • 申请/专利权人 达索系统公司;

    申请/专利号CN201410512380.7

  • 发明设计人 G·勒雷;

    申请日2014-07-24

  • 分类号G06T17/00;G06F17/50;

  • 代理机构永新专利商标代理有限公司;

  • 代理人张晰

  • 地址 法国韦利济维拉库布莱

  • 入库时间 2023-12-17 04:19:09

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-07-16

    授权

    授权

  • 2016-07-27

    实质审查的生效 IPC(主分类):G06T17/00 申请日:20140724

    实质审查的生效

  • 2015-02-11

    公开

    公开

说明书

技术领域

本发明涉及计算机程序和系统领域,更具体地涉及用于在三维场景中设计连接第一点到第二点的路径的方法、计算机辅助系统和计算机程序。

背景技术

市场上提供有许多系统和程序以用于对象的设计、工程和制造。CAD是计算机辅助设计的首字母缩写词,例如,它涉及用于设计对象的软件解决方案。CAE是计算机辅助工程的首字母缩写词,例如,它涉及用于模拟未来产品的物理行为的软件解决方案。CAM是计算机辅助制造的首字母缩写词,例如,它涉及用于定义制造工艺和操作的软件解决方案。在这样的计算机辅助设计系统中,图形用户界面在关于技术的效率方面发挥了重要的作用。这些技术可以被嵌入到产品生命周期管理(PLM)系统中。PLM指的是贯穿延伸企业的概念帮助公司为从概念到其寿命结束的产品开发分享产品数据、应用公共工艺、以及平衡公司知识的商业策略。

由Dassault Systèmes(商标CATIA、ENOVIA以及DELMIA)提供的PLM解决方案提供了工程中心,其组织产品工程知识;制造中心,其管理制造工程知识;以及企业中心,其使得企业能够集成和连接到工程中心和制造中心。所有系统一起提供了链接产品、工艺、资源的开放对象模型,以实现动态的、基于知识的产品创造和决策支持,其推动优化的产品定义、制造准备、产品和服务。

在CAD/CAE/CAM的上下文中,设计产品可以包括设计两点之间的路由。设计路由通常被执行用于诸如以下的操作:装管以路由管道、装管以路由管件、HVAC(供暖、通风和空调)以路由通风管道、装电缆以路由电缆、装轨道以路由路由托盘。路由的设计通常是为了工业产品(诸如汽车、建筑物、船舶、飞机)而完成,并且这些工业产品导致所设计的路由是现实的。由于工业产品的规则形状,所以路由通常是连续的以规则角度和标准弯曲半径连接的直部。例如,建筑物包括通常以法角相互连接的墙壁。因此墙壁是当设计通风管道路由时需要考虑的约束:例如,该路由将遵循沿着墙壁的路径。

一些CAD系统包括管件和管道设计能力,或者提供这些能力的插件可以被安装在CAD软件中。然而,现有的解决方案有若干缺点。首先,它们并不帮助设计者用正确的输入快速选择正确的路径。特别地,在解决方案是唯一的一条线的情况中,设计者不能以正确的精度检查与上下文的冲突。此外,设计者查核所有的解决方案可能需要花费时间,这是因为解决方案被逐个示出。此外,不可行的解决方案被示出:不可行的解决方案是一种不现实的解决方案。例如,遵循同一墙壁的三个部分的通风管道路由被认为是不可行的解决方案,因为这种解决方案在真实世界中是不现实的。

在这个上下文中,仍然需要用于在三维场景中设计连接第一点到第二点的路由的改进方法。

发明内容

根据一个方面,本发明因此提供了一种用于在三维场景中设计连接第一点到第二点的路径的计算机实现的方法,包括:

-提供耦合有第一向量的第一点;

-提供耦合有第二向量的第二点;

-通过遵循平行六面体的最多三个部分而提供一组路径,所述平行六面体包括在第一顶点所提供的第一点和在第二顶点所提供的第二点,所述平行六面体的部分是边、面的对角线、空间对角线。

所述方法可以包括以下的一个或多个:

-所述第一顶点和第二顶点在平行六面体的相对面上,所述一组路径包括:一个路径,其包括由连接所述第一点和第二点的空间对角线组成的一个部分;六个路径,其包括具有平行六面体的公共顶点的两个部分,一个部分是平行六面体的面的对角线,该对角线包括所述第一点或第二点,以及一个部分是边;六个路径,其包括三个连续的部分,每个部分是边。

-所述第一顶点和第二顶点属于同一面,所述一组路径包括:一个路径,其包括是第一顶点和第二顶点所属的面的对角线的一个部分;两个路径,包括两个连续的部分,每个部分是边。

-在三维场景中关于以下定向之一来定向所述平行六面体:三维场景的全局定向的一个方向,由第一向量所提供的方向,由第二向量所提供的方向。

-提供连接用于连接第一点和第二点的路径的至少两个部分的弯曲半径;

-在提供弯曲半径后:为一组路径的每个路径根据弯曲半径计算连接所述第一点和第二点到路径的平行六面体;

-为一组路径的每个路径计算平行六面体包括:通过以下步骤计算第一顶点的新位置和第二顶点的新位置:

-计算所述第一点和所述第一顶点之间的距离D1,使得D1=BendRadius×(sinα1),其中Bend Radius是所提供的弯曲半径的值,以及α1是第一向量的方向和连接第一顶点的路径的部分之间的角度;

-计算所述第二点和所述第二顶点之间的距离D2,使得D2=BendRadius×(sinα2),其中Bend Radius是所提供的弯曲半径的值,以及α2是第二向量和连接第二顶点的路径的部分之间的角度;

-计算所述路径的每个边的长度(L),确定所述长度(L)使得L≥BendRadius×(sinαx+sinαy),其中Bend Radius是所提供的弯曲半径的值,αx是所述路径的所述每个边和所述路径的共享所述路径的所述每个边的第一公共顶点的另一部分之间的角度的值或者所述路径的所述每个边和所述第一向量的方向之间的角度的值,以及αy是所述路径的所述每个边和所述路径的共享所述路径的所述每个边的第二公共顶点的另一部分之间的角度的值或者所述路径的所述每个边和所述第二向量的方向之间的角度的值;

-所述平行六面体的一个或多个部分形成连接所述第一点到所述第二点的折线;

-提供工业产品的截面的尺寸;沿折线形成形状,其中该折线是该截面的中心;

-提供耦合有第一向量的第一点包括:在三维场景中放置第一三维对象,该第一向量在三维场景中定向该三维对象;提供耦合有第二向量的第二点包括:在三维场景中放置第二三维对象,该第二向量在三维场景中定向该三维对象;

-显示所提供的一组路径的每个路径的预览;以及突显该预览的一个以显示连接第一个点到第二点的路径。

本发明进一步提出一种包括由计算机执行的指令的计算机程序,该指令包括用于执行以上所述方法的模块。

本发明进一步提出一种计算机辅助设计系统,其包括图形用户界面和耦合到存储器的处理器,该存储器具有记录在其上的上述计算机程序。

本发明进一步提出一种三维对象,其沿着通过上述方法获得的路径被路由。

本发明进一步提出一种计算机可读存储器介质,其上记录有上述计算机程序。

附图说明

通过非限制性例子的方式并参照附图描述本发明的实施例,其中:

-图1示出了遵循路由的折线的示例;

-图2示出了平行六面体的示例;

-图3示出了路径的示例;

-图4-16示出了路径的示例;

-图17示出了冲突检测的示例;

-图18示出了一组路径在同一个面上的示例;

-图19示出了路径的对角线部分的几个角度的示例;

-图20示出了其中该组路径中的一个或多个路径被移除的情形;

-图21-25示出了解决方案的显示的示例;

-图26-28示出了图示本发明的方法的示例的流程图;

-图29示出了CAD系统的图形用户界面的示例;

-图30示出了CAD系统的结构的示例;以及

-图31示出了为每一路径计算新的平行六面体的示例。

具体实施方式

参照图26-28的流程图,提出了一种用于在三维场景中设计连接第一点到第二点的路径的计算机实现的方法。路径是通过但不限于直线、弧线、曲线等连接的一组点。路径可以通过折线来表示(也被称为多边链),其包括连接的一系列线段。所述一组点包括至少两个点,也就是第一点和第二点。第一点也可以被称为起始点,且第二点也可以被称为终点。该方法包括提供耦合有第一向量的第一点以及提供耦合有第二向量的第二点。向量是具有幅度(或长度)、方向和定向的几何对象。例如,向量通常由具有限定定向的线段表示,或图形表示为连接初始点A与终端点B的箭头。因此,第一向量和第二向量分别提供第一点和第二点在3D场景中的定向。该方法进一步包括通过遵循平行六面体的最多三个部分提供一组路径。换句话说,提供连接第一点和第二点的一组路由。该平行六面体包括在它的一个顶点上的每一条路径的第一点,即第一顶点,以及在它的一个顶点上的每一条路径的第二点,即第二顶点。但是应当理解的是,第一定点和第二顶点是不同的;也就是,第一点和第二点并不位于平行六面体的同一顶点上。平行六面体的一部分的意思是边、面的对角线、空间对角线。

这种方法高度地改进了为诸如管道、管件、HVAC、布线等操作连接两点的路由的设计,其中其后跟随建模工业产品(如管道、管件、通风管道、电缆)的路由需要遵守在3D场景中模拟的真实世界的物理规则和标准。首先,该方法提高工效:确实,为了跟踪路径使用平行六面体的部分允许容易地获得连接两点的所有可能的路径,也就是说,所有可能的解决方案可以一次提出给设计者。一种理解是设计者可以容易地在所有可能的解决方案中选择保留的解决方案。此外,使用平行六面体作为路径的支持提供了模拟真实世界条件的有效方式:确实,路径被跟踪用于工程上下文(例如,汽车工程、航空器工程、轮船工程、电子工程…),其中在其中工业产品被路由的环境主要包括以标准角度(例如45°、60°、90°)互相连接的平面(例如墙壁)。例如,在建筑物中的电缆遵循垂直路径来提供到每层的电力,并遵循水平路径来在每层的每个公寓分布电力。此外,因为路径是从平行六面体的部分获得的,所以能更容易地提供给设计者在真实世界中可接受的解决方案:例如,可以决定遵循多于三个边的路径是不可接受的,因为它将涉及沿着该路径路由的浪费的工业产品(例如,管件、管道、通风管道、电缆)。另外,因为该提出的解决方案是在真实世界中可接受的解决方案,所以由于无效的解决方案不需要被计算因而使用更少的计算机资源。此外,通过使用平行六面体的部分计算路径降低了获取所有解决方案的总体时间,因为平行六面体的部分在多个解决方案之间被共享,并且因此用于一个部分的一次计算可以被重新利用。

该方法是计算机实现的。这意味着该方法的步骤(或实质上所有的步骤)由至少一个计算机执行。在示例中,该方法的至少一些步骤的触发可以通过用户计算机的交互执行。所需要的用户计算机的交互水平可以取决于自动化预见的水平并与实现用户的希望的需求平衡。在示例中,这个水平可以是用户定义和/或预先定义的。

例如,提供分别耦合有第一向量和第二向量的第一点和第二点的步骤可以基于用户动作执行,例如设计者可以使用诸如鼠标的触觉设备在三维场景中输入两个点,并可以通过对向量所位于的参考系的图形表示进行定向来提供每个向量的值(例如参考系的原点为向量的原点)。点的方向也可以由显示在3D场景上的向量表示,并且用户为了修改该点的方向而可以在向量的图形表示上动作。

该计算机实现的方法的一个典型示例是使用适于这个目的的包括图形用户界面(GUI)的系统执行该方法。该GUI与存储器和处理器耦合。储存数据库的存储器仅仅是适于这种存储的任何硬件。这样的系统改进了在三维场景中连接第一点到第二点的路径的设计。

通过“数据库”,它意味着为搜索和取回而组织的任何数据(例如,信息)集合。当被储存在存储器中,数据库允许通过计算机快速搜索和取回。数据库被真正地构建为结合各种数据处理操作促进数据的储存、取回、修改、以及删除。数据库可以包含文件或一组文件,其可以被分解成记录,其每一个包括一个或多个字段。字段是数据储存的基本单元。用户可以主要通过查询取回数据。使用关键字和排序命令,用户可以根据使用的数据库管理系统的规则在许多记录中快速地搜索、重排、分组、以及选择字段以取回或创建特定数据聚合的报告。

在该方法的情形下,数据库可以储存三维建模对象。第一三维建模对象可以提供耦合有第一向量的第一点,并且第二三维建模对象可以提供耦合有第二向量的第二点。数据库还可以储存耦合有第一向量的第一点和耦合有第二向量的第二点。

该方法可以一般地操纵建模对象。建模对象是由储存在数据库中的数据定义的任意对象。通过扩展,表述“建模对象”指定数据自身。根据系统的类型,建模对象可以由不同种类的数据定义。该系统实际上可以是以下项的任意组合:CAD系统、CAE系统、CAM系统、和/或PLM系统。在那些不同的系统中,建模对象由相应的数据定义。可以相应地称为:CAD对象、PLM对象、CAE对象、CAM对象、CAD数据、PLM数据、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-rep(即边界表示)。B-rep是在历史中定义的计算的结果。当建模对象被表示时显示在计算机的屏幕上的部件的形状是B-rep(的棋盘花纹)。部件的历史是设计意图。基本上,历史收集关于建模对象已经经历的操作的信息。B-rep可以和历史一起被保存,以使得更容易地显示复杂部件。历史可以与B-rep一起被保存以便允许根据设计意图改变部件的设计。

CAM代表计算机辅助制造。通过CAM解决方案,它意味着任何解决方案、硬件的软件,适于管理产品的制造数据。制造数据一般包括与要制造的产品、制造过程和需要的资源有关的数据。CAM解决方案被用于计划和优化产品的整个制造过程。例如,它可以向CAM用户提供关于可行性的信息、制造过程的持续时间或资源号码,诸如特定的机器人,其可以被用在制造工程的特定步骤上;并且因而允许关于管理或需哟啊的投资的决策。CAM是CAD过程和潜在的CAE过程后的后续过程。这样的CAM解决方案由Dassault Systèmes以商标提供。

CAE代表计算机辅助工程。通过CAE解决方案,它意味着任何解决方案、硬件的软件,适于分析建模对象的物理行为。众所周知并广泛使用的CAE技术是有限元法(FEM),其通常涉及将建模对象划分为通过方程可以计算和模拟其物理行为的元素。这样的CAE解决方案由Dassault Systèmes以商标提供。另一种成长的CAE技术涉及建模和分析由源自不同物理字段而不具有CAD几何数据的多个组件组成的复杂系统。CAE解决方案允许模拟、以及因此优化、改进和验证待制造的产品。这样的CAE解决方案由Dassault Systèmes以商标提供。

PDM代表产品数据管理。通过PDM解决方案,它意味着任何解决方案、硬件的软件,适于管理有关特定产品的所有类型的数据。PDM解决方案可以被涉及产品生命周期的所有行动者使用:初级工程师也包括项目管理者、金融人士、销商人士和购买者。PDM解决方案一般地基于产品定向的数据库。它允许行动者共享他们产品的一致数据并因此避免行动者使用不一致的数据。这样的PDM解决方案由Dassault Systèmes以商标提供。

图29示出了系统的图形用户界面(GUI)的示例,其中该系统可以是但并不限于CAD系统。

GUI2100可以是典型的类CAD界面,具有标准菜单栏2110、2120,以及按钮和侧边工具栏2140、2150。这样的菜单和工具栏包括一组用户可选择的图标,每个图标关联于一个或多个操作或功能,如在现有技术中已知的。这些图标中的一些关联于软件工具,适合于编辑和/或工作显示在GUI2100中的3D建模对象2000。软件工具可以被在工作台中分组。每个工作台包括软件工具的子集。特别地,工作台之一是编辑工作台,适于编辑建模产品2000的几何特征。在操作中,设计者可以例如预先选择对象2000的一部分并然后开始操作(例如,改变维度、颜色,等等),或者通过选择合适的图标编辑几何约束。例如,典型的CAD操作是对显示在场景中的3D建模对象的穿孔或折叠进行建模。

GUI可以例如显示有关于所显示的产品2000的数据2500。在图29的示例中,数据2500被显示为“特征树”,并且它们的3D表示2000属于包括刹车钳和圆盘的刹车总成。GUI可以进一步示出各种类型的图形工具2130、2070、2080,例如用于促进对象的3D定向、用于触发所编辑的产品的操作模拟或渲染所显示的产品2000的各种属性。光标2060可以由触觉设备控制以允许用户与图形工具交互。

图30示出了一种计算机系统,例如CAD系统。

该计算机系统包括被连接到内部通信总线100的中央处理器单元(CPU)1010、也被连接到总线的随机存取存储器(RAM)1070。该计算机系统还设置有图形处理器单元(GPU)1110,其与被连接到总线的视频随机存取存储器1100相关联。视频RAM1100在本领域中也公知为帧缓冲器。大容量存储设备控制器1020管理对大容量存储器设备的存取,诸如硬盘驱动器1030。大容量存储器设备适于有形地具体化计算机程序指令和数据,包括所有形式的非易失性存储器,通过示例包括半导体存储器设备,诸如EPROM、EEPROM、以及闪存存储器设备;磁盘,诸如内部硬盘和可移除硬盘;磁光盘;以及CD-ROM盘1040。前述的任意内容可以由专门设计的ASIC(专用集成电路)补充或合并。网络适配器1050管理对网络1060的访问。客户端计算机还可以包括触觉设备1090,诸如光标控制设备、键盘等。光标控制设备被用在客户端计算机内以允许用户选择性地在显示器1080的任何期望位置上放置光标,如参考图29所提到的。此外,光标控制设备允许用户选择各种命令,以及输入控制信号。光标控制设备包括用于输入控制信号到系统的大量信号生成设备。通常,光标控制设备可以是鼠标,鼠标的按钮被用于生成信号。信号也可以通过触摸显示器被生成,例如,显示器1080是触敏显示器。

参照图26到28的流程图,讨论本发明的一个示例。

在步骤S10,提供耦合有第一向量的第一点。术语“点”意味着在3D场景中具有位置的实体。3D场景是3D空间,在其中描述了对象之间的空间关系。一般地,3D建模对象被表示在3D场景中。3D场景可以是受限的或非受限的空间。在实践中,3D场景由于计算机分辨率而是受限的。该点耦合有第一向量。第一向量提供点在3D场景中的方向。在实践中,第一向量位于这样的参考系中:其中该参考系的原点是该向量的原点并且其中该参考系的原点为第一点。换句话说,第一向量包括在参考系(x,y,z)内的一组尺寸(x1,y1,z1)。参考系的原点、向量的原点、以及第一点在3D场景中可以具有相同的坐标(x0,y0,z0),可以理解的是3D场景被定向。在实践中,参考系可以具有可以被显示的图形表示。用户可以通过在参考系上操作改变第一向量的一个或多个值,如本领域已知的。第一向量可以具有在3D场景中的图形表示,并且用户可以在这个表示上操作以修改点的方向。提供耦合有第一向量的第一点意味着执行根据本发明的方法的系统可以访问与点和向量有关的数据;例如,与第一点和向量有关的数据储存在系统的存储器中,并通过与存储器耦合的CPU(计算机处理单元)访问。

在步骤S12,提供耦合有第二向量的第二点。这个步骤类似于步骤S10。

在实践中,步骤S10和S12通过在三维场景中放置3D建模对象被分别执行,其中3D对象通过向量在三维场景中被定向,可以理解的是耦合有向量的点被包含在3D对象中。点可以位于但不限于在3D对象的几何中心上。人们可以理解3D对象可以是3D建模对象。

接下来,在步骤S20,提供平行六面体。平行六面体是由三对平行四边形形成的三维图像,三对平行面的任何一对面可以被看做棱柱的基本面。平行六面体具有三组四个平行边;每组内的边具有相等的长度。平行六面体具有8个顶点。平行六面体可以被看作具有六个面的多面体,每一个为平行四边形。

在实践中,平行六面体可以是长方体,其中平行四边形是矩形。长方体有益地在平行六面体的边之间提供法角,这样的法角适于真实世界中工业产品的规律形状。

平行六面体包括在第一顶点所提供的第一点和在第二顶点所提供的第二点。可以理解的是该第一定点和第二顶点并不相同,也就是,它们在3D场景中并不具有相同的位置。

平行六面体包括一组部分:一个部分可以是边、面的对角线、空间对角线。面的对角线是连接(或结合)平行六面体的面(例如,平行四边形)的两个非连续顶点的线。空间对角线是结合平行六面体的一个角到相对角的线。空间对角线也可以被称为三角或体对角线,如现有技术中已知的。

平行六面体可以在三维场景中被定向。这相当于说平行六面体关于第一定点和第二顶点位于3D场景中:实际上,穿过第一定点和第二顶点的轴可以被预期作为旋转轴,并因此平行六面体在3D场景中可以具有多个位置。平行六面体的定向因而允许在3D场景中固定该平行六面体。

平行六面体的定向可以相对于该平行六面体被嵌入的三维场景的全局定向。3D场景的全局定向一般关于3D场景的主参考系被执行。在实践中,三维场景的全局定向的三个方向(xscene,yscene,zscene)中的一个被确定为根据重力定向。标准的实践是选择方向zscene垂直于模拟世界的虚拟地。换句话说,方向zscene根据虚拟世界的重力被定向。例如,平行六面体可以在三维场景中关于全局定向的定向方向的一个被定向,例如,平行六面体的一个边具有与全局定向的zscene轴相同的方向。

平行六面体的定向可以相对于第一向量的方向,如现有技术中已知的。例如,耦合有第一点的第一向量可以共线于具有平行六面体的一个边的方向的向量。作为另一个示例,第一向量可以共线于附接到平行六面体的向量,例如起始于平行六面体的一个顶点的向量。

第二向量的方向有关的定向可以如关于第一向量而被执行。

平行六面体的定向有益地允许考虑路径将结合第一点和第二点的上下文。实际上,取决于平行六面体关于第一向量、第二向量、或3D场景的定向而被定向,路径的一些解决方案可以被拒绝,例如,取决于平行六面体的定向可能出现路径和3D场景中的其他对象之间的冲突。

现在参考图2,显示的是步骤S10到S20的示例。两个3D建模对象300、302被放置在3D场景中。第一和第二3D建模对象是T连接头管道。T连接头管道具有两个出口,位于到主线的连接的90°处。这里,第一点310和第二点312并不位于3D建模对象上,但是它们是3D模型的部分:它们被放置在T连接头管道的一个管道的轴上。两个对象310、312中的每一个在3D场景中由耦合有其相应点的向量320、322定向。在图2的示例中,向量320、322分别共线于边330、332,并且每个T连接头管道因而具有与平行六面体的边对齐的出口的轴。长方体已经根据方向zscene被定向以使垂直边(例如344)共线于方向zscene:包括边330、340、342的平行六面体的面因而平行于模拟世界的虚拟地。因而,在这个示例中,向量320共线于边330,但也共线于方向yscene,并且方向xscene共线于边340。一种理解是这个示例中的3D场景的主参考系(xscene,yscene,zscene)是标准正交参考系。

回到图26的流程图,在步骤S30,确定分别位于第一顶点和第二顶点的第一点和第二点是否在平行六面体的相对面上。相对面意味着平行六面体的不具有公共顶点的一对面。这相当于说确定第一点和第二点是否在平行六面体的相对顶点上,其中相对顶点意味着连接到第一顶点的三个边不与连接到第二顶点的三个边相链接。取决于步骤S30的结果,连接第一点到第二点的两组不同的路径可以被提供给用户。

图18示出了本发明的在第一点和第二点并不位于平行六面体的相对面的情况的示例,也就是说,第一顶点和第二顶点属于平行六面体的相同的面。在这种情形下,提供了一组三个路径,其中每个路径起始于第一点并终结于第二点(或相反),并且其中一组路径包括以下三个路径:

(i)一个路经包括平行六面体的一部分,该一部分是第一顶点和第二顶点所属的面的对角线;

(ii)两个路径包括平行六面体的两个连续的部分,其中平行六面体的每个部分是边。

图18示出了其中表示T连接头管道的两个3D建模对象被放置在3D场景的相同的平面上的情形。3D建模对象300、302如图2中的一样,除了第一点310和第二点312属于平行六面体的相同的面。在这个图中,仅表示了对两个点所共有的面。连接第一点310和第二点312的路径1900由第一点和第二点所属的面的对角线组成。一个路经包括两个连续的边1902、1904,并且另一路径包括两个连续的边1906、1908。

现在参考图28,在步骤S400,提供了弯曲半径。弯曲半径是被测量的内部曲率,其是可以弯曲管件、管道、薄片、电缆或软管而不弯折它、损坏它、或缩短它的寿命的最小半径,在现有技术中已知。最小弯曲半径是在其之下对象不应被弯曲的半径。提供弯曲半径可以根据用户动作而执行,例如,用户输入弯曲半径的值。可选地,弯曲半径可以通过执行方法的系统自动提供,例如提供默认值,并且该默认值可以取决于意图遵循该路径的对象(例如,管件、电缆等)。提供弯曲半径意味着弯曲半径的值对该系统是可用的,例如,储存于系统的存储器中并被耦合到存储器的CPU访问。

然后,在步骤S402,为一组路径的每一路径根据弯曲半径计算连接第一点和第二点的平行六面体。该弯曲半径为连接第一点和第二点的路径的至少两个部分的连接引入几何约束。特别地,被放置在第一顶点和第二顶点上的第一点和第二点可以不被定向为使得提供的连接第一点或第二点的路径的弯曲半径可以被遵守:实际上,起始于第一点的路径应当与耦合有第一点的向量具有相同的方向,以及到达第二点的路径应当与耦合有第二点的向量具有相同的方向。因此,取决于第一点和/或第二点的定向和平行六面体的定向,弯曲半径可以被遵守或不被遵守。

在所提供的弯曲半径在起始于第一点或第二点上的部分对于给定的路径无法遵守的情况下,新的平行六面体被计算以使弯曲半径可以被应用。在实践中,这可以涉及第一顶点和第一点不再位于3D场景中的相同位置,并且第二顶点和第二点不再位于3D场景中的相同位置。

为新的平行六面体的每一路径的计算可以包括计算第一顶点的新位置和第二顶点的新位置。

第一顶点的新位置是通过计算第一点和第一顶点之间的距离D1获得的,并考虑(i)耦合有第一点的第一向量的方向,以及(ii)连接到第一顶点的路径的部分的方向,例如,由该路径遵循的第一边。距离D1是在第一点和第一顶点之间的距离,可以理解的是第一点和第一顶点均位于由耦合有第一点的第一向量提供的方向上。

可选地,第三向量可以被提供给连接到第一顶点的路径的部分,以使得角度α1的确定更容易。该第三向量的方向是连接到第一顶点的路径的部分,且第三向量可以根据该路径的方向被定向(例如,从第一点到第二点)。

距离D1由关系D1=Bend Radius×(sinα1)定义,其中Bend Radius是在步骤S400处所提供的弯曲半径的值,并且α1是第一向量和连接到第一顶点的路径的部分的方向之间的角度的值。D1因而是Bend Radius和(sinα1)的乘积。

相似地,第二顶点的新位置是通过计算第二点和第二顶点之间距离D2获得的,并考虑(i)耦合有第二点的第二向量的方向,以及(ii)连接到第二顶点的路径的部分的方向,例如,由该路径遵循的最后一个边。距离D2是第二点和第二顶点之间的距离,可以理解的是第二点和第二顶点均位于由耦合有第二点的第二向量提供的方向上。

距离D2类似地由关系D2=Bend Radius×(sinα2)定义,其中Bend Radius是在步骤S400处所提供的弯曲半径的值,并且α2是第二向量和连接到第一顶点的路径的部分的方向之间的角度的值。D2因而是Bend Radius和sinα2的乘积。在实践中,Bend Radius以及α2的值可以是度数。

对于角度α1,向量(例如第四向量)可以可选地被提供给连接到第二顶点的路径的部分,以使得角度α2的确定更容易。这个第四向量的方向是连接到第二顶点的路径的部分,并且其可以根据遵循该路径的方向被定向(例如,从第二点到第一点)。

可以理解的是平行六面体的定向与用于计算距离D1一样,也就是,平行六面体的定向在距离D1和D2的计算期间保持不变。

特别地,第三和第四向量(其被提供到连接第一或第二顶点的路径的部分)可以使用平行六面体的三个主方向(即Dir.A、Dir.B、Dir.C)被获得。

Dir.A取决于平行六面体在3D场景中的定向,如前讨论的。这意味着Dir.A可以是以下中的一个:

(i)在平行六面体已经关于第一向量被定向的情况下,耦合有第一点的第一向量的方向;

(ii)在平行六面体已经关于第二向量被定向的情况下,耦合有第二点的第二向量的方向;

(iii)随机选择的场景的全局定向的方向中的一个(xscene,yscene,zscene)。

Dir.B是被选择为垂直于模拟世界的虚拟地的方向。标准实践是选择根据模拟世界的重心定向的方向zscene。可以理解的是在主方向Dir.A是方向zscene(情形(iii))的情况下,然后全局定向的另一方向可以被选择作为主方向Dir.B。

Dir.C是通过计算表示Dir.A和Dir.B的向量之间的向量乘积(交叉乘积)获得的。

因此,它导致长方体(预先定向的)的每个边共线于三个主方向Dir.A、Dir.B和Dir.C中的一个。

一旦第一顶点和第二顶点的新位置被知道,则可能减少平行六面体的六个剩余顶点的位置。

参考图31,显示的是点和点所位于其上的顶点之间的距离D。该距离沿着耦合于该点的向量的方向被测量,并且这个方向包括点和顶点。该距离通常为欧式距离。点初始所位于的顶点被耦合有表示属于为其计算新的平行六面体的路径的平行六面体的部分的方向的向量。角度α在向量和由向量表示的部分的方向之间(图31上被表示为点线)。

接着,在步骤S404,计算连接第一点和第二点的折线,如在下面参考附图1、2和3将被解释的。

图5到17示出了在第一点(在左边)和第二点(在右边)位于平行六面体的相对面的情况下保持为可能的解决方案的一组路径的路径的示例,也就是说,第一顶点和第二顶点并不属于平行六面体的相同面。在这种情形下,提供了一组路径,其中每个路径起始于第一点并终结于第二点(或相反),并且其中一组路径包括以下十三条路径:

(i)一个路径包括由连接第一点和第二点的中心对角线组成的一部分,如图4示出的;

(ii)六个路径,其中每个路径包括三个连续的部分,其中每个部分是边。这些六个路径被示出在图5到10中;

(iii)三个路径,其中每个路径包含具有平行六面体的共同顶点的两个部分,其中:

-一部分是平行六面体的面的对角线,该对角线包括第一点,以及

-一部分是包括第二点的边。

这三个路径被示出在图12、14和16中。

(iv)三个路径,其中每个路径包含具有平行六面体的共同顶点的两个部分,其中:

-平行六面体的一部分是平行六面体的面的对角线,该对角线包括第二点,以及

-平行六面体的一部分是包括第一点的边。

这三个路径被示出在图11、13和15中。

现在参考图27,在步骤S500,提供了弯曲半径。这个步骤类似于步骤S400。

接着,在步骤502,为十三个路径的每一个根据弯曲半径计算连接第一点和第二点的平行六面体。这个步骤类似于步骤S402。

然后,在步骤S504,为步骤S502所计算出的每个平行六面体确定是否路径的每一边的长度L使得L≥Bend Radius×(sinαx+sinαy),其中:

-Bend Radius是在步骤S500所提供的弯曲半径的值;

x是路径的边(为其测量L)和路径的共享边的第一公共顶点的另一部分之间的角度的值。可替代地,αx可以是边和第一向量的方向之间的角度的值;在这种情形下,角度αx是当遵循从第一点到第二点的路径时遇到的路径的第一弯曲的角度。

y是边(为其测量L)和路径的共享边的第二公共顶点的另一部分之间的角度的值。可替代地,αy可以是边和第二向量的方向之间的角度的值;在这种情形下,角度αy是当遵循从第一点到第二点的路径时遇到的路径的最后弯曲的角度,或者相反,角度αy是当遵循从第二点到第一点的路径时遇到的路径的第一弯曲的角度。在实践中,Bend Radius、αx和αy的值可以是度数。

当角度αx(或αy)是结合边的两个顶点到一起的平行六面体的两个部分之间的角度时,角度αx(或αy)通常为90°,例如,对于长方体。

当角度αx(或αy)是边和第一(或第二)点的方向之间的角度时,角度αx(或αy)可以具有任何值。在这种情形下,角度αx(或αy)可以预期作为耦合有第一(或第二)点的第一(或第二)向量和可选地提供第三向量之间的角度,如之前所示。

在路径的边的长度小于所计算的长度值L的情况下,不保持该路径,也就是,该路径不是建议的解决方案。实际上,长度L有益地允许验证路径的边足够长以允许在路径的两个部分之间或在第一点和部分之间或在第二点和部分之间的正确的弯曲半径。

现参考图20,示出的是平行六面体的一个示例,其中边的长度L太短而一方面允许对象300的第一点310和边340上的路径的部分之间的路径的正确地弯曲,以及另一方面允许边340和另一边350上的路径的部分之间的路径的部分正确地弯曲。因此,包括遵循边340的路径的部分的所有路径不保持作为可能的解决方案。

接着,在步骤S508,计算连接第一点到第二点的折线。折线的计算如现有技术中已知地被执行。

现参考图1,示出了在图5中表示的解决方案的路径的所计算的折线的示例,其中该路径包括平行六面体的三个连续的边。图1示出了为图2中的示例由本发明提供的路径。

图1上描述的折线包括结合边340的顶点310和102的第一部分110,结合边342的顶点102和104的第二部分114,以及结合平行六面体的部分344的顶点104和312的第三部分118。平行六面体的连续部分110、114、118被通过曲线互相连接,该曲线的值由提供的弯曲半径固定。一种理解是平行六面体的连续部分110、114、118被互相连接的表达意味着部分110通过共同顶点102与部分114结合,以及部分114通过共同顶点104与部分118结合。因此,折线包括直线部分110、114以及1189,和连接连续的直线部分的曲线部分112和114。

现参考图3,讨论根据弯曲半径重新计算平行六面体的示例。所提供的点A1和B1与向量耦合,并不再位于平行六面体的顶点上,因为平行六面体已经被重新计算以使在弯曲1和弯曲4提供的弯曲半径能够被遵守。所显示的路径包括平行六面体的边D7、D2和D10。这三个连续的部分段1、段2、段3通过曲线弯曲2、弯曲3被互相连接,并且点A1通过曲线弯曲1被结合到段1以及点A2通过曲线弯曲4被结合到段3。

有趣地,耦合有起始点A1的向量A1共线于边D12的一个向量(未表示),并且边D7和向量A1之间的角度αx是90°,可以理解的是平行六面体为长方体。相反,耦合有终点A2的向量A2与边D10形成角度αy,其不同于90°,因为向量A2不共线于边D4、D6、D10的任一向量(未示出)。特别地,向量B1的方向和为其计算新的平行六面体的路径采用的边D10之间的角度αy不同于90°。有趣地,向量A1的方向包括点A1和顶点C1,以及向量B1的方向包括点B1和顶点C4。

步骤S404类似于步骤S508。

在实践中,一旦已经为一组路径的每一路径计算折线,可以沿着所计算的折线形成形状。折线是形状的截面的中心。工业产品的截面的尺寸通常根据用户动作被提供,可以理解的是截面的默认尺寸可以由执行本发明的系统所提供。工业产品是意图在工业上被使用的产品,或至少涉及工业工艺。例如,管件、电缆,通风管道、托盘等是工业产品。工业产品通常被建模有沿线(例如,所计算的折线)延伸的规则形状。形状的截面可以是但不限于圆形、方形、矩形、椭圆、平椭圆,等等

现参考图17,示出的是其中一组路径的路径并不作为解决方案提出给设计者的示例,因为冲突分析已经发生。在图17中,示出的是平行六面体的几个部分的弯曲表面。包括平行六面体的一个或多个交叉部分的每个路径从显示给设计者的一组路径中丢弃。将要理解的是冲突分析被促进,因为计算被执行在平行六面体的部分上,而不是在路径本身。

可替代地,该分析可以由设计者直接执行,其可以看到被建议为解决方案的一个或多个路径之间的冲突。实际上,由于根据本方法的所有解决方案的表示是逼真的,所以设计者可以看见与场景中的其他对象的冲突并且因而不选择bas解决方案。

现在参考图19,示出的是本发明的一个示例,其中面的对角线部分被修改以使对角线起始的边和对角线之间包括的角度具有预定的值。对角线起始的边被定义为包括当遵循从第一点到第二点的路径时被穿过的面的第一顶点的面的边。因而,对角线并不再连接面的两个相对的点,但它连接面的第一顶点与位于连接包括第一顶点的面的边的边上的新的点。在实践中,角度的这一预定值被选择以使它是遵循该路径的关于工业产品的标准值。例如,如果路径意图路由管件,那么在管件技术领域中标准角度是45°、60°、90°。更一般地,预定的值可以是45°、60°、90°。

例如,在图19,所表示的面的对角线部分之间的初始角度是55.12°,其不是标准值。一旦面的对角线被修改,新的角度具有标准值45°。

一种理解是具有修改的对角线的路径包括结合位于由对角线结合的前顶点上的新的点的新的部分。

现在参考图21到25,表示解决方案的显示的几个例子。解决方案是作为本发明的结果被获取的一组路径。

在图21中,示出所有的解决方案(其是一组路径的所有路径)。

在图22中,仅示出边上的路径。此外,默认的解决方案也被示出,这里路径具有平行六面体的空间对角线的部分。

在图23中,示出了面(对角线)上的路径,和默认的解决方案一起,在这里路径具有平行六面体的空间对角线的部分。

在图24中,根据观看的轴定向所显示的一组解决方案。定向平行六面体的轴系统不链接到所提供的与第一和第二向量耦合的第一点和第二点。

在图25中,平行六面体遵循观看轴中的一个,也就是,3D场景的全局定向,以及第一点的方向。从之前的两个轴计算第三轴以保持正交轴系统。可替代地,平行六面体遵循观看轴中的一个以及第二点的方向。从之前的两个轴计算第三轴以保持正交轴系统。

该设计方法用于在三维场景中设计连接第一点到第二点的路径。“设计路径”指明制作路径的过程的至少一部分的任何动作或一系列动作。

计算机程序可以包括通过计算机的指令,指令包括用于使得以上系统执行以上方法的构件。本发明可以例如被实现在数字电子电路、或计算机硬件、固件、软件中,或它们的组合中。本发明的装置可以被实现为计算机程序产品,其有形地体现在机器可读存储设备中通过可编程处理器被执行;本发明的方法步骤可以由可编程处理器执行,所述可编程处理器通过操作输入数据和生成输出执行指令的程序以执行本发明的功能。

本发明可以有益地的被实现在可编程系统上执行的一个或多个计算机程序,该可编程系统包括耦合以从数据储存系统接收数据和指令、以及发送数据和指令到数据储存系统的至少一个可编程处理器,至少一个输入设备,以及至少一个输出设备。应用程序可以高级过程或面向对象的编程语言实现,或如果需要的话以汇编或机器语言实现;并且在任何情形下,语言可以是编译或解释语言。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号