一种三维模型数据结构、创建及数据获取方法技术

技术编号:24683020 阅读:25 留言:0更新日期:2020-06-27 07:52
本发明专利技术公开的三维模型数据结构、创建及数据获取方法,涉及数据处理技术领域,通过创建一级缓存及二级缓存,根据各个一级缓存的标识,获取对应的一级缓存,从各个一级缓存内获取RCW模块的属性名及属性值,根据各个一级缓存的标识,从各个一级缓存中获取RCW模块及子级一级缓存的集合,仅需在读取三维模型的属性数据以及写入三维模型的属性数据时访问RCW模块,大大降低了对RCW模块的访问次数,提高了三维模型数据的获取效率。

A data structure, creation and data acquisition method of 3D model

【技术实现步骤摘要】
一种三维模型数据结构、创建及数据获取方法
本专利技术涉及数据处理
,具体涉及一种三维模型数据结构、创建及数据获取方法。
技术介绍
在产品生命周期管理系统中,对计算机辅助绘图软件的数据管理是常见的应用之一。由于微软的.NetFramework平台的流行,一些计算机辅助绘图软件提供了针对.NetFramework平台的接口调用,使开发者可以使用这些接口访问计算机辅助绘图软件绘制的各种三维模型数据,比较典型的计算机辅助绘图软件有Solidworks、SolidEdge和Inventor等。在.NetFramework平台下,对于传统的组件对象模型,一般采用运行库可调用包装(Runtime-CallableWrapper,RCW模块),然后将封装后的模块提供给.NetFramework平台下的编程语言调用。一些早期提供COM接口的计算机辅助绘图软件,也采用RCW模块这种方式提供.NetFramework平台下的接口模块。目前常见的技术实现是直接使用C#语言编写的能够访问RCW模块接口函数,通过创建与三维模型相关的对象,遍历三维模型结构树,获取结构树节点的三维模型,再获取三维模型的属性数据。对于特定节点的特定数据,则需要通过RCW模块接口函数重新遍历三维模型结构树,找到相应的三维模型后去获取数据,如果多次按这种方式执行,则RCW模块接口函数也会被频繁调用。这种方法的特点在于编程简单,代码直观,可以胜任小型的三维模型数据的获取,但是对中等数量(数百个)及以上的三维模型,则会遇到执行速度很慢,往往需花费数个小时才能完成三维模型数据的获取,效率较低,无法满足产品生命周期管理系统的要求。
技术实现思路
为解决现有技术的不足,本专利技术实施例提供了一种三维模型数据结构、创建及数据获取方法。第一方面,本专利技术实施例提供了一种三维模型数据结构,该数据结构包括一级缓存、二级缓存,其中:所述一级缓存的数据结构包括一级缓存的标识、运行库可调用包装RCW模块、RCW模块的属性名、属性值及子级一级缓存的集合;所述二级缓存的数据结构包括一级缓存及所述一级缓存的标识。第二方面,本专利技术实施例提供了一种创建第一方面所述的三维模型数据结构的方法,该方法包括以下步骤:S1初始化一级缓存,创建一级缓存的标识并将所述标识保存在一级缓存内;S2获取当前三维模型的RCW模块的属性名、属性值并将所述属性名、属性值保存在一级缓存内的保存RCW模块的属性名及属性值的字典类型的数据集合中;S3将当前模型的RCW模块保存在一级缓存内;S4将一级缓存保存到二级缓存内的一级缓存的标识以及关联的一级缓存的字典类型的数据集合中。优选地,该方法还包括:若当前模型包含零部件模型,则利用上述步骤S1-S4,创建所述零部件模型的数据结构。第三方面,本专利技术实施例提供了一种获取第二方面所述的三维模型数据结构中数据的方法,该方法包括以下步骤:获取三维模型当前二级缓存内的各个一级缓存的标识;根据各个一级缓存的标识,获取对应的一级缓存;从各个一级缓存内获取RCW模块的属性名及属性值;根据各个一级缓存的标识,从各个一级缓存中获取RCW模块及子级一级缓存的集合。本专利技术实施例提供的三维模型数据结构、创建及数据获取方法,具有以下有益效果:通过创建一级缓存及二级缓存两级缓存机制,仅需在读取三维模型的属性数据以及写入三维模型的属性数据时访问RCW模块,大大降低了对RCW模块的访问次数,提高了三维模型数据的获取效率。具体实施方式以下结合具体实施例对本专利技术作具体的介绍。第一方面,本专利技术实施例提供了一种三维模型数据结构,该数据结构包括一级缓存、二级缓存,其中:所述一级缓存的数据结构包括一级缓存的标识、运行库可调用包装RCW模块、RCW模块的属性名、属性值及子级一级缓存的集合。其中,一级缓存包括一级缓存,这是数据结构中树的一种表示方法,用于存储当前一级缓存的子对象。如果三维模型包含子零部件模型,子级一级缓存才有作用。如果三维模型包含子零部件模型,则子级一级缓存为空。所述二级缓存的数据结构包括一级缓存及所述一级缓存的标识。作为一个具体的实施例,一级缓存的标识的类型为String,RCW模块的类型为Object类型,RCW模块的属性名、属性值为字典类型。第二方面,本专利技术实施例提供了一种创建第一方面所述的三维模型数据结构的方法,该方法包括以下步骤:S101,初始化一级缓存,创建一级缓存的标识并将所述标识保存在一级缓存内;S102,获取当前三维模型的RCW模块的属性名、属性值并将所述属性名、属性值保存在一级缓存内的保存RCW模块的属性名及属性值的字典类型的数据集合中;S103,将当前模型的RCW模块保存在一级缓存内;S104,将一级缓存保存到二级缓存内的一级缓存的标识以及关联的一级缓存的字典类型的数据集合中。可选地,该方法还包括:若当前模型包含零部件模型,则利用上述步骤S1-S4,创建所述零部件模型的数据结构。第三方面,本专利技术实施例提供了一种获取第二方面所述的三维模型数据结构中数据的方法,该方法包括以下步骤:获取三维模型当前二级缓存内的各个一级缓存的标识;根据各个一级缓存的标识,获取对应的一级缓存;从各个一级缓存内获取RCW模块的属性名及属性值;根据各个一级缓存的标识,从各个一级缓存中获取RCW模块及子级一级缓存的集合。本专利技术公开的三维模型数据结构、创建及数据获取方法,通过创建一级缓存及二级缓存,根据各个一级缓存的标识,获取对应的一级缓存,从各个一级缓存内获取RCW模块的属性名及属性值,根据各个一级缓存的标识,从各个一级缓存中获取RCW模块及子级一级缓存的集合,仅需在读取三维模型的属性数据以及写入三维模型的属性数据时访问RCW模块,大大降低了对RCW模块的访问次数,提高了三维模型数据的获取效率。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。可以理解的是,上述方法及装置中的相关特征可以相互参考。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本专利技术也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本专利技术的内容,并且上面对特定语言所做的描述是为了披露本专利技术的最佳实施方式。此外,存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM),存储器包括至少一个存储芯本文档来自技高网
...

【技术保护点】
1.一种三维模型数据结构,其特征在于,包括一级缓存、二级缓存,其中:/n所述一级缓存的数据结构包括一级缓存的标识、运行库可调用包装RCW模块、RCW模块的属性名、属性值及子级一级缓存的集合;/n所述二级缓存的数据结构包括一级缓存及所述一级缓存的标识。/n

【技术特征摘要】
1.一种三维模型数据结构,其特征在于,包括一级缓存、二级缓存,其中:
所述一级缓存的数据结构包括一级缓存的标识、运行库可调用包装RCW模块、RCW模块的属性名、属性值及子级一级缓存的集合;
所述二级缓存的数据结构包括一级缓存及所述一级缓存的标识。


2.一种创建如权利要求1所述的三维模型数据结构的方法,其特征在于,包括:
S1初始化一级缓存,创建一级缓存的标识并将所述标识保存在一级缓存内;
S2获取当前三维模型的RCW模块的属性名、属性值并将所述属性名、属性值保存在一级缓存内的保存RCW模块的属性名及属性值的字典类型的数据集合中;
S3将当前模型的RCW模块保存在...

【专利技术属性】
技术研发人员:谢戟
申请(专利权)人:北京艾克斯特科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1