一种基于无冗余数据结构的IGES文件读取方法技术

技术编号:14402051 阅读:186 留言:0更新日期:2017-01-11 14:30
本发明专利技术提供一种基于无冗余数据结构的IGES文件读取方法,它是通过17个步骤对IGES文件数据进行筛选,将本系统底层数据结构所包含的数据信息读入,舍去其余的冗余信息,实现IGES文件数据读取的快速性和精确性,解决了现有CAD系统在读取IGES文件并显示时存在的数据丢失缺陷和读入数据与显示速度较慢的不足。本发明专利技术提出新的IGES文件读取系统的底层数据结构,删除了大量的冗余数据信息,并且能确保关键数据的完整性,实现了IGES文件数据读取的快速性和精确性以及数据存储的精简性并节省了存储空间。

【技术实现步骤摘要】

本专利技术提供一种基于无冗余数据结构的IGES文件读取方法,它涉及一种从初始化图形交换规范(InitialGraphicExchangeSpecification,IGES)文件中读入数据的系统和方法,具体涉及系统的数据结构框架和从IGES文件读入数据的方法。属于计算机辅助设计、计算机图形学和曲线曲面造型

技术介绍
初始化图形交换规范(InitialGraphicExchangeSpecification,IGES)建立了产品定义数据的数字表达和交换的信息结构,支持在计算机辅助设计(ComputerAidedDesign,CAD)、计算机辅助制造(ComputerAidedManufacturing,CAM)和计算机辅助工程(ComputerAidedEngineering,CAE)系统间进行数据交换。IGES文件中数据的基本单位是实体,实体可以分为几何和非几何类型。其中,几何类型实体定义产品的物理形状,包括点、线、面、立体以及类似于结构化实体集合的关系。非几何类型实体规定注释、定义及结构。非几何类型实体也规定实体的属性,诸如颜色和状态、实体间的联系。IGES文件中常用的实体类型包括有理B样条曲线实体、有理B样条曲面实体、边界实体、有界曲面实体、复合曲线实体、参数曲面上的曲线实体、裁剪曲面实体,IGES文件中每个实体都有对应的类型号,上述实体类型分别对应实体号126、128、141、143、102、142、144,运用这些实体类型足以表达任意复杂的几何模型。目前,现有的许多CAD系统和软件在读取IGES文件并显示时,存在数据丢失现象,并且读入数据和显示速度较慢,不能做到精确显示模型。通过对很多CAD系统和软件进行解析,在读入IGES文件时定义了许多冗余的数据结构信息,如定义了字符串数组将IGES文件中所有的字符数据存入其中、存储了模型的线条磅值、颜色、线型模式等。这些冗余的数据信息既浪费存储空间,又会减慢文件的读取时间。针对上述缺陷,本专利技术提出了新的数据结构框架,删除了现有系统的大量的冗余数据信息,保留IGES文件中的关键数据,并且确保系统数据的完整性,实现数据存储的精简性且节省了存储空间。并且本专利技术提出新的文件数据读取方法,通过对于IGES文件数据信息进行筛选读入,删除了冗余的数据信息,节省了读取时间。
技术实现思路
鉴于以上内容,本专利技术的目的是针对IGES文件读取提出一种基于无冗余数据结构的IGES文件读取方法,删除了现有系统的大量的冗余数据信息,保留IGES文件中的关键数据,并且确保系统数据的完整性,实现数据存储的精简性且节省了存储空间。该系统的数据结构包括:三维点类ArcPoint3D、有理B样条曲线实体类ArcNurbsCurve、有理B样条曲面实体类ArcNurbsSurface、边界实体类ArcBoundaryCurve、有界曲面实体类ArcBoundarySurface、复合曲线实体类ArcCompoundCurve、参数曲面上的曲线实体类ArcCurveOnSurface、裁剪曲面实体类ArcTrimSurface,如图1-图8所示。本专利技术一种基于无冗余数据结构的IGES文件读取方法,针对IGES文件数据进行筛选,将本系统底层数据结构所包含的数据信息读入,舍去其余的冗余信息,实现IGES文件数据读取的快速性和精确性。本专利技术提出的一种基于无冗余数据结构的IGES文件读取方法,如图9所示,该方法包括如下步骤:步骤一、定义一个字符串数组a,用于存储IGES文件中的数据信息;步骤二、从IGES文件向字符串数组a中逐行读入字符串数据;步骤三、判断字符串数组a中前三个字符是否依次为1、2、6(有理B样条曲线实体类型号)?如果为是,则进行步骤四;如果为否,则进行步骤五;步骤四、读入IGES文件中有理B样条曲线实体的数据信息;接着返回步骤二;步骤五、判断字符串数组a中前三个字符是否依次为1、2、8(有理B样条曲面实体类型号)?如果是,则进行步骤六;如果否,则进行步骤七;步骤六、读取IGES文件中有理B样条曲面实体的数据信息;接着返回步骤二;步骤七、判断字符串数组a中前三个字符是否依次为1、4、1(边界实体类型号)?如果是,则进行步骤八;如果否,则进行步骤九;步骤八、读入IGES文件中边界实体的数据信息;接着返回步骤二;步骤九、判断字符串数组a中前三个字符是否依次为1、4、3(有界曲面实体类型号)?如果是,则进行步骤十;如果否,则进行步骤十一;步骤十、读入IGES文件中有界曲面实体的数据信息;接着返回步骤二;步骤十一、判断字符串数组a中前三个字符是否依次为1、0、2(复合曲线实体类型号)?如果是,则进行步骤十二;如果否,则进行步骤十三;步骤十二、读入IGES文件中复合曲线实体信息;接着返回步骤二;;步骤十三、判断字符串数组a中前三个字符是否依次为1、4、2(参数曲面上的曲线实体类型号)?如果是,则进行步骤十四;如果否,则进行步骤十五;步骤十四、读入IGES文件中参数曲面上的曲线实体的数据信息;接着返回步骤二;步骤十五、判断字符串数组a中前三个字符是否依次为1、4、4(裁剪曲面实体类型号)?如果是,则进行步骤十六;如果否,则进行步骤十七;步骤十六、读入IGES文件中裁剪曲面实体的数据信息;接着返回步骤二;步骤十七、判断文件是否结束?如果是,则该方法结束;如果否,则进行步骤二。通过以上步骤,对IGES文件数据进行筛选,将本系统底层数据结构所包含的数据信息读入,舍去其余的冗余信息,实现IGES文件数据读取的快速性和精确性,解决了现有CAD系统在读取IGES文件并显示时存在的数据丢失缺陷和读入数据与显示速度较慢的不足。其中,如步骤二中所述的“从IGES文件向字符串数组a中逐行读入字符串数据”,其作法为调用编程语言中从文件中读入一行字符串数据的库函数,实现逐行读入字符串数据。其中,如步骤四中所述的“读入IGES文件中有理B样条曲线实体的数据信息”,其具体实现步骤如下(如图10所示):(4.1)产生一个新的有理B样条曲线实体ArcNurbsCurve类,详细数据结构如图2所示。(4.2)逐个查找a中字符P的位置并读取ArcNurbsCurve类的参数索引数据Parameter_Data。(4.3)读取ArcNurbsCurve类的成员变量n,为有理B样条曲线的控制顶点数减一。(4.4)读取ArcNurbsCurve类的成员变量k,为有理B样条曲线的次数。(4.5)读取ArcNurbsCurve类的容器类型成员变量knot,为有理B样条曲线节点矢量。(4.6)读取ArcNurbsCurve类的容器类型成员变量w,为有理B样条曲线的权因子。(4.7)读取ArcNurbsCurve类的容器类型成员变量controlpoint,为有理B样条曲线的控制顶点坐标。其中,如步骤六中所述的“读取IGES文件中有理B样条曲面实体的数据信息”,其具体实现步骤如下(如图11所示):(6.1)产生一个新的有理B样条曲面实体ArcNurbsSurface类,详细数据结构如图3所示。(6.2)逐个查找a中字符P的位置并读取ArcNurbsSurface类的参数索引数据Parameter_Data。(6.3)读取ArcNur本文档来自技高网
...
一种基于无冗余数据结构的IGES文件读取方法

