首页> 中国专利> 从三角形网格生成风格化的四边形网格的技术

从三角形网格生成风格化的四边形网格的技术

摘要

在不同实施例中,风格化子系统自动修改三维(3D)对象设计。在操作中,风格化子系统基于表示3D对象设计的输入三角形网格、与输入三角形网格的至少部分相关联的优选方位以及一个或更多个网格复杂度约束来生成简化的四边形网格。然后,风格化子系统将简化的四边形网格转换成简化的T样条。随后,风格化子系统使包括在简化的T样条中的一个或更多个边产生折痕以生成风格化的T样条。值得注意的是,风格化的T样条表示比3D对象设计更收敛于一个或更多个优选方位的风格化设计。有利地,相对于现有技术方法,风格化子系统可更有效地修改3D对象设计以改进总体美观性和可制造性。

著录项

  • 公开/公告号CN112823381A

    专利类型发明专利

  • 公开/公告日2021-05-18

    原文格式PDF

  • 申请/专利权人 欧特克公司;

    申请/专利号CN201980066577.3

  • 申请日2019-08-09

  • 分类号G06T17/20(20060101);

  • 代理机构11336 北京市磐华律师事务所;

  • 代理人高伟

  • 地址 美国加利福尼亚州

  • 入库时间 2023-06-19 11:00:24

说明书

本申请要求于2018年8月9日提交的、序列号为62/716,842的、标题为“用于风格化和改善三维形状的制造的工艺”的美国临时专利申请的优先权权益,以及要求于2019年8月8日提交的、序列号为16/536,241的、标题为“用于从三角形网格生成风格化的四边形网格的技术”的美国专利申请的优先权权益。这些相关申请的主题在此通过引用并入本文。

背景技术

各种实施例的领域

实施例总体上涉及计算机辅助设计和计算机辅助设计软件,并且更具体地,涉及用于从三角形网格生成风格化的四边形网格的技术。

相关技术说明

用于三维(“3D”)对象的生成式设计是计算机辅助设计(“CAD”)过程,该过程自动地合成用于满足任何数量和类型的高级目标和设计约束的3D对象的设计。在典型的生成式设计流程中,用户指定功能目标和设计约束,并且生成式设计应用然后执行各种多目标优化算法以基于功能目标和设计约束来优化潜在的解决方案。这种类型的设计过程是可以产生大量(例如,数千个)满足功能目标和设计约束的复杂几何设计的进化过程。生成式设计应用在设计空间的上下文中向用户呈现这些设计。用户可以随后探索设计空间,手动地查看和评估不同的设计并且选择用于附加的设计和/或制造活动的一个或更多个设计。

使用生成式设计过程的一个缺点是得到的设计通常不反映非功能偏好。具体地,所得到的设计经常具有“有机”形状,意味着所得到的设计可以具有波浪起伏的形状,该波浪起伏的形状反映了不同力可以影响构成所得到的设计的3D对象的形状的最佳方式。实质上,通过关于一组功能目标和设计约束的生成式设计过程来优化有机形状的性能,但是不考虑有机形状的总体外观。由于有机形状在典型的生成式设计空间中的流行,所以通常经由生成式设计过程生成的设计都不是设计者在审美上可接受的。此外,即使经由生成式设计过程生成的特定设计是设计者在美观性上可接受的,制造包括在设计中的有机形状也可能是低效的。例如,为了再现表征有机形状的团块,计算机数控(“CNC”)铣床可能不得不沿着若干不同的工具路径移动,同时执行许多耗时的研磨操作。

将以上缺点复合起来的事实是:修改从生成式设计空间选择的给定设计以反映非功能性的美观性偏好通常涉及手动过程,该手动过程可能是繁琐的且过于耗时的。因此,如果为设计活动分配的时间有限,则设计者可以决定在感兴趣的时间不对所选设计进行某些修改。在这样的情况下,设计的整体质量可能受损,并且制造时间可能增加。例如,如果设计者要平滑掉包括在所选设计中的更少的有机形状以便节省时间,则设计的可制造性可能是次优的,从而导致更耗时且昂贵的后端制造工艺。

如前所述,本领域需要更有效的技术来修改3D对象设计(如通过生成式设计过程产生的那些)以反映非功能性偏好。

发明内容

一个实施例阐述一种用于自动修改三维(3D)对象的设计的计算机实现的方法。所述方法包括:基于表示所述3D对象设计的输入三角形网格、与所述输入三角形网格的至少部分相关联的优选方位以及至少一个网格复杂度约束来生成简化的四边形网格;执行一个或更多个操作以将所述简化的四边形网格转换成简化的T样条;以及执行一个或更多个操作以使包括在所述简化的T样条中的一个或更多个边产生折痕,以生成风格化的T样条,其中所述风格化的T样条表示比所述3D对象设计更收敛于所述优选方位的风格化设计。

所公开的技术相对于现有技术的至少一个技术优点在于,利用所公开的技术,可以更有效地修改三维(3D)对象的设计,以改善总体美观性和可制造性。特别地,利用所公开的技术,可以自动地修改包括有机形状的设计中的表面和边的类型,以产生具有更少的波浪起伏的形状和更好地与优选方位对准的形状的最终设计。因此,改善给定的3D对象设计的美观性和可制造性所需的时间和努力可相对于更多手动的现有技术方法显著降低。进一步,因为可以利用所公开的技术自动地修改3D对象设计,所以可以在针对设计活动的所分配的预算内对3D对象设计做出更多数量的修改,从而增加这些设计的总体美观性质量和可制造性。这些技术优点提供了优于现有技术方法的一个或更多个技术进步。

附图说明

为了可以详细理解各种实施例的上述特征的方式,可以参考各种实施例来更具体地描述以上简要概述的本发明概念,这些实施例中的一些在附图中示出。然而,应注意的是,附图仅示出了本发明概念的典型实施例,并且因此不应被视为以任何方式限制范围,并且存在其他同样有效的实施例。

图1是被配置为实施各种实施例的一个或更多个方面的系统的概念图示;

