[发明专利]一种获取三维模型数据结构中数据的方法有效
申请号: | 202010176539.8 | 申请日: | 2020-03-13 |
公开(公告)号: | CN111338986B | 公开(公告)日: | 2023-08-04 |
发明(设计)人: | 谢戟 | 申请(专利权)人: | 北京艾克斯特科技有限公司 |
主分类号: | G06F12/0897 | 分类号: | G06F12/0897;G06F12/0811 |
代理公司: | 北京世誉鑫诚专利代理有限公司 11368 | 代理人: | 孙国栋 |
地址: | 100000 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 获取 三维 模型 数据结构 数据 方法 | ||
本发明公开的三维模型数据结构、创建及数据获取方法,涉及数据处理技术领域,通过创建一级缓存及二级缓存,根据各个一级缓存的标识,获取对应的一级缓存,从各个一级缓存内获取RCW模块的属性名及属性值,根据各个一级缓存的标识,从各个一级缓存中获取RCW模块及子级一级缓存的集合,仅需在读取三维模型的属性数据以及写入三维模型的属性数据时访问RCW模块,大大降低了对RCW模块的访问次数,提高了三维模型数据的获取效率。
技术领域
本发明涉及数据处理技术领域,具体涉及一种获取三维模型数据结构中数据的方法。
背景技术
在产品生命周期管理系统中,对计算机辅助绘图软件的数据管理是常见的应用之一。由于微软的.Net Framework平台的流行,一些计算机辅助绘图软件提供了针对.NetFramework平台的接口调用,使开发者可以使用这些接口访问计算机辅助绘图软件绘制的各种三维模型数据,比较典型的计算机辅助绘图软件有Solidworks、SolidEdge和Inventor等。
在.Net Framework平台下,对于传统的组件对象模型,一般采用运行库可调用包装(Runtime-Callable Wrapper,RCW模块),然后将封装后的模块提供给.NetFramework平台下的编程语言调用。一些早期提供COM接口的计算机辅助绘图软件,也采用RCW模块这种方式提供.NetFramework平台下的接口模块。
目前常见的技术实现是直接使用C#语言编写的能够访问RCW模块接口函数,通过创建与三维模型相关的对象,遍历三维模型结构树,获取结构树节点的三维模型,再获取三维模型的属性数据。对于特定节点的特定数据,则需要通过RCW模块接口函数重新遍历三维模型结构树,找到相应的三维模型后去获取数据,如果多次按这种方式执行,则RCW模块接口函数也会被频繁调用。
这种方法的特点在于编程简单,代码直观,可以胜任小型的三维模型数据的获取,但是对中等数量(数百个)及以上的三维模型,则会遇到执行速度很慢,往往需花费数个小时才能完成三维模型数据的获取,效率较低,无法满足产品生命周期管理系统的要求。
发明内容
为解决现有技术的不足,本发明实施例提供了一种获取三维模型数据结构中数据的方法。
第一方面,本发明实施例提供了一种三维模型数据结构,该数据结构包括一级缓存、二级缓存,其中:
所述一级缓存的数据结构包括一级缓存的标识、运行库可调用包装RCW模块、RCW模块的属性名、属性值及子级一级缓存的集合;
所述二级缓存的数据结构包括一级缓存及所述一级缓存的标识。
第二方面,本发明实施例提供了一种创建第一方面所述的一种获取三维模型数据结构中数据的方法,该方法包括以下步骤:
S1初始化一级缓存,创建一级缓存的标识并将所述标识保存在一级缓存内;
S2获取当前三维模型的RCW模块的属性名、属性值并将所述属性名、属性值保存在一级缓存内的保存RCW模块的属性名及属性值的字典类型的数据集合中;
S3将当前模型的RCW模块保存在一级缓存内;
S4将一级缓存保存到二级缓存内的一级缓存的标识以及关联的一级缓存的字典类型的数据集合中。
优选地,该方法还包括:
若当前模型包含零部件模型,则利用上述步骤S1-S4,创建所述零部件模型的数据结构。
第三方面,本发明实施例提供了一种获取第二方面所述的三维模型数据结构中数据的方法,该方法包括以下步骤:
获取三维模型当前二级缓存内的各个一级缓存的标识;
根据各个一级缓存的标识,获取对应的一级缓存;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京艾克斯特科技有限公司,未经北京艾克斯特科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010176539.8/2.html,转载请声明来源钻瓜专利网。