【技术保护点】
一种基于无冗余数据结构的IGES文件读取方法,其特征在于:该方法包括如下步骤:步骤一、定义一个字符串数组a,用于存储IGES文件中的数据信息;步骤二、从IGES文件向字符串数组a中逐行读入字符串数据;步骤三、判断字符串数组a中前三个字符是否依次为有理B样条曲线实体类型号1、2、6,如果为是,则进行步骤四;如果为否,则进行步骤五;步骤四、读入IGES文件中有理B样条曲线实体的数据信息;接着返回步骤二;步骤五、判断字符串数组a中前三个字符是否依次为有理B样条曲面实体类型号1、2、8,如果是,则进行步骤六;如果否,则进行步骤七;步骤六、读取IGES文件中有理B样条曲面实体的数据信息;接着返回步骤二;步骤七、判断字符串数组a中前三个字符是否依次为边界实体类型号1、4、1,如果是,则进行步骤八;如果否,则进行步骤九;步骤八、读入IGES文件中边界实体的数据信息;接着返回步骤二;步骤九、判断字符串数组a中前三个字符是否依次为有界曲面实体类型号1、4、3,如果是,则进行步骤十;如果否,则进行步骤十一;步骤十、读入IGES文件中有界曲面实体的数据信息;接着返回步骤二;步骤十一、判断字符串数组a中前三个字符是否依次为复合曲线实体类型号1、0、2,如果是,则进行步骤十二;如果否,则进行步骤十三;步骤十二、读入IGES文件中复合曲线实体信息;接着返回步骤二;步骤十三、判断字符串数组a中前三个字符是否依次为参数曲面上的曲线实体类型号1、4、2,如果是,则进行步骤十四;如果否,则进行步骤十五;步骤十四、读入IGES文件中参数曲面上的曲线实体的数据信息;接着返回步骤二;步骤十五、判断字符串数组a中前三个字符是否依次为裁剪曲面实体类型号1、4、4,如果是,则进行步骤十六;如果否,则进行步骤十七;步骤十六、读入IGES文件中裁剪曲面实体的数据信息;接着返回步骤二;步骤十七、判断文件是否结束?如果是,则该方法结束;如果否,则进行步骤二;通过以上步骤,对IGES文件数据进行筛选,将本系统底层数据结构所包含的数据信息读入,舍去其余的冗余信息,实现IGES文件数据读取的快速性和精确性,解决了现有CAD系统在读取IGES文件并显示时存在的数据丢失缺陷和读入数据与显示速度较慢的不足。...