图2示出了根据各种实施例的由图1的风格化子系统生成的一些中间输出的示例性图示;

图3是根据各种实施例的图1的方位传播引擎的更详细图示;以及

图4是根据各种实施例的用于自动修改三维对象设计的方法步骤的流程图。

具体实施方式

在以下描述中,阐述了许多具体细节以提供对各种实施例的更透彻的理解。然而,对于本领域技术人员显而易见的是,可以在没有这些具体细节中的一个或更多个的情况下实践本发明的概念。

系统概述

图1是被配置为实施各种实施例的一个或更多个方面的系统100的概念图示。系统100包括但不限于计算实例110。出于解释的目的,相似对象的多个实例用标识该对象的参考标记和标识需要时的实例的括号内标记来表示。在替代实施例中,系统100可包括任何数量的计算实例110。系统100的任何数量的组件可以分布在多个地理位置上或以任何组合在一个或更多个云计算环境(即,经封装的共享资源、软件、数据等)中实现。

如图所示,计算实例110包括但不限于处理器112和存储器116。处理器112可以是能够执行指令的任何指令执行系统、装置或设备。例如,处理器112可以包括中央处理单元(“CPU”)、图形处理单元(“GPU”)、控制器、微控制器、状态机或其任何组合。存储器116存储内容,诸如软件应用和数据,以供计算实例110的处理器112使用。在替代实施例中,计算实例110中的每一个可包括任何组合的任何数量的处理器112和任何数量的存储器116。具体地,任何数量的计算实例110(包括一个)可以任何技术上可行的方式提供多处理环境。

存储器116可以是易于获得的存储器中的一个或更多个,如随机存取存储器(“RAM”)、只读存储器(“ROM”)、软盘、硬盘、或本地或远程的任何其他形式的数字存储装置。在一些实施例中,存储装置(未示出)可以补充或替代存储器116。存储装置可以包括处理器112可访问的任何数量和类型的外部存储器。例如,但不限于,存储器可包括安全数字卡、外部闪存、便携式压缩盘只读存储器(CD-ROM)、光学存储设备、磁存储设备、或者上述的任意合适的组合。

计算实例110被配置为实施一个或更多个应用程序或应用程序的子系统。仅出于解释的目的,每个应用程序被描绘为驻留在单个计算实例110的存储器116中并且在单个计算实例110的处理器112上执行。然而,如本领域技术人员将认识到的,每个应用程序的功能可分布在驻留在任何数量的计算实例110的存储器116中并且以任何组合在任何数量的计算实例110的处理器112上执行的任何数量的其他应用程序上。进一步,任何数量的应用程序或子系统的功能可被合并到单个应用程序或子系统中。

具体地,计算实例110被配置为自动修改3D对象设计以反映非功能偏好,诸如美观性偏好和与可制造性相关的偏好。如在此提及的,“3D对象设计”是3D对象的设计。3D对象可以是任何类型的对象,并且以分层的方式,可以包括任何数量的其他3D对象。通常,使用自动化制造工具/设备基于单个3D对象设计来自动生成许多3D对象。进一步,可以使用任何数量的不同格式/模型来表示3D对象设计。

例如,3D对象设计可被表示为使用顶点、边和面来指定3D对象的表面的多边形网格。每个顶点是3D空间中的点,由一条直线连接的两个顶点限定了边,经由三条边互连的三个顶点限定了三角形,经由四条边互连的四个顶点限定了四边的(“四边形”)等。通常,通过共享顶点连接在一起的一组多边形被称为多边形网格。更具体地,经由共享顶点互连的一组三角形被称为三角形网格,并且每个三角形表示相关联的3D对象的不同面。三角形网格通常也被称为“三角形网格。”类似地,经由共享顶点互连的一组四边形被称为四边形网格,并且每个四边形表示相关联的3D对象的不同面。

在另一示例中,3D对象设计可被表示为将3D对象的表面指定为被形成为平滑元素的多个较小表面的T样条。通常,可以通过CAD工具将T样条作为光滑表面或盒状网格来查看和操纵。又在另一个示例中,3D对象设计可以被表示为边界表示(“B-Rep”)。B-Rep将3D对象指定为实心的(solid),其由相关联的表面界定并且具有内部和外部。B-Rep指定拓扑结构(例如,面、边和顶点)和几何结构(例如,表面、曲线和点)两者。仅出于解释的目的,“设计”是指3D对象设计。

因为用于自动生成3D对象设计的许多技术(例如,生成式设计算法、拓扑优化算法等)通常不考虑非功能性偏好,所以通常需要修改不满足非功能性要求的自动生成的3D对象设计。例如,典型的生成式设计应用产生包括满足任何数量的指定功能目标和设计约束的大量(例如,数千个)复杂几何设计的设计空间。使用生成式设计应用的一个缺点在于,所得到的设计经常具有美观性上不吸引人的或者昂贵/难以制造的有机形状。由于有机形状在典型的生成式设计空间中的流行,所以通常经由生成式设计应用生成的设计都不是设计者在美观性上可接受的。

将以上缺点复合起来的事实是,修改从生成式设计空间中选择的给定设计以反映非功能性的美观性偏好通常涉及手动过程,该手动过程可能是繁琐的且过于耗时的。结果,如果为设计活动分配的时间有限,则设计者可以决定不在感兴趣的时间对所选设计进行某些修改。在这样的情况下,设计的整体质量可能受损,并且制造时间可能增加。

修改3D对象设计以反映非功能性偏好

为了解决上述问题,计算实例110实现风格化子系统102,所述风格化子系统102自动修改由输入三角形网格106表示的输入设计以反映非功能性偏好。风格化子系统102驻留在计算实例110的存储器116中并且在计算实例110的处理器112上执行。如图所示,风格化子系统102包括但不限于骨架提取引擎120、简化引擎130、方位传播引擎140、约束生成引擎150、四边形网格生成引擎160和折痕引擎170。如虚线框和箭头所描绘的,在替代实施例中,风格化子系统102还可包括T样条优化引擎180和/或边界表示(B-Rep)生成引擎190。

