一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

机构语义自适应维持的CAD模型多分辨率网格化方法

2022-04-25 01:31:32 来源:中国专利 TAG:

机构语义自适应维持的cad模型多分辨率网格化方法
技术领域
1.本发明涉及计算机辅助设计领域,具体而言,设计一种机构语义自适应维持的cad模型多分辨率网格化方法。


背景技术:

2.由于模型格式的差异,主流工业软件上设计的cad模型(底层为边界表示模型)通常需要经过转换才能在vr/ar环境中进行使用,即对模型做网格化处理。对于cad模型(特别是复杂的机械装配体模型),直接对其进行网格化操作,通常会损失原cad模型中丰富的机构语义信息,例如装配约束。这些信息通常产生于产品设计阶段(如概念设计、具体化设计),对产品后期的仿真和制造具有十分重要的指导意义。例如cad模型中的装配约束、运动副等信息,直接决定产品模型在仿真中零件(或子装配体)之间的运动方式、相对自由度;决定产品在制造装配时零件(或子装配体)之间的联接方式等。为了使得网格化的cad模型在vr/ar环境中能够准确有效地开展满足工业标准的应用(仿真、装配等),需要在网格化的过程中自适应地维持cad模型中必要的机构语义。
3.同时,为了在vr/ar环境中正确高效地显示cad模型,需要对cad模型进行多分辨率的网格化处理。上述处理对cad模型(特别是复杂的机械装配体模型)中精确的几何信息往往需要进行离散化、简化、压缩,甚至剔除。因此,不恰当的网格化不仅会损失cad模型原有的精度,甚至会使得转化之后的cad模型丧失原有的工程应用价值。例如,由于精度的过度丧失,网格化后的cad模型所设计的装配工艺规划无法有效用于指导相应产品的准确装配。
4.综上所述,解决网格化的cad模型能够同时兼顾vr/ar环境的需求和工程应用的有效性,是基于vr/ar有效开展工程应用的一个十分关键和基础的问题。
5.目前,面向cad模型网格化的方法主要有三种:
6.(1)cad模型整体网格化。通过现有主流cad软件将cad模型整体导出成一个网格模型。整体导出后的cad模型无法被拆分,cad模型中的各个零件无法进行单独的操作和移动,失去了工程应用的价值。
7.(2)零件单独网格化后二次组装。通过现有主流cad软件将cad模型中的每个零件进行单独导出成零件网格模型。之后,将所有零件对应的网格模型导入到虚拟现实场景中进行二次组装,调整各个零件对应的网格模型的位置与原cad模型中各个零件位置一致。这类方法需要人工交互将零件在虚拟现实场景中进行二次组装,费时费力,对于一些复杂的cad模型更是难以进行正确组装。
8.(3)针对某一特定cad模型格式单独开发。为每种不同的工业软件对应的cad模型格式单独进行二次开发。这类方法在常见的工业软件(如常见的solidworks、catia等)上进行二次开发,读取并分析该工业软件所支持的cad模型格式,分离出cad模型中各个零件并读取出位置信息,之后对各个零件进行网格化并摆放在指定位置,实现cad模型网格化。然而,这类方法仅针对于某一类cad软件及其对应的模型格式,不具有通用性。


技术实现要素:

9.本发明主要目的在于提供一种机构语义自适应维持的cad模型多分辨率网格化方法,以解决背景技术中cad模型网格化后难以同时满足vr/ar环境的需求和工程应用的有效性的问题。特别地,本发明中涉及的cad模型均指装配体模型,每个装配体模型由多个零件构成。
10.本发明将cad模型网格化后导出成多分辨率网格化cad模型。该多分辨率网格化cad模型包含零件之间的多层次机构语义信息、多分辨率网格化零件模型等信息,可以在vr/ar环境中准确有效地开展满足工业标准的应用(仿真、装配等)。相较于现有方法,本发明克服了不同cad系统之间的格式差异,不需要对每个不同的cad系统单独进行二次开发,更加具有通用性;保持了cad模型网格化后各个零件的独立性,无需在虚拟现实环境中再次进行手动装配;自适应维持了cad模型中必要的机构语义信息,可以更有效地开展满足工业标准的应用(仿真、装配等);提供了多分辨率网格化装配体模型,可以在vr/ar环境中更高效地交互和渲染。
11.机构语义自适应维持的cad模型多分辨率网格化方法,包括以下步骤:
12.步骤1、cad模型多层次机构语义提取;
13.提取装配体模型中的机构语义信息,并采用多层次表示。
14.步骤2、cad模型多分辨率网格化;
15.采用多分辨率技术,通过减少零件模型数量、几何压缩、剔除隐藏内容的方式,对cad模型进行多分辨率网格化处理。
16.步骤3、多分辨率网格化cad模型扁平化存储;
17.设计多分辨率网格化cad模型的扁平化结构,将网格化后的cad模型的所有零件,以及零件之间的多层次机构语义信息均存放于同一层中。最终输出可以为vr/ar环境提供支持的多分辨率网格化cad模型。
18.进一步的,所述的步骤1具体方法如下;
19.在cad模型网格化之前,提取cad模型中的机构语义信息并组织为多层次表示。所述的机构语义信息包括cad模型各零件之间的几何约束、自由度以及运动副。具体来说:
20.1-1.分别在约束层和语义层上提取cad模型中的机构语义信息。
21.1-2.在约束层上,调用cad模型所对应的工业cad软件中读取零件之间几何约束的api,提取cad模型中各个零件之间的几何约束,具体包括以下几何约束:共面、同轴心、距离、相切、垂直、平行、点线重合、点面重合、边面重合。
22.1-3.在语义层上,通过现有的基于几何约束推导的方法(运动副自动识别方法),从提取到的几何约束中推导出自由度以及运动副。
23.提取的cad模型中各个零件之间的自由度具体包括:1)平移;2)旋转;3)复合。
24.提取的cad模型中各个零件之间的运动副类型具体包括:旋转副、移动副、圆柱副、螺旋副、球面副、平面副、齿轮副、万向节、点面副、点线副、曲面副、固定副。
25.1-4.对提取到的cad模型中的机构语义信息采用多层次表示。多层次表示具体分为约束层和语义层,约束层用于表示提取到的几何约束,语义层用于表示提取到的自由度以及运动副。
26.进一步的,步骤2具体方法如下;
27.首先通过自适应选择网格剖分精度,在多个分辨率下对cad模型进行网格化处理;之后通过减少零件模型数量、几何压缩、剔除隐藏内容的方式,对网格化后的cad模型做进一步的轻量化处理。具体来说:
28.2-1.对opencascade开源库进行二次开发。
29.利用opencascade开源库中读取通用模型格式的cad模型的相关函数,读取通用模型格式的cad模型。对于工业cad软件生成的专用模型格式,首先利用opencascade开源库中的模型格式转换的相关函数将其转换成通用模型格式。
30.2-2.改进opencascade开源库中原有的网格剖分函数,对通用模型格式的cad模型进行网格化。在网格化的过程中,判断网格面归属于cad模型的哪个零件,将属于cad模型不同零件的网格面重新组合生成一组不同的零件网格模型。具体来说:
31.2-2-1.由程序自动生成或由用户交互指定cad模型网格剖分的精度。
32.2-2-2.顺序遍历cad模型上的每个面,调用opencascade开源库中原有的网格剖分函数根据设定的精度对该面进行网格剖分。网格剖分函数会为每一个网格面返回一个位置信息,该位置信息用于记录网格面在空间中的位置,位于同一个零件的网格面返回的位置信息相同。
33.2-2-3.对cad模型上的所有面均完成网格剖分后,依据每个网格面返回的位置信息,对网格面按照零件进行区分和重新组合。得到该网格剖分精度下的多个零件网格模型,这些零件网格模型共同组成该网格剖分精度下的网格化cad模型。
34.2-3.根据实际需求,采用不同网格剖分精度对同一个cad模型重复2-2中的网格化过程,得到该cad模型在不同网格剖分精度下的多个网格化cad模型及其对应的多组零件网格模型。
35.2-4.通过减少零件模型数量、几何压缩、剔除隐藏内容的方式,对网格化cad模型做进一步的轻量化处理。最终得到不同分辨率下的多个网格化cad模型及其对应的多组零件网格模型。具体来说:
36.2-4-1.使用vr/ar环境中共享几何节点技术,减少网格化cad模型中真实的零件网格模型数量。对于cad模型中相同的零件,仅存储一个零件网格模型来减少cad模型中的零件网格模型的数量。
37.2-4-2.对于每个零件网格模型中的每个拓扑面,若该拓扑面的几何面积小于给定阈值,对该拓扑面对应的所有网格面片进行剔除。
38.2-4-3.剔除隐藏内容。采用基于视点剔除的方式,通过旋转模型或旋转视点,找到零件网格模型中在所有视角下均不可见的网格面片,并将其从零件网格模型中剔除。
39.进一步的,步骤3具体方法如下;
40.3-1.设计多分辨率网格化装配体模型的扁平化结构。
41.设计多分辨率网格化装配体模型的扁平化结构,该扁平化结构共分为5层。
42.3-2.多分辨率网格化cad模型的扁平化结构的第一层为根节点,根节点表示一个多分辨率网格化cad模型。为根节点绑定一个变换矩阵,使得多分辨率网格化cad模型在vr/ar环境中可以进行整体变换。
43.3-3.多分辨率网格化cad模型的扁平化结构的第二层包含一个多层级机构语义节点和若干个多分辨率网格化零件模型节点,均挂在第一层的根节点下。多层级机构语义节
点存储了cad模型零件之间的多层次机构语义信息。每个多分辨率网格化零件模型节点都表示一个多分辨率网格零件模型,同时为每个多分辨率网格化零件模型节点绑定一个变换矩阵,使得多分辨率网格化零件模型在vr/ar环境中可以单独进行交互和变换。
44.3-4.多分辨率网格化cad模型的扁平化结构的第三层为不同分辨率的零件网格模型节点,挂在第二层对应的多分辨率网格化零件模型节点下,一个多分辨率网格化零件模型节点包含若干个不同分辨率的零件网格模型节点。每个不同分辨率下的零件网格模型节点表示一个特定分辨率下的零件网格模型。
45.3-5.多分辨率网格化cad模型的扁平化结构的第四层位网格面片节点和非几何信息节点,均挂在第三层的某一特定分辨率的零件网格模型节点下,一个零件网格模型节点包含一个网格面片节点和一个非几何信息节点。网格面片节点用于存储该分辨率下的零件网格模型的所有网格面片。非几何信息节点用于存储该分辨率下的零件网格模型的非几何信息。
46.3-6.多分辨率网格化cad模型的扁平化结构的第五层为顶点集合节点。顶点集合节点挂在第四层的网格面片节点下,用于存储网格面片对应的顶点,一个网格面片节点包含一个顶点集合节点。
47.本发明有益效果如下:
48.本发明设计了一种机构语义自适应维持的cad模型多分辨率网格化方法。首先提取cad模型中的机构语义信息并组织为多层次表示;之后,采用多分辨率技术,通过减少零件模型数量、几何压缩、剔除隐藏内容的方式对cad模型进行网格化;最后,设计了一种扁平化结构用于规范统一地表示及存储多分辨率网格化cad模型;最终输出可以为vr/ar环境提供支持的多分辨率网格化cad模型。
49.本发明对cad模型进行了多分辨率的网格化,同时自适应地维持了cad模型中必要的机构语义信息,使得网格化后的cad模型不仅可以在vr/ar环境中进行高效交互和渲染,还能够准确有效地开展满足工业标准的应用(仿真、装配等)。
附图说明
50.图1为本发明流程图。
51.图2为进行网格化的示例cad模型。
52.图3为示例cad模型网格化预览效果。
53.图4为不同分辨率的零件网格模型效果对比。
54.图5-6为基于本发明得到的多分辨率网格化cad模型导入到虚拟现实场景中的显示效果。
55.图7为多分辨率网格化cad模型的扁平化结构。
具体实施方式
56.下面结合附图和实施例对本发明作进一步说明。
57.如图1所示,机构语义自适应维持的cad模型多分辨率网格化方法,主要包括以下步骤:
58.步骤1、cad模型多层次机构语义提取;
59.cad模型中含有丰富的机构语义信息,例如装配约束。这些信息通常产生于产品设计阶段(如概念设计、具体化设计),对产品后期的仿真和制造具有十分重要的指导意义。为了使得网格化的cad模型能够在vr/ar环境中准确有效地开展满足工业标准的应用,如产品仿真、装配工艺规划,在cad模型网格化之前,本发明提取cad模型中的机构语义信息并组织为多层次表示。多层次机构语义信息将作为多分辨率网格化cad模型的扁平化结构中的一个节点与网格化后的零件模型一并存储。所述的机构语义信息包括cad模型各零件之间的几何约束、自由度以及运动副。具体来说:
60.1-1.分别在约束层和语义层上提取cad模型中的机构语义信息。
61.1-2.在约束层上,调用cad模型所对应的工业cad软件中读取零件之间几何约束的api,提取cad模型中各个零件之间的几何约束,具体包括以下几何约束:共面、同轴心、距离、相切、垂直、平行、点线重合、点面重合、边面重合。
62.1-3.在语义层上,通过现有的基于几何约束推导的方法(运动副自动识别方法),从提取到的几何约束中推导出自由度以及运动副。
63.提取的cad模型中各个零件之间的自由度具体包括:1)平移;2)旋转;3)复合。
64.提取的cad模型中各个零件之间的运动副类型具体包括:旋转副、移动副、圆柱副、螺旋副、球面副、平面副、齿轮副、万向节、点面副、点线副、曲面副、固定副。
65.1-4.对提取到的cad模型中的机构语义信息采用多层次表示。多层次表示具体分为约束层和语义层,约束层用于表示提取到的几何约束,语义层用于表示提取到的自由度以及运动副。具体如表1所示。
66.表1零件模型之间的多层次机构语义
[0067][0068]
步骤2、cad模型多分辨率网格化;
[0069]
为了在vr/ar环境中有效显示cad模型,支持开展高效交互和渲染,本发明采用多分辨率技术对cad模型进行网格化。首先通过自适应选择网格剖分精度,在多个分辨率下对cad模型进行网格化处理;之后通过减少零件模型数量、几何压缩、剔除隐藏内容的方式,对网格化后的cad模型做进一步的轻量化处理。具体来说:
[0070]
2-1.对opencascade开源库进行二次开发。
[0071]
利用opencascade开源库中读取通用模型格式(step格式)的cad模型的相关函数,读取通用模型格式(step格式)的cad模型。对于工业cad软件生成的专用模型格式,首先利用opencascade开源库中的模型格式转换的相关函数将其转换成通用模型格式(step格式)。读取的示例装配体模型如图2所示。
[0072]
2-2.改进opencascade开源库中原有的网格剖分函数,对通用模型格式(step格式)的cad模型进行网格化。opencascade开源库中原有的网格剖分函数对cad模型剖分后,整个cad模型会被整体剖分成一个网格模型,无法被拆分,cad模型中的各个零件无法进行单独的操作和移动,失去了工程应用的价值。因此,改进了opencascade开源库中原有的网格剖分函数,在网格化的过程中,判断网格面归属于cad模型的哪个零件,将属于cad模型不同零件的网格面重新组合生成一组不同的零件网格模型。具体来说:
[0073]
2-2-1.由程序自动生成或由用户交互指定cad模型网格剖分的精度。
[0074]
2-2-2.顺序遍历cad模型上的每个面,调用opencascade开源库中原有的网格剖分函数根据设定的精度对该面进行网格剖分。网格剖分的精度由2-2-1中给出。网格剖分函数会为每一个网格面返回一个位置信息,该位置信息用于记录网格面在空间中的位置,位于同一个零件的网格面返回的位置信息相同。
[0075]
2-2-3.对cad模型上的所有面均完成网格剖分后,依据每个网格面返回的位置信息,对网格面按照零件进行区分和重新组合。得到该网格剖分精度下的多个零件网格模型,这些零件网格模型共同组成该网格剖分精度下的网格化cad模型。最终得到的每个零件网格模型具体包括了组成网格模型的网格面片、网格面片的法向、组成网格面片的顶点、顶点颜色,均可以在网格剖分的过程中提取到。示例cad模型的网格化效果如图3所示。
[0076]
2-3.根据实际需求,采用不同网格剖分精度对同一个cad模型重复2-2中的网格化过程,得到该cad模型在不同网格剖分精度下的多个网格化cad模型及其对应的多组零件网格模型。
[0077]
2-4.通过减少零件模型数量、几何压缩、剔除隐藏内容的方式,对网格化cad模型做进一步的轻量化处理。最终得到不同分辨率下的多个网格化cad模型及其对应的多组零件网格模型。不同分辨率的零件网格模型效果对比如图4所示。具体来说:
[0078]
2-4-1.使用vr/ar环境中共享几何节点技术,减少网格化cad模型中真实的零件网格模型数量。cad模型中通常存在许多相同的零件,如标准连接件、对称的装配件等。在vr/ar环境中只需要通过共享几何节点就可以重复使用相同的零件网格模型。因此,对于cad模型中相同的零件,仅存储一个零件网格模型来减少cad模型中的零件网格模型的数量。
[0079]
2-4-2.对于每个零件网格模型中的每个拓扑面,若该拓扑面的几何面积小于给定阈值(往往对应一些模型中的细节特征),对该拓扑面对应的所有网格面片进行剔除。
[0080]
2-4-3.剔除隐藏内容。vr/ar环境中主要做外表面展示,为此,采用计算机图形学中常用的基于视点剔除的方式,通过旋转模型或旋转视点,找到零件网格模型中在所有视角下均不可见的网格面片,并将其从零件网格模型中剔除。
[0081]
步骤3、多分辨率网格化cad模型扁平化存储;
[0082]
为了使得网格化后的cad模型,在vr/ar环境中具有规范统一的表示及存储方式,本发明设计了一种多分辨率网格化cad模型的扁平化结构,将网格化后的cad模型的所有零件网格模型,以及cad模型各个零件之间的多层次机构语义信息均存放于同一层中。最终输出可以为vr/ar环境提供支持的多分辨率网格化cad模型。基于本发明得到的多分辨率网格化cad模型导入到虚拟现实场景中的显示效果如图5-6所示。具体来说:
[0083]
3-1.设计多分辨率网格化装配体模型的扁平化结构。
[0084]
产品的装配体模型(通常采用层次装配树表示),随着具体需求、设计人员的设计
风格等差异,具有多种多样层次装配树。为了使得网格化的cad模型,在vr/ar环境中具有规范统一的表示及存储方式,本发明设计了多分辨率网格化装配体模型的扁平化结构。如图7所示,该扁平化结构共分为5层。具体来说:
[0085]
3-2.多分辨率网格化cad模型的扁平化结构的第一层为根节点,根节点表示一个多分辨率网格化cad模型。为根节点绑定一个变换矩阵(初值为单位矩阵),使得多分辨率网格化cad模型在vr/ar环境中可以进行整体变换。
[0086]
3-3.多分辨率网格化cad模型的扁平化结构的第二层包含一个多层级机构语义节点和若干个多分辨率网格化零件模型节点,均挂在第一层的根节点下。多层级机构语义节点存储了由1-4中获取的cad模型零件之间的多层次机构语义信息。每个多分辨率网格化零件模型节点都表示一个多分辨率网格零件模型,同时为每个多分辨率网格化零件模型节点绑定一个变换矩阵(初值为单位矩阵),使得多分辨率网格化零件模型在vr/ar环境中可以单独进行交互和变换。
[0087]
3-4.多分辨率网格化cad模型的扁平化结构的第三层为不同分辨率的零件网格模型节点,挂在第二层对应的多分辨率网格化零件模型节点下,一个多分辨率网格化零件模型节点包含若干个不同分辨率的零件网格模型节点。每个不同分辨率下的零件网格模型节点表示一个特定分辨率下的零件网格模型。
[0088]
3-5.多分辨率网格化cad模型的扁平化结构的第四层位网格面片节点和非几何信息节点,均挂在第三层的某一特定分辨率的零件网格模型节点下,一个零件网格模型节点包含一个网格面片节点和一个非几何信息节点。网格面片节点用于存储该分辨率下的零件网格模型的所有网格面片,由2-4中获取。非几何信息节点用于存储该分辨率下的零件网格模型的非几何信息,包括网格面片对应的颜色、法向,由2-4中获取。
[0089]
3-6.多分辨率网格化cad模型的扁平化结构的第五层为顶点集合节点。顶点集合节点挂在第四层的网格面片节点下,用于存储网格面片对应的顶点,一个网格面片节点包含一个顶点集合节点,由2-4中获取。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献