一种CAD数据抓取方法
技术领域
本发明涉及一种数据抓取方法,尤其涉及一种CAD数据抓取方法。
背景技术
目前,CAD文件中图元的数据导出不外乎两种方法,第一种是通过CAD软件内部功能,但结果是没有针对性,需要用户花大量的时间对这些杂乱的数据进行整理,而且在整理和查找使用数据的过程中出错的机会很大,使用起来非常麻烦;第二种是通过电脑的基本操作“复制、粘贴”来实现图元中数据的提取,操作繁琐且非常容易出错。其中,CAD文件里面不同方式画出来的图会变成不同图元,比如多段线、直线、块、单行文字、多行文字以及标注等,在CAD文件中其实就是对应的一个个图元。
发明内容
本发明所要解决的技术问题是需要提供一种操作简单且能够将图元对应数据准确无误导出至EXCEL表格中的CAD数据抓取方法。
对此,本发明提供一种CAD数据抓取方法,包括以下步骤:
步骤S1,初始化,并新建一个与CAD文件相关联的EXCEL表格;
步骤S2,控制并提示选择CAD文件中的图元,直到所选择的图元有效则跳转至步骤S3;
步骤S3,分析所述图元中的数据,得到图元中数据的有效内容;
步骤S4,将得到图元中数据的有效内容按顺序输出至所述EXCEL表格中;
步骤S5,判断是否已经完成需要的所有图元的数据抓取,若否则返回步骤S2,若是则结束。
本发明的进一步改进在于,所述步骤S2包括以下子步骤:
步骤S201,控制并提示选择CAD文件中的序号文字图元;
步骤S202,判断所述序号文字图元是否为有效序号,若否则返回步骤S201,若是则跳转至步骤S203;
步骤S203,控制并提示选择CAD文件中有效序号对应的标注图元;
步骤S204,判断所述标注图元是否为有效标注,若否则返回步骤S203,若是则跳转至步骤S3。
本发明的进一步改进在于,所述步骤S202中,若所述序号文字图元为阿拉伯数字,则判定该序号文字图元为有效序号。
本发明的进一步改进在于,所述步骤S204中,若所述标注图元符合CAD文件中标注的格式,则判定该标注图元为有效标注。
本发明的进一步改进在于,所述步骤S3中,通过正则表达式替换所述图元中的有效标注后,得到有效序号和正则表达式替换后的有效标注,并以此作为所述图元中数据的有效内容。
本发明的进一步改进在于,所述步骤S3中,通过正则表达式替换所述图元中的有效标注的数据包括:将所述图元中的有效标注的字符属性符号和指标符号替换为空格。
本发明的进一步改进在于,所述步骤S1包括以下子步骤:
步骤S101,初始化,并新建一个EXCEL表格;
步骤S102,获取所述EXCEL表格的变量名;
步骤S103,通过CAD文件中的可扩展接口记录所述EXCEL表格的变量名,以完成所述CAD文件与EXCEL表格之间的关联。
本发明的进一步改进在于,所述步骤S2中,通过CAD软件自带的拾取图元函数选择所述CAD文件中的图元,并发出拾取提示信息。
本发明的进一步改进在于,所述步骤S4中,将所述步骤S3中得到的有效序号和正则表达式替换后的有效标注一并输入至所述EXCEL表格的同一行中。
本发明的进一步改进在于,所述步骤S5中,判断当前图元是否为用户选择的最后一个图元,若否则返回步骤S2,若是则结束。
与现有技术相比,本发明的有益效果在于:通过新建一个与CAD文件相关联的EXCEL表格,然后通过CAD软件自带的拾取图元函数选择所述CAD文件中的文字序号图元和标注图元,再分析得到图元中数据的有效内容,最后将其按顺序输出至所述EXCEL表格中,这样,就能够通过所述CAD数据抓取方法获得准确无误的数据,操作简易,能够明显提高技术人员的工作效率,避免错误数据的输出。
附图说明
图1是本发明一种实施例的工作流程示意图;
图2是本发明一种实施例的详细工作流程示意图。
具体实施方式
下面结合附图,对本发明的较优的实施例作进一步的详细说明。
如图1所示,本例提供一种CAD数据抓取方法,包括以下步骤:
步骤S1,初始化,并新建一个与CAD文件相关联的EXCEL表格;
步骤S2,控制并提示选择CAD文件中的图元,直到所选择的图元有效则跳转至步骤S3;
步骤S3,分析所述图元中的数据,得到图元中数据的有效内容;
步骤S4,将得到图元中数据的有效内容按顺序输出至所述EXCEL表格中;
步骤S5,判断是否已经完成需要的所有图元的数据抓取,若否则返回步骤S2,若是则结束。
本例所述步骤S1中,所述初始化指的是初始化CAD文件与EXCEL表格之间的数据交换,同时新建一个与CAD文件相关联的EXCEL表格。在实现过程中,由于CAD软件和EXCEL表格本身都预留了可扩展接口,直接利用这种预留的可扩展接口就可以对其初始化;在新建一个EXCEL表格时,在建立EXCEL表格的同时能够获取一个对应该新建EXCEL表格的变量名xlapp,通过软件程序记录下该变量名xlapp即可完成CAD文件与EXCEL表格之间的关联关系。
也就是说,本例所述步骤S1包括以下子步骤:
步骤S101,初始化,并新建一个EXCEL表格;
步骤S102,获取所述EXCEL表格的变量名;
步骤S103,通过CAD文件中的可扩展接口记录所述EXCEL表格的变量名,以完成所述CAD文件与EXCEL表格之间的关联。
本例所述步骤S2中,通过CAD软件自带的拾取图元函数选择所述CAD文件中的图元,并发出拾取提示信息。
由于CAD软件本身包括了自带的拾取图元函数,即entsel函数,在实现过程中,通过点选序号文字图元和标注图元就能够采用该CAD软件自带的拾取图元函数实现函数调用,进而通过拾取图元函数的函数调用选择CAD文件中的图元,这个操作过程很简单。
如图2所示,更为具体的,本例所述步骤S2优选包括以下子步骤:
步骤S201,通过所述拾取图元函数控制并提示选择CAD文件中的序号文字图元;
步骤S202,判断所述序号文字图元是否为有效序号,若否则返回步骤S201,若是则跳转至步骤S203;
步骤S203,通过所述拾取图元函数控制并提示选择CAD文件中有效序号对应的标注图元;
步骤S204,判断所述标注图元是否为有效标注,若否则返回步骤S203,若是则跳转至步骤S3。
本例所述步骤S202中,若所述序号文字图元为阿拉伯数字,则判定该序号文字图元为有效序号。
在实际应用中,CAD文件里面有很多种图元,例如多段线、序号文字、标注、直线和块等。当用户点击一个图元后,可以获取这个图元的各种属性,包括其图元类型和文字内容。那么,本例所述步骤S202中,通过点击图元获取其图元的数据,首先判断拾取的这个图元的数据是不是序号文字图元,若是序号文字图元则接着判断该序号文字图元是不是阿拉伯数字,这两个条件中的任意一个条件不符合,即跳转至步骤S201,直到达到拾取的这个图元是序号文字图元且该序号文字图元为阿拉伯数字这两个条件,则判定该序号文字图元为有效序号,此时自动记录拾取和识别到的序号文字(即为序号)。
本例所述步骤S204中,若所述标注图元符合CAD文件中标注的格式,则判定该标注图元为有效标注。也就是说,所述步骤S204的原理与步骤S202基本一致,是将步骤S202的判断序号文字图元是否为阿拉伯数字替换为步骤S204的判断标注图元是否为CAD文件中的标准标注,若是则满足。
值得一提的是,本例所述步骤S3中,通过正则表达式替换所述图元中的有效标注后,得到有效序号和正则表达式替换后的有效标注,并以此作为所述图元中数据的有效内容。
之所以需要设置所述步骤S3,是因为通过所述步骤S204得到有效标注后,由于CAD文件中的标注图元本身存在一定的格式,比如某一个标注图元所获取的文字内容可能为“\\A1;
9.6\\S+0.05^-0.00;{\\fSimSun|b0|i0|c134|p2;通\\PRa1.6”,这一段乱码就是从标注图元所获取的文字信息,但这种文字信息不是用户平常的标准描述,因此,本例通过正则表达式去除干扰信息,将有效标注变成正则表达式替换后的有效标注,进而得到用户需要的标准信息。
从上面可以看到,有效标注中除了文字内容之外,还包括了一些特殊字符以及CAD后台的字符属性符号和指标符号等内容,进而使得步骤S204得到的有效标注含有很多乱码。而本例对这些CAD后台的字符属性符号和指标符号等格式符号信息并不关注,只是需要提出有效的文字内容即可。比如“\\A1;
9.6\\S+0.05^-0.00;{\\fSimSun|b0|i0|c134|p2;通\\PRa1.6”的有效的文字内容其实就是“
9.6+0.05^-0.00”,因此,本例优选利用正则表达式将不必要的内容替换掉。
具体的,所述步骤S3中,通过正则表达式替换所述图元中的有效标注的数据包括:将所述图元中的有效标注的字符属性符号和指标符号替换为空格。
正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表通常被用来检索、替换那些符合某个模式(规则)的文本。
本例所述步骤S3中,通过正则表达式替换所述图元中的有效标注的数据还能够进一步包括:将特殊符号
替换为D,并将堆迭格式^替换为\,进而将“
9.6+0.05^-0.00”替换为更加通用的“D9.6+0.05\-0.00”。当然,这个特殊符号
和堆迭格式^的替换,属于优选的步骤,在实际应用中,还可以将特殊符号
和堆迭格式^替换为其他用户自定义的习惯符号。
因此,所述步骤S3分析所述图元中的数据,得到图元中数据的有效内容;其实就是分析并去除所述有效标注中的干扰信息,即去除CAD后台的字符属性符号和指标符号等格式符号信息,或去除CAD后台的字符属性符号和指标符号并去除特殊符号
和堆迭格式^,进而得到正则表达式替换后的有效标注,使得抓取的数据简单易懂。
本例所述步骤S4中,将所述步骤S3中得到的有效序号和正则表达式替换后的有效标注一并输入至所述EXCEL表格的同一行中。比如第i个有效序号和第i个有效序号对应的正则表达式替换后的有效标注,则输入至所述EXCEL表格的第i行中,以便下一项序号文字图元和标注图元的有效内容能够输出至下一行(i+1)中,i为自然数。
本例所述步骤S5中,判断当前图元是否为用户选择的最后一个图元,若否则返回步骤S2,若是则结束。也就是说,所述步骤S5其实就是循环执行步骤S2至步骤S4,直到根据用户需要终止速搜CAD数据的抓取为止。
综上,本例通过新建一个与CAD文件相关联的EXCEL表格,启动EXCEL表格的功能,然后通过CAD软件自带的拾取图元函数选择所述CAD文件中的文字序号图元和标注图元,再分析得到图元中数据的有效内容,最后将其按顺序输出至所述EXCEL表格中,这样,就能够通过所述CAD数据抓取方法获得准确无误的数据,操作简易且有效,能够明显提高技术人员的工作效率,避免错误数据的输出。事实上,申请人所在公司已对本例所述CAD数据抓取方法进行了测试实验,实验表明其效果相当好,同样的工作量能节省80%以上的时间。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。