在替代实施例中,如本文描述的骨架提取引擎120、简化引擎130、方位传播引擎140、约束生成引擎150、四边形网格生成引擎160和折痕引擎170的功能可以任何组合在任何数量的软件应用程序中实现。每个软件应用程序可以驻留在任何数量的存储器116中并且在任何数量的处理器112上、在任何数量的位置和任何组合中执行。进一步,在不同实施例中,可实现风格化子系统102的任何数量的组件和/或本文公开的技术中的任何技术,同时可省略其他组件和/或技术。

风格化子系统102可从任何源和以任何技术上可行的方式获取输入三角形网格106。例如,在一些实施例中,风格化子系统102基于经由图形用户界面(“GUI”)从用户接收的输入来获取输入三角形网格106。例如,用户可以选择由生成式设计应用生成的设计之一的三角形网格表示作为输入三角形网格106。在另一示例中,风格化子系统102可经由应用程序编程接口(“API”)从另一软件应用程序获取输入三角形网格106。

如图所示,骨架提取引擎120基于输入三角形网格106和骨架生成参数集118来生成骨架122和骨架映射集124。骨架122表示输入三角形网格106的全局形状和拓扑,并且包括但不限于任何数量的节点(图1中未示出)和任何数量的边(图1中未示出)。每个节点是3D空间中的不同点,并且每个边连接两个节点。骨架映射集124包括但不限于骨架122与输入三角形网格106之间的任何数量的映射(未示出)。更精确地,对于骨架122中的每个节点和每个边,骨架映射集124中的对应映射指定输入三角形网格106中的一个或更多个相关联的顶点。

骨架生成参数集118指定用于控制骨架提取引擎120如何生成骨架122和/或骨架122的质量的任何数量的参数的值。例如,在一些实施例中,骨架生成参数集118指定用于控制骨架122的复杂度(例如,节点和/或边的数目)的骨架复杂度参数的值。骨架提取引擎120可以任何技术上可行的方式生成骨架122和骨架映射集124。

例如,在一些实施例中,骨架提取引擎120收缩输入三角形网格106以生成收缩的网格。然后,骨架提取引擎120按照骨架复杂度参数值来合并收缩的网格中的顶点组以生成骨架122。对于骨架122中的每个节点,骨架提取引擎120生成该节点与从其生成该节点的顶点组之间的映射,并随后将该映射添加到骨架映射集124。对于骨架122中的每个边,骨架提取引擎120生成该边和与经由该边连接的两个节点相关联的两个顶点组的并集之间的映射,并随后将该映射添加到骨架映射集124。

骨架提取引擎120可以任何技术上可行的方式获取骨架生成参数集118。例如,在一些实施例中,骨架提取引擎120基于经由GUI或API从用户接收到的输入来生成骨架生成参数集118。在替代实施例中,骨架生成参数集118被省略并且骨架提取引擎120以默认方式操作。在相同或其他替代实施例中,骨架提取引擎120不生成骨架映射集124。相反,风格化子系统102可包括基于骨架122和输入三角形网格106来生成骨架映射集124的骨架映射引擎。

如图所示,简化引擎130基于输入三角形网格106、骨架122、骨架映射集124和骨架复杂度阈值128来生成简化的骨架132。一般而言,简化引擎130对骨架122的边进行分段并随后按照骨架复杂度阈值128移除冗余节点和边以生成简化的骨架132。因而,简化的骨架132是骨架122的简化版本。

更精确地,简化引擎130基于骨架122的局部曲率和输入三角形网格106沿着骨架122中具有高于二的度数的任何两个节点之间的每个路径的横截面的变化率来简化骨架122。如本文所提及的,骨架122沿骨架122的路径的局部曲率是骨架122的边的方向向量相对于沿该路径的位置的导数。

为了确定输入三角形网格106的横截面的变化率,简化引擎130获得输入三角形网格106的横截面,其平面通过骨架122中度数为2的节点。简化引擎130使用骨架映射集124来避免生成输入三角形网格106的不与骨架122中的节点相对应的部分的横截面。随后,简化引擎130执行每个横截面系列中的横截面之间的比较操作。每个系列的横截面沿着该骨架的具有高于二的度数的两个节点之间的不同路径。简化引擎130可以使用任何类型的距离度量来执行任何数量和类型的比较操作。例如,在一些实施例中,简化引擎130可以将横截面彼此对齐,然后基于横横截面之间的面积差计算距离度量值。

然后,简化引擎130使用分割度量来分割骨架122的具有高于2的程度的两个节点之间的每个路径,该分割度量基于每个节点处的骨架122的连续横截面的变化率和局部曲率。简化引擎130可以实现任何类型的分割度量并且使用任何分割算法和/或聚类算法来基于分割度量值对每条路径进行分割。例如,在一些实施例中,简化引擎130计算骨架122的每个节点的分割度量值,然后将分割度量值与骨架复杂度阈值128进行比较。简化引擎130将具有大于骨架复杂度阈值128的分段度量值的节点指定为各段之间的边界,并且将剩余节点(其在段内部)指定为冗余节点。简化引擎130随后从骨架122移除冗余节点以生成简化的骨架132。

简化引擎130可以任何技术上可行的方式获取骨架复杂度阈值128。例如,在一些实施例中,简化引擎130基于经由GUI或API从用户接收到的输入来确定骨架复杂度阈值128。在其他实施例中,简化引擎130将骨架复杂度阈值128设置为等于骨架生成参数集118中所包括的参数。在替代实施例中,简化引擎130不获取骨架复杂度阈值128并且简化引擎130以默认方式操作。在其他替代实施例中,简化引擎130可以获取以任何技术上可行的方式定制分割/简化过程的任何数量和类型的参数。

方位传播引擎140将全局方位136和局部方位集138传播到简化的骨架132中具有一度或二度的每个节点以生成方位集142。全局方位136是指定四边形面的优选方位的3D向量。在一些实施例中,全局方位136可以与制造过程或机械加工过程相关联。例如,全局方位136可以是与模制制造工艺相关联的池化方向或与三轴减材制造工艺相关联的加工方向。

