法律状态公告日
法律状态信息
法律状态
2019-11-12
授权
授权
2017-01-04
实质审查的生效 IPC(主分类):G06F17/30 申请日:20160629
实质审查的生效
2016-12-07
公开
公开
技术领域
本发明涉及计算机数据处理技术领域,具体涉及一种CAD数据生成SHAPE数据文件方法及系统。
背景技术
随着网络信息化时代的日益普及,我们正处在一个大数据爆炸性增长的时代,大数据已广泛应用众多领域,在社会经济、政治文化、人们生活等方面产生深远的影响。这就要求我们去如何挖掘和更好的处理大数据。
目前处理大数据的工具较多,但某些时候在数据处理效率和功能方面也有其完成不了的事情。本申请涉及的是CAD(Dxf格式)数据同类要素(这里的要素指的是点、线、面矢量数据,包括二位和三维的数据)数据如何按指定的图层导出一个shape格式的数据文件。
在由CAD数据导出SHAPE数据格式时(假设数据正确),比较通用的软件arcmap10.1可以实现CAD数据导出shape数据格式的文件。Arcmap10.1导出shape文件并入库如图1所示,arcmap批量加载CAD(CAD数据的一个图层可能有多种类的实体数据)时按同种类的实体数据(点、线、面)进行分层,在导出shape数据时只能一个图层导出一个shape文件,对于处理大数据,这样导出的shape文件会很多,数据量大,不便于管理,而且进行入库时得需手工一个个的创建数据库图层,再进行复制、粘贴按图层入库,造成工作效率太低,过程复杂。
发明内容
为解决现有技术存在的不足,本发明公开了一种CAD数据生成SHAPE数据文件方法及系统,本发明通过自定义数据结构实现CAD数据的存放,把指定的图层数据导出到一个shape数据文件里。本发明能够达到CAD数据导出shape文件及入库效率高并能实现更好的对shape文件的管理。
为实现上述目的,本发明的具体方案如下:
一种CAD数据生成SHAPE数据文件方法,包括以下步骤:
读写文件之前自定义数据结构,用于存放读取的CAD数据;
批量指定CAD文件,加载CAD数据文件;
选择要导出的CAD数据图层,并将数据导入到数据库的数据表中;
生成shape的文件路径;
将批量指定的图层数据一并导出到一个shape文件里,执行shape文件导出功能。
进一步的,自定义数据结构存放的CAD数据为指定同类实体的多个图层。
进一步的,自定义数据结构包括存放CAD的点数据的点数据结构、用来存放单个多义线数据的多义线数据结构、用来存放单个文本数据的数据结构以及用来存放一个面数据的面数据结构。
进一步的,读取CAD文件和写shape文件时创建一个窗体界面,在窗体界面上设置数据转换的参数:在窗体界面上设置第一个按钮,当触发点击按钮事件时加载指定CAD文件路径的对话框,实现加载CAD文件;
在窗体界面上设置第二按钮用来加载调用导出文件路径的对话框,指定导出shape文件路径,把指定的图层数据导出到一个shape数据文件里;
在窗体上设置第三个按钮,触发按钮事件时,执行shape数据文件导出功能。
进一步的,加载CAD文件时单选文件或多选文件,选择相应的CAD数据图层、数据库表以及数据类型列表。
进一步的,CAD数据图层用于存储CAD数据,选择需要导出的CAD图层;选择CAD图层的同时需要从数据类型列表中指定该图层的数据类型,标记导出和入库该CAD图层的类型数据,同时通过界面指定数据库表,用来存放指定的CAD图层的数据。
一种CAD数据生成SHAPE数据文件的系统,包括:
自定义数据结构模块,用于在读写文件之前自定义数据结构,自定义数据结构用于存放读取的CAD数据;
CAD文件读取模块,用于批量指定CAD文件,加载CAD数据文件;
数据选择模块,用于选择要导出的CAD数据图层,并将数据导入到数据库的数据表;
路径生成模块,用于生成shape的文件路径;
shape文件生成模块,将批量指定的同类数据一并写到一个shape文件里。
进一步的,自定义数据结构模块中,自定义数据结构存放的CAD数据为指定同类实体的多个图层。
进一步的,自定义数据结构包括存放CAD的点数据的点数据结构、用来存放单个多义线数据的多义线数据结构、用来存放单个文本数据的文本数据结构以及用来存放一个面数据的面数据结构。
进一步的,读取CAD文件和生成shape文件时需要创建一个窗体界面,在窗体界面上设置数据转换的参数:在窗体界面上设置第一按钮,当触发点击按钮事件时加载指定CAD文件路径的对话框,实现加载CAD文件;
在窗体界面上设置第二按钮用来加载调用导出文件路径的对话框,指定导出shape文件路径,把指定的图层数据导出到一个shape数据文件里;
在窗体上设置第三个按钮,触发按钮事件时,执行shape数据文件导出功能。
进一步的,加载CAD文件时单选文件或多选文件,选择相应的CAD数据图层、数据库表以及数据类型列表,CAD图层可以多选。
本发明的有益效果:
本专利处理数据因为可以指定同类实体的多个图层,可以把数据一块导出到一个shape文件里,实现过程就是把指定的同类实体都存放到开始定义的数据结构里,然后写到一个shape文件里,并且不用处理一个图层指定一次要入库的数据表,这样处理数据的效率会大大提高,而且不会生成太多的shape文件,节省了存储空间,因为每个shape文件都有一个文件头,占有一定的存储空间。免去shape数据文件管理复杂的难题,这是当前处理数据的软件所实现不了的功能。
本发明一次可以指定同类要素的多个图层,提高了数据的处理效率;把不同层的同类实体导出到一个shape文件,可以对数据文件很好的管理,而且把不同层的同类实体在如数据库表时不用反复指定数据库表。
附图说明
图1 Arcmap读CAD生成shape的过程流程图;
图2本发明实现的读CAD数据文件生成shape流程图;
图3读CAD文件的函数功能流程图;
图4写shape文件的函数功能流程图。
具体实施方式:
下面结合附图对本发明进行详细说明:
如图1所示,Arcmap读CAD生成shape的过程流程:
第一步:在arcmap里批量加载CAD数据;
第二步:Arcmap根据实体种类对数据进行自动分层,文本层被处理为注记层,成图;
第三步:指定一个CAD图层导出shape数据格式的文件路径,生成shape文件。
第四步:打开arcmap里的编辑功能,指定要入数据库的数据表,进行数据入库;
第五步:保存入库的数据,停止arcmap里的编辑功能。
第六步:生成一个shape格式的文件,一个CAD图层生成shape处理完毕。
第七步:重复三、四、五、六步骤,直至所有图层处理完。
上述方法在导出shape数据时只能一个图层导出一个shape文件,对于处理大数据,这样导出的shape文件会很多,不便于管理,而且进行入库时得需手工一个个的创建数据库图层,再进行复制、粘贴按图层入库,造成工作效率太低,过程复杂。
如图2所示,本申请的实现的读CAD数据文件生成shape流程:
执行程序,在CAD数据生产shape参数界面上指定相应的参数。
第一步:批量指定CAD文件,加载CAD数据文件
第二步:指定要导出的CAD数据图层(同类图层,可以一次指定多个图层),指定要把数据导入到数据表。
第三步:指定生成shape的文件路径。
第四步:确定生成shape文件,点击确定按钮,执行shape文件生成功能,本次shape生成功能完毕。
第五步:如还有图层导出重复三、四步。直至所有图层处理完。
通过比较“Arcmap读CAD生成shape的过程流程”和“本发明的实现读CAD数据文件生成shape流程”,可以看出程序代码实现读CAD数据生成shape的步骤简单写,效率高,故该发明是可取的。
本发明采用自己定义的数据结构,定义数据结构是在读写文件之前实现,来用于存放读取的CAD数据;通过写代码实现本专利的读CAD文件和写shape数据文件函数功能:读取CAD文件和写shape文件需要在程序里创建一个窗体界面(Winform窗体),在窗体界面上设置数据转换的参数:在窗体界面上加第一个按钮,当触发点击按钮事件时加载指定CAD文件路径的对话框,实现加载CAD文件,可以单选文件也可以多选文件;CAD数据图层(是加载的CAD数据的图层)和数据库表(是在数据库中存放数据的表)以及数据类型列表(表示图层的数据类型,比如该层数据是点数据得话,那么数据类型就是点POINT;如果是线数据,那么数据类型就是线POLYLINE;如果是面数据,那么数据类型就是POLYGON),这三者之间的关系概括为:CAD数据图层是存储CAD数据的层,用户指定要导出的CAD图层,可以多选;用户指定CAD图层的同时需要从数据类型列表中指定该图层的数据类型,标记导出和入库该CAD图层的类型数据,同时用户通过界面指定数据库表,用来存放指定的CAD图层的数据。在窗体界面上加第二个按钮用来加载调用导出SHAPE文件路径的对话框,指定导出shape文件路径,把指定的图层数据导出到一个shape数据文件里,该实现方法是把指定图层的CAD数据存放到数据结构里,在窗体界面上加第三个导出SHAPE数据按钮即“导出”按钮,响应导出事件时,导出一个shape文件;用户指定要把CAD数据入库的图层;进行CAD数据导出shape数据并把数据入到数据库的方法。
在这里对上文中的数据结构和读取数据的函数功能进行描述:
读取Dxf文件所用的数据结构,这些数据结构都在读写文件之前定义好,之所以定义这些
数据结构,是为了存放要素数据。
自定义数据结构包括存放CAD的点数据的点数据结构,用来存放单个多义线数据的多义线数据结构,用来存放单个文本数据的文本数据结构,用来存放一个面数据的面数据结构。
以下代码是点数据结构在定义时的程序,其余的数据结构类似。
用于存放CAD文件的点数据集合
CAD文件读功能实现过程通过写代码实现每一个函数功能:
读CAD文件函数功能实现过程用流程图展示如图3所示,对于CAD数据文件来说,一个图层里有一类或者多类实体,比如一个图层里有点、线、面、文本等等多类实体,在读取CAD数据文件的时候根据数据文件里每个实体的标志(点有点的标志,线有线的标志,面有面的标志,文本有文本的标志),对数据分别存入定义好的各自数据结构里(点存到点数据结构里,线存到线数据结构里,面存到面数据结构里,文本存到文本数据结构里等等);
写shape文件功能函数过程用流程图展示如图4所示,对于SHAPE数据文件来说,一个shape文件只能存放同一类实体数据,要么为点实体数据文件,要么为线实体数据文件,要么为面实体数据文件。指定的同类实体数据导出一个shape数据文件里,比如指定多个CAD点图层,在导出shape数据时都写到一个shape文件里,线和面数据导出shape数据文件同理。
本申请的实施例子中还包括上述方法相对应的一种CAD数据生成SHAPE数据文件的系统,包括:
自定义数据结构模块,用于在读写文件之前自定义数据结构,自定义数据结构用于存放读取的CAD数据;
CAD文件读取模块,用于批量指定CAD文件,加载CAD数据文件;
数据选择模块,用于选择要导出的CAD数据图层,并将数据导入到数据库的数据表;
路径生成模块,用于生成shape的文件路径;
shape文件生成模块,将批量指定的同类数据一块写到一个shape文件里。
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
机译: CAD系统,用于生成CAD数据文件的方法以及用于实现该方法的用于记录程序的计算机可读记录介质
机译: 记录有CAD数据文件转换程序的CAD数据文件转换方法和计算机可读介质
机译: CAD(计算机辅助设计)系统,生成CAD数据的方法以及生成CAD数据的程序