一种基于通用几何描述的三维模型数据交换方法与流程
- 国知局
- 2024-10-15 09:32:03
本发明属于数据交换,具体涉及一种基于通用几何描述的三维模型数据交换方法。
背景技术:
1、数据交换是指在多个数据终端设备(dte)之间,为任意两个终端设备建立数据通信临时互连通路的过程。数据交换可以分为:电路交换、报文交换、分组交换和混合交换。
2、图模引擎是一种底层的软件包,专门用来支持高层的图形绘制需求。对外封装了各种图形可视化相关的对象。用户可以采用面向对象的开发方法,直接用这些对象来搭建,管理场景,并指定把显示结果绘制到某个窗口。引擎内部会调用面向图形硬件的api,实现各个可视化对象的绘制。
3、现有的模型数据交换方法还存在一些问题:不方便利用图模引擎,并配合通用几何进行描述,完成三维模型数据的交换,从而不方便对数据进行分解,导致不能对数据进行单独存储或检索,从而降低数据交换的便捷性,降低数据交换的效率,为此我们提出一种基于通用几何描述的三维模型数据交换方法。
技术实现思路
1、本发明的目的在于提供一种基于通用几何描述的三维模型数据交换方法,以解决上述背景技术中提出的问题。
2、为实现上述目的,本发明提供如下技术方案:一种基于通用几何描述的三维模型数据交换方法,包括以下步骤:
3、s1.构建模型基本对象:在图模引擎数据对象的基础上,构建一个动态对象,作为所有其他图模引擎数据对象的基础,即为模型基本对象,所述图模引擎数据对象从所述模型基本对象中继承的其他对象,具有预定义属性和动态属性的组合;
4、s2.对模型结构数据进行描述:所述图模引擎数据对象的模型结构数据通过基础的顶点和面进行描述,数据结构如下:
5、geomtry {
6、vertices: [] // 顶点数据 x,y,z, 每3个数据组成一个顶点
7、face: [] // 三角面数据顶点索引;
8、s3.模型数据提交:使用连接器进行数据交换,通过后台服务器对所述模型基本对象进行处理,在用户确定提交所述模型基本对象时,将所述模型基本对象转换为所述图模引擎数据对象,然后嵌套在父对象中以创建提交,完成数据交换。
9、优选的,所述模型基本对象包括mesh对象、点云对象、线、折线对象、多边形对象和其他对象。
10、优选的,所述mesh对象包括模型对象和材质,所述模型对象包括geometry、顶点、面和uv坐标,所述材质包括颜色和纹理。
11、优选的,所述继承的其他对象,具有预定义属性和动态属性的组合中的属性可以动态添加,所述预定义属性和动态属性中的属性值可以是其他基本对象,例如revitcolumn,其中包含表示其基准线的line。
12、优选的,所述使用连接器进行数据交换时还包括:通过revit插件发送图元集合,将所述模型基本对象中的每一个元素都被转换为从图模引擎类继承的图模引擎数据对象等效项,在发送这些元素时创建的提交,包含嵌套在其中的所有revit图元。
13、优选的,所述模型基本对象包括分解关键特征,所述分解关键特征用于用户将属性标记为可分离,所述标记为可分离的属性存在于父对象之外,能够单独存储或检索。
14、优选的,所述分解关键特征中包括对有多个梁(beam)和墙(wall)的图元进行分解,具体方法如下:使有多个梁(beam)和墙(wall)的图元参照同一标高(level),不需要创建此标高的多个副本并将其存储在每个梁和墙对象中,而是使标高在梁和墙中可拆卸,允许所有对象引用同一级别,只需要存储一次,即可完成有多个梁和墙的图元的可分解。
15、优选的,所述s2中还包括对图模引擎数据进行处理,具体方法包括:
16、获取第一源数据块;
17、判断第一目标文件的路径是否存在,若存在所述第一目标文件的路径,计算获得所述第一源数据块的第一字节长度;
18、创建第一指针和第一堆内存,其中,所述第一指针的类型为空,所述第一堆内存的存储长度等于所述第一字节长度,使所述第一指针指向所述第一堆内存;
19、将所述第一源数据块拷贝至所述第一堆内存中,将所述第一字节长度以二进制格式写入所述第一目标文件所对应的第一内存的开头,将拷贝至所述第一堆内存中的第一源数据块中的数据以二进制格式写入所述第一内存。
20、优选的,所述对图模引擎数据进行处理方法还包括:从第二目标文件的第二内存中读取出第二源数据块写入所述第二内存时的第二字节长度,将所述第二字节长度存放至已创建的存储变量中;
21、创建第二指针,根据所述第二字节长度创建第二堆内存,使所述第二指针指向所述第二堆内存,其中,所述第二指针的类型为空;
22、从所述第二内存中读取所述第二源数据块中的数据并将所述数据存放至所述第二堆内存中;
23、将所述第二指针的类型强转为所述第二源数据块的类型。
24、优选的,所述s1中还包括图模引擎的实现,具体方法包括:
25、预先将所需的数据分类抽象为多个数据模块,所述数据模块包括:视角viewport模块,镜头camera模块,对象object模块,文本text模块和图形graphic模块;
26、从所述数据模块中获取抽象数据;
27、根据所述抽象数据创建对象,并生成包含所有对象的指针的结构列表;
28、通过所述结构列表对所述对象进行创建、管理、分配资源和释放资源的操作。
29、与现有技术相比,本发明的有益效果是:
30、本发明通过构建的模型基本对象,通过将模型基本对象作为其他图模引擎数据对象的基础,并利用通用几何进行描述,通过用户进行模型数据提交,完成三维模型数据的交换,使得数据能够进行分解,从而能够将分解的数据进行单独存储或检索,从而为数据交换提供了便捷,并且有利于提高数据交换的效率。
技术特征:1.一种基于通用几何描述的三维模型数据交换方法,其特征在于:包括以下步骤:
2.根据权利要求1所述的一种基于通用几何描述的三维模型数据交换方法,其特征在于:所述模型基本对象包括mesh对象、点云对象、线、折线对象、多边形对象和其他对象。
3.根据权利要求2所述的一种基于通用几何描述的三维模型数据交换方法,其特征在于:所述mesh对象包括模型对象和材质,所述模型对象包括geometry、顶点、面和uv坐标,所述材质包括颜色和纹理。
4.根据权利要求1所述的一种基于通用几何描述的三维模型数据交换方法,其特征在于:所述继承的其他对象,具有预定义属性和动态属性的组合中的属性可以动态添加,所述预定义属性和动态属性中的属性值可以是其他基本对象,例如revitcolumn,其中包含表示其基准线的line。
5.根据权利要求4所述的一种基于通用几何描述的三维模型数据交换方法,其特征在于:所述使用连接器进行数据交换时还包括:通过revit插件发送图元集合,将所述模型基本对象中的每一个元素都被转换为从图模引擎类继承的图模引擎数据对象等效项,在发送这些元素时创建的提交,包含嵌套在其中的所有revit图元。
6.根据权利要求1所述的一种基于通用几何描述的三维模型数据交换方法,其特征在于:所述模型基本对象包括分解关键特征,所述分解关键特征用于用户将属性标记为可分离,所述标记为可分离的属性存在于父对象之外,能够单独存储或检索。
7.根据权利要求6所述的一种基于通用几何描述的三维模型数据交换方法,其特征在于:所述分解关键特征中包括对有多个梁(beam)和墙(wall)的图元进行分解,具体方法如下:使有多个梁(beam)和墙(wall)的图元参照同一标高(level),不需要创建此标高的多个副本并将其存储在每个梁和墙对象中,而是使标高在梁和墙中可拆卸,允许所有对象引用同一级别,只需要存储一次,即可完成有多个梁和墙的图元的可分解。
8.根据权利要求1所述的一种基于通用几何描述的三维模型数据交换方法,其特征在于:所述s2中还包括对图模引擎数据进行处理,具体方法包括:
9.根据权利要求8所述的一种基于通用几何描述的三维模型数据交换方法,其特征在于:所述对图模引擎数据进行处理方法还包括:从第二目标文件的第二内存中读取出第二源数据块写入所述第二内存时的第二字节长度,将所述第二字节长度存放至已创建的存储变量中;
10.根据权利要求1所述的一种基于通用几何描述的三维模型数据交换方法,其特征在于:所述s1中还包括图模引擎的实现,具体方法包括:
技术总结本发明公开了一种基于通用几何描述的三维模型数据交换方法,包括以下步骤:S1.构建模型基本对象:在图模引擎数据对象的基础上,构建一个动态对象,作为所有其他图模引擎数据对象的基础,即为模型基本对象,所述图模引擎数据对象从所述模型基本对象中继承的其他对象,具有预定义属性和动态属性的组合;S2.对模型结构数据进行描述;S3.模型数据提交。本发明通过构建的模型基本对象,通过将模型基本对象作为其他图模引擎数据对象的基础,并利用通用几何进行描述,通过用户进行模型数据提交,完成三维模型数据的交换,使得数据能够进行分解,从而能够将分解的数据进行单独存储或检索,从而为数据交换提供了便捷,并且有利于提高数据交换的效率。技术研发人员:吕宁,张亚雄,朱仪,李木香,王明,周迅,王侥钢受保护的技术使用者:中交简石数字科技(苏州)有限公司技术研发日:技术公布日:2024/10/10本文地址:https://www.jishuxx.com/zhuanli/20241015/314474.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表