局部方位集138包括但不限于任意数量(包括零)的局部方位规范。每个局部方位规范指定简化的骨架132中的节点的局部方位和相关联的子集。局部方位是指定对应于节点的相关联子集的四边形面的优选方位的3D向量。因而,每个局部方位规范与简化的骨架132的不同部分以及因此与初始设计的不同部分相关联。全局方位136和包括在局部方位集138中的局部方位在此也被称为“优选方位”。注意,方位传播引擎140忽略具有在局部方位集138中指定的局部方位的节点的全局方位136。

方位传播引擎140可以任何技术上可行的方式获取全局方位136和局部方位集138。例如,在一些实施例中,方位传播引擎140基于经由GUI或API从用户接收的输入来确定全局方位136和/或局部方位集138。在不同实施例中,可省略全局方位136和局部方位集138中的一者或两者,且方位传播引擎140关于省略的优选方位以默认方式操作。

方位集142包括但不限于简化的骨架132中具有一度或两度的每个节点的不同局部坐标系(图1中未示出)。在替代实施例中,方位集142可以以任何技术上可行的方式指定简化的骨架132中具有一度或二度的节点的局部坐标系。方位传播引擎140基于全局方位136、局部方位集138、以及简化的骨架132的方位和拓扑来确定局部坐标系。值得注意的是,方位传播引擎140将局部坐标系彼此对齐并与相关联的优选方位对齐。结合图3更详细地描述方位传播引擎140。

如图所示,约束生成引擎150基于方位集142、骨架映射集124和输入三角形网格106来生成特征曲线集154和边界平滑的三角形网格152。在接收到方位集142时,约束生成引擎150向输入三角形网格106应用任何数量和类型的网格平滑算法,以生成经平滑的三角形网格(未示出)。对于经平滑的三角形网格中的每个三角形,约束生成引擎150根据骨架映射集124和方位集142确定三角形的法线向量和与三角形相关联的局部坐标系之间的“特征”角。

更精确地,约束生成引擎150使用骨架映射集124来标识简化的骨架132的与三角形相关联的节点。约束生成引擎150接着将特征角设定为等于识别出的节点(方位集142中所指定的)的局部坐标系中的三角形的表面法线的方向。注意,如果未指定局部方位集138,则约束生成引擎150使用由全局方位136定义的全局坐标系来计算所有三角形的特征角。

随后,约束生成引擎150基于特征角将经平滑的三角形网格中的三角形划分成三角形组。约束生成引擎150可以任何技术上可行的方式划分三角形。例如,在一些实施例中,约束生成引擎150可以使用在表示相对于特征角和三角形组的优选样式的数据上训练的机器学习模型来划分三角形。在其他实施例中,约束生成引擎150可以基于与用户经由GUI或API指定的样式相关联的规则、启发式或函数来划分三角形。例如,约束生成引擎150可将与范围从-90度到-45度的特征角相关联的三角形指派给第一三角形组,与范围从-45度至+45度的特征角相关联的三角形指派给第二三角形组,以及与范围从+45度至+90度的特征角相关联的三角形指派给第三三角形组。

约束生成引擎150随后使用任何数量和类型的网格边界平滑技术来平滑经平滑的三角形网格的三角形组之间的边界,并生成经边界平滑的三角形网格152。注意,在一些实施例中,平滑过程可涉及边界处的三角形中的一个或更多个的局部网格重构。如本领域技术人员将认识到的,每个经平滑的边界是三角形边的序列。约束生成引擎150将经平滑的边界中的每个边界添加到特征曲线集154作为不同的特征曲线(未示出)。因而,特征曲线集154包括但不限于任何数量的特征曲线,其中每个特征曲线是经边界平滑的三角形网格152中的三角形边的序列。重要的是,特征曲线集154与下面的经边界平滑的三角形网格152一起表示方位偏好以及可选地表示优选样式。

四边形网格生成引擎160实现任何数量和类型的四边形网格生成算法,以基于特征曲线集154、经边界平滑的三角形网格152和网格复杂度约束158来生成简化的四边形网格164。特征曲线集154约束由四边形网格生成引擎160生成的四边形面的方位。网格复杂度约束158约束简化的四边形网格164的复杂度(例如,面、边和/或顶点的数量)。网格复杂度约束158可以配置四边形网格生成引擎160来以任何技术上可行的方式控制简化的四边形网格164的复杂度。例如,在一些实施例中,网格复杂度约束158指定简化的四边形网格164可以具有的四边形面的最大数量。四边形网格生成引擎160可以任何技术上可行的方式获取网格复杂度约束158。例如,在一些实施例中,四边形网格生成引擎160基于经由GUI或API从用户接收的输入来确定网格复杂度约束158。

有利地,简化的四边形网格164具有与输入三角形网格106相同的拓扑并且近似于输入三角形网格106,但是更好地反映非功能性偏好。显著地,简化的四边形网格164的复杂度受到网格复杂度约束158的限制,并且简化的四边形网格164的四边面与优选方位对齐。通常,如果输入三角形网格106表示具有有机形状的输入设计,则简化的四边形网格164表示相对于优选方位具有更平滑的表面和改善的美观性的简化设计。进一步,基于简化设计制造对象所需的时间可小于基于输入设计制造对象所需的时间。

为了便于随后的设计、优化和/或制造操作,四边形网格生成引擎160基于简化的四边形网格164来生成简化的T样条162。四边形网格生成引擎160可以用任何技术上可行的方式将简化的四边形网格164转换成简化的T样条162。简化的T样条162具有与输入三角形网格106相同的拓扑结构并且近似于该输入三角形网格106,但更好地反映非功能性偏好。在替代实施例中,四边形网格生成引擎160还可以将简化的T样条162与输入三角形网格106拟合。在其他实施例中,四边形网格生成引擎160不生成简化的T样条162。相反,风格化子系统102包括T样条生成引擎,该T样条生成引擎基于简化的四边形网格164来生成简化的T样条162,并随后可选地将简化的T样条162与输入三角形网格106拟合。