【技术特征摘要】
1.一种基于无冗余数据结构的IGES文件读取方法,其特征在于:该方法包括如下步骤:步骤一、定义一个字符串数组a,用于存储IGES文件中的数据信息;步骤二、从IGES文件向字符串数组a中逐行读入字符串数据;步骤三、判断字符串数组a中前三个字符是否依次为有理B样条曲线实体类型号1、2、6,如果为是,则进行步骤四;如果为否,则进行步骤五;步骤四、读入IGES文件中有理B样条曲线实体的数据信息;接着返回步骤二;步骤五、判断字符串数组a中前三个字符是否依次为有理B样条曲面实体类型号1、2、8,如果是,则进行步骤六;如果否,则进行步骤七;步骤六、读取IGES文件中有理B样条曲面实体的数据信息;接着返回步骤二;步骤七、判断字符串数组a中前三个字符是否依次为边界实体类型号1、4、1,如果是,则进行步骤八;如果否,则进行步骤九;步骤八、读入IGES文件中边界实体的数据信息;接着返回步骤二;步骤九、判断字符串数组a中前三个字符是否依次为有界曲面实体类型号1、4、3,如果是,则进行步骤十;如果否,则进行步骤十一;步骤十、读入IGES文件中有界曲面实体的数据信息;接着返回步骤二;步骤十一、判断字符串数组a中前三个字符是否依次为复合曲线实体类型号1、0、2,如果是,则进行步骤十二;如果否,则进行步骤十三;步骤十二、读入IGES文件中复合曲线实体信息;接着返回步骤二;步骤十三、判断字符串数组a中前三个字符是否依次为参数曲面上的曲线实体类型号1、4、2,如果是,则进行步骤十四;如果否,则进行步骤十五;步骤十四、读入IGES文件中参数曲面上的曲线实体的数据信息;接着返回步骤二;步骤十五、判断字符串数组a中前三个字符是否依次为裁剪曲面实体类型号1、4、4,如果是,则进行步骤十六;如果否,则进行步骤十七;步骤十六、读入IGES文件中裁剪曲面实体的数据信息;接着返回步骤二;步骤十七、判断文件是否结束?如果是,则该方法结束;如果否,则进行步骤二;通过以上步骤,对IGES文件数据进行筛选,将本系统底层数据结构所包含的数据信息读入,舍去其余的冗余信息,实现IGES文件数据读取的快速性和精确性,解决了现有CAD系统在读取IGES文件并显示时存在的数据丢失缺陷和读入数据与显示速度较慢的不足。2.根据权利要求1所述的一种基于无冗余数据结构的IGES文件读取方法,其特征在于:在步骤二中所述的“从IGES文件向字符串数组a中逐行读入字符串数据”,其作法为调用编程语言中从文件中读入一行字符串数据的库函数,实现逐行读入字符串数据。3.根据权利要求1所述的一种基于无冗余数据结构的IGES文件读取方法,其特征在于:在步骤四中所述的“读入IGES文件中有理B样条曲线实体的数据信息”,其具体实现步骤如下:(4.1)产生一个新的有理B样条曲线实体ArcNurbsCurve类;(4.2)逐个查找a中字符P的位置并读取ArcNurbsCurve类的参数索引数据Parameter_Data;(4.3)读取ArcNurbsCurve类的成员变量n,为有理B样条曲线的控制顶点数减一;(4.4)读取ArcNurbsCurve类的成员变量k,为有理B样条曲线的次数;(4.5)读取ArcNurbsCurve类的容器类型成员变量knot,为有理B样条曲线节点矢量;(4.6)读取ArcNurbsCurve类的容器类型成员变量w,为有理B样条曲线的权因子;(4.7)读取ArcNurbsCurve类的容器类型成员变量controlpoint,为有理B样条曲线的控制顶点坐标。4.根据权利要求1所述的一种基于无冗余数据结构的IGES文件读取方法,其特征在于:在步骤六中所述的“读取IGES文件中有理B样条曲面实体的数据信息”,其具体实现步骤如下:(6.1)产生一个新的有理B样条曲面实体ArcNurbsSurface类;(6.2)逐个查找a中字符P的位置并读取ArcNurbsSurface类的参数索引数据Parameter_Data;(6.3)读取ArcNurbsSurface类的成员变量un,为有理B样条曲面U向的控制顶点数减一;(6.4)读取ArcNurbsSurface类的成员变量vn,为有理B样条曲面V向的控制顶点数减一;(6.5)读取ArcNurbsSurface类的成员变量uk,为有理B样条曲面U向的次数;(6.6)读取ArcNurbsSurface类的成员变量vk,为有理B样条曲面V向的次数;(6.7)读取ArcNurbsSurface类的容器类型成员变量knot_u,为有理B样条曲面U向节点矢量;(6.8)读取ArcNurbs...

【专利技术属性】
技术研发人员:王伟柏硌赵罡
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:北京;11

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

1