当前位置: 首页 > 专利查询>浙江大学专利>正文

一种基于字符串缓存机制的制造技术

技术编号:39567841 阅读:14 留言:0更新日期:2023-12-03 19:18
本发明专利技术公开了一种基于字符串缓存机制的

【技术实现步骤摘要】
一种基于字符串缓存机制的STEP文件导出方法


[0001]本专利技术属于
CAD
模型数据处理领域,具体涉及一种基于字符串缓存机制的
STEP
文件导出方法


技术介绍

[0002]随着建模软件的普及,三维建模已经成为许多行业的一项重要工具,如游戏

影视

建筑

设计

制造等,在这些行业中,三维建模可以用于虚拟场景的构建

产品原型的展示

艺术创作

教学模拟等方面,提高了制作效率,降低了成本,提升了品质
。STEP
标准是国际标准化组织工业自动化与集成技术委员会制定的一套计算机辅助设计
CAD
数据处理标准,而
STEP
标准的文件作为一种中性文件在各种建模软件中进行信息的交互

[0003]虽然目前主流的三维建模软件大都支持
STEP
文件的导入及导出操作,但在已知的开源三维建模软件
(

Open CASCADE)
中,其导出操作的实现都十分复杂

对于新上手的开发人员来说理解难度较大


技术实现思路

[0004]鉴于现有技术的上述不足,本专利技术旨在提供一种基于字符串缓存机制的
STEP
文件导出方法,基于字符串缓存机制的简洁

高效

低存储开销的
STEP
文件导出策略,导出流程根据边界表示模型来进行,边界表示模型是当前最为广泛的空间数据模型之一,是利用边界表示实体的方法,边界表示方法常用层次结构组织与存储模型数据,即采用
vertex(

)、edge(

)、loop(

)、face(

)、body(

)
五层结构定义实体

具体步骤如下:
[0005]步骤
1、
构造导出的
STEP
文件的头部信息,并将头部信息写入缓存数组

[0006]步骤
2、
构造要导出的
STEP
文件的数据信息,并将数据信息写入缓存数组


CAD
系统中获得要导出的
body*
类型的指针,导出为“ADVANCED_BREP_SHAPE_REPRESENTATION”关键字的实体,并同时导出该指针所引用的“MANIFOLD_SOLID_BREP”关键字的实体

[0007]从
body*
类型的指针指向的对象处获得
shell*
类型的指针,并导出为“CLOSED_SHELL”关键字的实体

[0008]从
shell*
类型的指针指向的对象处通过递归获得
face*
类型的指针;
[0009]对递归过程中的每一个
face(

face*
类型指针所指向的对象
)
,导出为“ADVANCED_FACE”关键字的实体,从
face*
指向的对象处获得
loop*
类型的指针以及
surface*
类型的指针,递归导出两个指针所指向的对象

这里需要借助哈希表来判断数据是否已经导出,其中哈希表的键为“void*”类型,对应各种指针,值为“int”类型,对应索引行号

在开始导出
loop*
的对象前,根据哈希表判断其是否已经导出过,若导出过则直接获取哈希表的键值即索引行号,将之写入“ADVANCED_FACE”关键字的属性部分,若没有导出过,则
loop*
所对应的索引行号就是当前最大的索引行号加一,将之写入“ADVANCED_FACE”关键字的属性部分,再导出
loop*
指向的对象

处理
surface*
的对象的方式与
loop*
对象的处理方式相同

[0010]步骤
3、
将上述写入到缓存数组的所有数据导出到指定路径的文件当中,完成
STEP
文件导出

[0011]进一步的,步骤2获得
loop*
类型以及
surface*
类型的指针具体如下:首先导出
loop*
类型的指针,导出为“EDGE_LOOP”关键字的实体,从
loop*
指向的对象处获得
edge*
类型的指针,导出为“ORIENTED_EDGE”关键字的实体,并从
edge*
指向的对象处获得
curve*
类型的指针,而
curve(

curve*
类型指针所指向的对象
)
可能有多种类型,例如直线



椭圆
、B
样条曲线等,需根据曲线类型,获取曲线指针所指的对象的属性信息并依照
STEP
的规则写入缓存数组

[0012]其次导出
surface*
类型的指针,由于
surface(

surface*
类型指针所指向的对象
)
也可能有多种类型,例如平面

柱面

球面

锥面

环面
、B
样条曲面等,需根据曲面类型,获取曲面指针所指的对象的属性信息并依照
STEP
的规则写入缓存数组

[0013]对于上述的各种曲线曲面类型,均需要将对应数据结构的数据,依照
STEP
标准写入到缓存数组,具体的处理过程依旧采用递归的思想,如果要写入缓存数组的数据是简单类型,则直接写入,如果是另一个实体,则需要递归地处理引用到的实体,直到每种情形都达到递归出口

[0014]本专利技术有益效果:本专利技术基于字符串缓存机制,解决写文件时发生的问题,能够确定某个实体所引用的实体的索引序号,实现简洁

高效

低存储开销的
STEP
文件导出

附图说明
[0015]图1为本专利技术流程示意图

具体实施方式
[0016]STEP
文件包含头部和数据部分,头部主要存储作者

制作方

版本

日期等产品信息,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种基于字符串缓存机制的
STEP
文件导出方法,其特征在于,包括如下步骤:步骤
1、
构造导出的
STEP
文件的头部信息,并将头部信息写入缓存数组;步骤
2、
构造导出的
STEP
文件的数据信息,并将数据信息写入缓存数组;步骤
3、
将写入到缓存数组的所有数据导出到指定路径的文件当中,完成
STEP
文件导出
。2.
根据权利要求1所述的基于字符串缓存机制的
STEP
文件导出方法,其特征在于,步骤1所述的头部信息包括:当前产品的作者

制作方

版本和日期信息
。3.
根据权利要求1所述的基于字符串缓存机制的
STEP
文件导出方法,其特征在于,步骤2具体过程如下:步骤
2.1、
从计算机辅助设计系统中获得导出的
body*
类型的指针,导出为“ADVANCED_BREP_SHAPE_REPRESENTATION”关键字的实体,并同时导出该指针所引用的“MANIFOLD_SOLID_BREP”关键字的实体;步骤
2.2、

body*
类型的指针指向的对象处获得
shell*
类型的指针,并导出为“CLOSED_SHELL”关键字的实体;步骤
2.3、

shell*
类型的指针指向的对象处通过递归,获得
face*
类型的指针;步骤
2.4、
对递归过程中的每一个
face*
类型指针所指向的对象
face
,导出为“ADVANCED_FACE”关键字的实体,从
face*
指向的对象处获得
loop*
类型的指针以及
surface*
类型的指针,递归导出
loop*
类型和
surface*
类型指针所指向的对象
。4.
根据权利要求3所述的基于字符串缓存机制的
STEP
文件导出方法,其特征在于,在步骤
2.4
中,还包括借助哈希表判断数据是否已经导出,其中哈希表的键为“...

【专利技术属性】
技术研发人员:吉嘉伟唐敏童若锋李海龙陈绪照
申请(专利权)人:浙江大学
类型:发明
国别省市:

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

1