注意,这里描述的技术是说明性的而不是限制性的,并且可以在不脱离实施例的更宽泛的精神和范围的情况下进行修改。在不脱离所描述的实施例和技术的范围和精神的情况下,许多修改和变化对本领域的普通技术人员而言将是显而易见的。进一步,在不同实施例中,可以实施任何数目的本文公开的技术,同时可以任何技术上可行的方式省略其他技术。

特别地且仅为了解释的目的,在通过特征曲线集154配置的至少一个四边形网格生成算法的上下文中描述风格化子系统102的功能。然而,生成具有与三角形网格相同的拓扑并且近似于三角形网格同时控制所生成的四边形面的复杂度和方位的四边形网格的技术的任何组合都在实施例的范围内。特别地,典型的四边形网格生成算法优化了三角形网格到四边形网格的参数映射,以最大化四边形网格的质量,同时约束四边形面的数量和从三角形网格的偏离。然而,可以约束四边形面的方位的方式经常基于特定的四边形网格生成算法而变化,并且可以相应地修改本文中所描述的技术。

作为一般性事项,在替代实施例中,任何数量和类型的四边形网格生成算法可以以任何技术上可行的方式被配置以简化和/或控制所得到的简化的四边形网格164中的形状的方位。具体地,可以任何技术上可行的方式来确定控制由任何类型的四边形网格算法生成的四边形面的方位的任何量和类型的“形状约束”。此外,在替代实施例中,骨架提取引擎120、简化引擎130、方位传播引擎140和约束生成引擎150的功能可以被修改以生成与所实现的四边形网格生成算法兼容的任何数量和类型的形状约束。

例如,在一些实施例中,可以为输入三角形网格106的波束状部分生成简单的轮廓,并且四边形网格生成算法可以被约束为使用这些轮廓。在相同或其他实施例中,与四边形网格算法相关联的目标函数可以被配置为对非优选方位和/或边、顶点和/或面的数量进行惩罚。在另外的其他替代实施例中,简化的T样条162可以基于任何数量和类型的简化轮廓以及任何数量(包括零)和类型的骨架以任何技术上可行的方式生成。

如图所示,折痕引擎170基于简化的T样条162、简化的四边形网格164和折痕角阈值168生成风格化的T样条172。折痕角阈值168在此也被称为“折痕阈值。”对于简化的四边形网格164的每个边,折痕引擎170确定两个四边形之间在边处相遇的“边”角。如果边角超过折痕角阈值168(例如,80度),则折痕引擎170将折痕施加至简化的T样条162的相应边。否则,折痕引擎170不对简化的T样条162的相应边施加折痕。

以这种方式,折痕引擎170不使相对平滑的边角产生折痕,而是使更接近直角的边角产生折痕。在折痕引擎170完成将折痕施加至简化的T样条162之后,折痕引擎170将经折痕的简化的T样条162存储为风格化的T样条172。有利地,相对于由简化的T样条162表示的简化的设计和由输入三角形网格106表示的输入设计两者,选择性地向简化的T样条162增加折痕可以改善由风格化的T样条172表示的风格化的设计的可制造性和美观性。

在替代实施例中,折痕引擎170可以对简化的T样条162执行任何数量的折痕操作,以基于任何相关标准并以任何技术上可行的方式生成风格化的T样条172。例如,在一些实施例中,折痕引擎170可以基于简化的T样条162而不是简化的四边形网格164来确定要使哪些边产生折痕。进一步,在与输入三角形网格106拟合之前、在与输入三角形网格106拟合之后、或者在不与输入三角形网格106拟合的情况下,折痕引擎170可以基于简化的T样条162来确定要使哪些边产生折痕。在替代实施例中,折痕引擎170可以实现任何类型的规则、启发式、算法或经训练的机器学习模型以确定要使哪些边产生折痕。

在折叠引擎170生成风格化的T样条172之后,风格化子系统102向任何数量和类型的软件应用提供风格化的T样条172。每个软件应用可以基于风格化的T样条172和/或由风格化的T样条172表示的风格化设计来执行任何数量的设计、优化和/或制造操作。

如虚线框和箭头所描绘的,在替代实施例中,风格化子系统102可选地包括T样条优化引擎180和/或B-Rep生成引擎190。T样条优化引擎180执行风格化的T样条172的约束优化(即,拟合)以生成优化的T样条182。更确切地说,T样条优化引擎180基于与用户指定的优选风格和/或任何数量的附加要求(例如,性能要求)相关联的任何数量和类型的约束和/或目标来优化风格化的T样条172中的顶点的位置(即,控制点)。

例如,“底部平坦”约束可以指定底面中的所有顶点需要具有相同的高度。类似地,“顶部平坦”约束可以指定顶面中的所有顶点需要具有相同的高度。在一些实施例中,“棱柱形风格”构型包括顶部/底部平坦约束、如体积最小化等目标、以及如机械应力约束等其他约束。棱柱形风格配置可以用于配置T样条优化引擎180以生成表示棱柱形风格的设计的优化的T样条182,该优化的T样条182相对容易使用特定类型的CNC加工方法来制造。

B-Rep生成引擎190可选地将风格化的T-样条172或优化的T-样条182转换成风格化的B-Rep192。通常,由风格化的T样条172表示的风格化设计可以以任何技术上可行的方式被转换成任何数量和类型的不同表示。

图2示出了根据不同实施例的由图1的风格化子系统102生成的一些中间输出的示例性图示。为了解释的目的,由输入三角形网格106表示的示例性输入设计包括有机形状。如先前在此所描述的,为了再现表征有机形状的团块,CNC铣床将必须沿着包含许多耗时的研磨操作的许多非常长的工具路径移动。

骨架提取引擎120基于输入三角形网格106来生成骨架122。值得注意的是,骨架122准确地表示输入三角形网格106的全局形状和拓扑。随后,简化引擎130简化骨架122以生成简化的骨架132。如图所示,简化的骨架132准确地表示三角形网格106的全局形状和拓扑,但是简化的骨架132中的节点的数量和边的数量分别小于骨架122中节点的数量和边的数量。

如先前结合图1所述,方位传播引擎140生成约束生成引擎150用来生成特征曲线集154的方位集142。特征曲线集154和网格复杂度约束158将四边形网格生成引擎160配置为生成简化的T样条162,该简化的T样条162表示比由输入三角形网格106表示的输入设计更简单且更平滑的简化设计。因此,CNC铣床基于由简化的T样条162表示的简化设计制造物体所需的时间将小于CNC铣床基于由输入三角形网格106表示的设计制造物体所需的时间。虽然图2中未示出,但是折痕引擎170随后使简化的T样条162中的一些边产生折痕以生成风格化的T样条172。

传播四边形面的一个或更多个优选方位

图3是根据不同实施例的图1的方位传播引擎140的更详细图示。如图所示,方位传播引擎140基于简化的骨架132、全局方位136和局部方位集138来生成方位集142。简化的骨架132包括但不限于节点310(1)-310(N)和边320(1)-320(E),其中N和E是任何正整数。每条边320连接两个节点310。方位传播引擎140包括但不限于坐标系初始化引擎340、选择性Y分配引擎350、Y传播引擎360和Z分配引擎370。

对于具有一度或二度的每个节点310(i),坐标系初始化引擎340生成并初始化局部坐标系330(i),且接着将局部坐标系330(i)添加到方位集142。如图所示,局部坐标系330(i)包括但不限于局部X轴332(i)、局部Y轴334(i)和局部Z轴336(i)。为了初始化局部坐标系330(i),坐标系初始化引擎340指定与节点310(i)处的简化的骨架132的方向相切的局部X轴332(i)的方向,将局部Y轴334(i)设置为未指定,并且将局部Z轴336(i)设置为未指定。坐标系初始化引擎340忽略不具有一或两度的节点310。

因而,方位集142包括但不限于具有一度或二度的节点310中的每一个的不同局部坐标系330。仅出于解释的目的,局部坐标系330(i)对应于节点310(i)。仅为了说明的目的,节点310(1)具有二度,并且因此,方位集142包括局部坐标系330(1)。类似地,节点310(3)和310(N)分别具有1度和2度。结果,方位集142包括局部坐标系330(3)和330(N)。相比之下,节点310(2)具有三度,且方位集142不包括对应局部坐标系330。

选择性Y分配引擎350基于全局方位136和局部方位集138指定任意数量的局部Y轴334(i)的方向。对于具有一度或二度的每个节点310(i),选择性Y分配引擎350确定节点310(i)是否与局部方位集138中指定的局部方位相关联。如果节点310(i)与局部方位相关联,那么选择性Y分配引擎350选择局部方位作为节点310(i)的优选方位。否则,Y分配引擎350选择全局方位136作为节点310(i)的优选方位。如果优选方位不近似平行于局部X轴332(i),则Y分配引擎350指定与局部X轴332(i)正交且与节点310(i)处的优选方位正交的局部Y轴334(i)的方向。否则,Y分配引擎350不指定局部Y轴334(i)。

Y传播引擎360传播被指定为确定未指定的局部Y轴334的方向的局部Y轴334。在一些实施例中,Y传播引擎360迭代地执行以下算法,直到具有为1或2度的所有节点310的局部Y轴334被指定为止。对于具有一度或两度且具有未指定的局部Y轴334(i)的每个节点310(i),Y传播引擎360确定两个相邻节点310中的至少一个是否具有指定的局部Y轴334。如果相邻节点310都没有指定局部Y轴334,则Y传播引擎360在当前迭代期间不向局部Y轴334(i)指派方向。

否则,对于具有指定的局部Y轴334(j)的每个相邻节点310(j),Y传播引擎360将局部Y轴334(j)投影到节点310(i)处的Y-Z平面上以确定相关联的投影方向。如果相邻节点310中的仅一者具有指定的局部Y轴334,则Y传播引擎360将局部Y轴334(i)设置为投影方向。否则,Y传播引擎360将局部Y轴334(i)设置为投影方向的平均值。

随后,对于度数为一或二的每个节点310(i),Z分配引擎370指定与局部X轴332(i)正交且与局部Y轴334(i)正交的局部Z轴336(i)的方向。在替代实施例中,方位传播引擎140可以任何技术上可行的方式确定局部坐标系330。例如,在不同实施例中,Y传播引擎360可用任何技术上可行的方式实现任何标签传播算法,以确定局部Y轴334的方向,而不是实现本文先前描述的传播算法。

图4是根据各种实施例的用于自动修改三维对象设计的方法步骤的流程图。尽管参见图1-3的系统描述了方法步骤,但是本领域技术人员将理解,被配置为以任何顺序实现方法步骤的任何系统都落入各种实施例的范围内。

如图所示,方法400在步骤402开始,其中骨架提取引擎120基于输入三角形网格106来生成骨架122和骨架映射集124。输入三角形网格106表示3D对象设计。在步骤404,简化引擎130基于输入三角形网格106、骨架122、骨架映射集124、以及骨架复杂度阈值128来生成简化的骨架132。在步骤406,方位传播引擎140将一个或更多个优选方位(即,全局方位136和/或在局部方位集138中指定的局部方位)传播到简化的骨架132中具有一度或二度的每个节点以生成方位集142。在步骤408,约束生成引擎150基于方位集142、简化的骨架132、骨架映射集124和输入三角形网格106来生成特征曲线集154和经边界平滑的三角形网格152。

在步骤410,四边形网格生成引擎160基于特征曲线集154、经边界平滑的三角形网格152和网格复杂度约束158来生成简化的四边形网格164。在步骤412,四边形网格生成引擎160将简化的四边形网格164转换成简化的T样条162。在步骤414,折痕引擎170基于折痕角阈值168使简化的T样条162中的任何数量的边产生折痕,以生成表示风格化设计的风格化的T样条172。在步骤416,风格化子系统102向任何数量的软件应用提供风格化的T样条172以用于进一步优化和/或制造操作。然后方法400终止。

总之,所公开的技术可用于有效地修改设计以反映非功能性偏好。在一个实施例中,风格化子系统基于网格复杂度约束、一个或更多个优选方位和折痕角阈值将表示3D对象设计的输入三角形网格转换成表示风格化3D对象设计的风格化的T样条。风格化子系统包括但不限于骨架提取引擎、简化引擎、方位传播引擎、约束生成引擎、四边形网格生成引擎、以及折痕引擎。骨架提取引擎生成表示输入三角形网格的全局形状和拓扑的骨架。骨架提取引擎还生成骨架映射集,该骨架映射集针对骨架中的每个节点和每个边指定到输入三角形网格中的一个或更多个顶点的映射。简化引擎分割骨架中的边,基于骨架复杂度参数来确定冗余节点/边,并且移除冗余节点/边以生成简化的骨架。方位传播引擎140基于全局方位和/或指定任何数目的节点的局部方位的局部方位集来确定用于简化的骨架中具有一度或二度的每个节点的局部坐标系。

约束生成引擎基于与简化的骨架、骨架映射集和输入三角形网格相关联的局部坐标系来生成特征曲线集和底层经边界平滑的三角形网格。四边形网格生成引擎生成简化的四边形网格,所述简化的四边形网格具有与经边界平滑的三角形网格相同的拓扑并且近似于该经边界平滑的三角形网格,同时限制简化的四边形网格的复杂性并且基于特征曲线集来控制所生成的四边形面的方位。随后,四边形网格生成引擎将简化的四边形网格转换成简化的T样条。折痕引擎基于折痕角阈值使简化的T样条中的任意数量的边产生折痕,以生成风格化的T样条。最后,风格化子系统将风格化的T样条提供给任何数量的软件应用以用于进一步优化、设计、格式转换或制造操作。

所公开的技术相对于现有技术的至少一个技术优点在于风格化子系统可更有效地修改3D对象的设计以改善总体美观性和可制造性。具体地,风格化子系统自动执行简化、定向和折痕操作,这些操作可以修改包括有机形状的设计中的表面和边的类型,以产生具有更少的波浪起伏的形状和面的风格化设计,这些波浪起伏的形状和面更好地与一个或更多个优选方位对齐。因而,改善给定3D对象设计的美观性和可制造性所需的时间和努力可相对于更多手动的现有技术方法显著降低。进一步,因为风格化子系统可以自动修改3D对象设计,所以在用于设计活动的分配的预算内可以对3D对象设计做出更多数量的修改,从而增加这些设计的总体美观性质量和可制造性。这些技术优点提供了优于现有技术方法的一个或更多个技术进步。

1.在一些实施例中,一种用于自动修改三维(3D)对象设计的计算机实现的方法,包括:基于表示所述3D对象设计的输入三角形网格、与所述输入三角形网格的至少部分相关联的优选方位以及至少一个网格复杂度约束,来生成简化的四边形网格;执行一个或更多个操作以将所述简化的四边形网格转换成简化的T样条;以及执行一个或更多个操作以使包括在所述简化的T样条中的一个或更多个边产生折痕,以生成风格化的T样条,其中所述风格化的T样条表示比所述3D对象设计更收敛于所述优选方位的风格化设计。

2.根据条款1所述的计算机实现的方法,其中所述优选方位与加工过程、美观性偏好和风格中的至少一个相关联。

3.根据条款1或2所述的计算机实现的方法,其中使用生成式设计算法和拓扑优化算法中的至少一个生成所述输入三角形网格。

4.根据条款1-3中任一项权利要求所述的计算机实现的方法,其中生成所述简化的四边形网格包括基于所述输入三角形网格和所述优选方位生成一个或更多个形状约束;以及基于所述输入三角形网格、所述一个或更多个形状约束、以及所述至少一个网格复杂度约束来执行四边形网格生成算法。

5.根据条款1-4中任一项所述的计算机实现的方法,其中生成所述简化的四边形网格包括基于所述优选方位来配置目标函数;以及基于所述输入三角形网格、所述目标函数以及所述至少一个网格复杂度约束来执行四边形网格生成算法。

6.根据条款1-5中任一项所述的计算机实现的方法,其中生成所述简化的四边形网格包括基于所述输入三角形网格生成简化的骨架;基于所述简化的骨架和所述优选方位来生成一个或更多个形状约束;以及基于所述输入三角形网格、所述一个或更多个形状约束、以及所述至少一个网格复杂度约束来执行四边形网格生成算法。

7.根据条款1-6中任一项所述的计算机实现的方法,其中生成所述简化的四边形网格包括基于所述输入三角形网格和所述优选方位来生成一条或更多条特征曲线,其中每条特征曲线包括一系列三角形边;以及基于所述输入三角形网格、所述一条或更多条特征曲线以及所述至少一个网格复杂度约束来执行四边形网格生成算法。

8.根据条款1-7中任一项所述的计算机实现的方法,其中执行所述一个或更多个操作以转换所述简化的四边形网格包括基于所述简化的四边形网格生成初始T样条;以及将所述初始T样条与所述输入三角形网格进行拟合以生成所述简化的T样条。

9.根据条款1-8中任一项所述的计算机实现的方法,其中执行所述一个或更多个操作以使一个或更多个边产生折痕包括:基于规则、启发式、算法和经训练的机器学习模型中的至少一个来确定包括在所述简化的T样条中的应当被产生折痕的一个或更多个边;以及对于包括在所述一个或更多个边中的每个边,对所述边执行一个或更多个折痕操作。

10.根据条款1-9中任一项所述的计算机实现的方法,其中执行所述一个或更多个操作以使一个或更多个边产生折痕包括:确定与包括在所述简化的四边形网格中的两个四边形之间的第一边相关联的第一角度超过折痕阈值;确定包括在所述简化的T样条中的第二边对应于所述第一边;以及对所述第二边执行一个或更多个折痕操作;

11.在一些实施例中,一种或更多种非暂态计算机可读介质,其包括指令,所述指令当由一个或更多个处理器执行时,使得所述一个或更多个处理器通过执行以下步骤来自动修改三维(3D)对象设计:基于表示所述3D对象设计的输入三角形网格以及与所述输入三角形网格的至少部分相关联的优选方位来生成一个或更多个形状约束;基于所述输入三角形网格、所述一个或更多个形状约束、至少一个网格复杂度约束和四边形生成算法来生成简化的T样条;以及执行一个或更多个操作以使包括在所述简化的T样条中的一个或更多个边产生折痕以生成风格化的T样条,其中所述风格化的T样条表示比所述3D对象设计更收敛于所述优选方位的风格化的设计。

12.根据条款11所述的一种或更多种非暂时性计算机可读介质,其中所述优选方位与作为模制制造工艺的部分的池化方向或作为三轴减材制造工艺的部分的加工方向相关联。

13.根据条款11或12所述的一种或更多种非暂时性计算机可读介质,其中所述3D对象设计包括至少一种有机形状。

14.根据条款11-13中任一项所述的一种或更多种非暂时性计算机可读介质,其中生成所述一个或更多个形状约束包括基于所述输入三角形网格生成简化的骨架;以及基于所述简化的骨架和所述优选方位来确定所述一个或更多个形状约束。

15.根据条款11-14中任一项所述的一种或更多种非暂时性计算机可读介质,其中所述一个或更多个形状约束包括一条或更多条特征曲线,并且每条特征曲线包括一系列三角形边。

16.根据条款11-15中任一项所述的一种或更多种非暂态计算机可读介质,其中生成所述简化的T样条包括基于所述输入三角形网格、所述一个或更多个形状约束和所述至少一个网格复杂度约束执行所述四边形网格生成算法以生成简化的四边形网格;以及执行一个或更多个操作以将所述简化的四边形网格转换成所述简化的T样条。

17.根据条款11-16中任一项所述的一种或更多种非暂态计算机可读介质,其中生成所述简化的T样条包括基于所述输入三角形网格、所述一个或更多个形状约束和所述至少一个网格复杂度约束来执行所述四边形网格生成算法以生成简化的四边形网格;执行一个或更多个操作以将所述简化的四边形网格转换成初始T样条;以及将所述初始T样条与所述输入三角形网格进行拟合以生成所述简化的T样条。

18.根据条款11-17中任一项所述的一种或更多种非暂时性计算机可读介质,其中执行所述一个或更多个操作以使一个或更多个边产生折痕包括:基于规则、启发式、算法和经训练的机器学习模型中的至少一个来确定包括在所述简化的T样条中的应当被产生折痕的一个或更多个边;以及对于包括在所述一个或更多个边中的每个边,对所述边执行一个或更多个折痕操作。

19.根据条款11-18中任一项所述的一种或更多种非暂态计算机可读介质,其中执行所述一个或更多个操作以使一个或更多个边产生折痕包括:确定与包括在所述简化的T样条中的第一边相关联的第一角度超过折痕阈值;以及对所述第一边执行一个或更多个折痕操作。

20.在一些实施例中,一种用于自动修改三维(3D)对象设计的系统包括:一个或更多个存储器,所述一个或更多个存储器存储指令;以及一个或更多个处理器,其耦接至所述一个或更多个存储器,并且当执行所述指令时,所述一个或更多个处理器被配置为基于表示所述3D对象设计的输入三角形网格、与所述输入三角形网格的至少部分相关联的优选方位、以及至少一个网格复杂度约束来生成简化的四边形网格;执行一个或更多个操作以将所述简化的四边形网格转换成简化的T样条;以及执行一个或更多个操作以使包括在所述简化的T样条中的一个或更多个边产生折痕以生成风格化的T样条,其中所述风格化的T样条表示比所述3D对象设计更收敛于所述优选方位的风格化设计。

记载在任意权利要求中的任意权利要求要素和/或在本申请中描述的任意要素的任意和所有组合以任意方式落入本实施例和保护的预期范围内。

已出于说明的目的呈现了各种实施例的描述,但其并非意在穷举或限于所公开的实施例。在不背离所描述的实施例的范围和精神的情况下,许多修改和变化对本领域的普通技术人员而言将是显而易见的。

本实施例的各方面可以体现为系统、方法或计算机程序产品。因此,本公开的多个方面可以采取以下形式:完全硬件实施例、完全软件实施例(包括固件、常驻软件、微代码等)或将软件和硬件方面组合的实施例,这些实施例在此可以全部统称为“模块”、“系统”或“计算机。”另外,本公开中描述的任何硬件和/或软件技术、过程、功能、组件、引擎、模块或系统可被实现为电路或电路集。此外,本公开的各方面可以采取体现在一个或更多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质具有体现在其上的计算机可读程序代码。

可以利用一个或更多个计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是例如但不限于电、磁、光、电磁、红外或半导体系统、装置或设备,或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷尽列举)包括:具有一个或更多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光纤、便携式压缩盘只读存储器(CD-ROM)、光存储设备、磁存储设备、或前述各项的任何合适的组合。在本文的上下文中,计算机可读存储介质可以是能够包含或存储程序的任何有形介质,该程序由指令执行系统、装置或设备使用或结合。

上文参考根据本发明的实施例的方法、设备(系统)和计算机程序产品的流程图说明和/或框图来描述本发明的方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器。当指令经由计算机或其他可编程数据处理装置的处理器执行时,使得能够实现在流程图和/或框图的一个或更多个块中指定的功能/动作。这样的处理器可以是但不限于通用处理器、专用处理器、专用应用程序处理器或现场可编程门阵列。

附图中的流程图和框图示出了根据本公开的各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。对此,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含用于实现一个或更多个指定的逻辑功能的一个或更多个可执行指令。还应注意,在一些替代实施例中,框中所标注的功能可以不以图中所标注的次序发生。例如,取决于所涉及的功能,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行。还将注意的是,框图和/或流程图中的每个框、以及框图和/或流程图中的框的组合可以由执行指定功能或动作的基于专用硬件的系统、或专用硬件与计算机指令的组合来实现。

虽然前述内容针对本公开的实施例,但是可以在不脱离本公开的基本范围的情况下设计本公开的其他和进一步的实施例,并且其范围由所附权利要求确定。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号