具体实施方式
如图1所示,是本发明三次元量测程序编辑系统较佳实施例的运行环境示意图。该三次元量测程序编辑系统10(以下简称为“编辑系统10”)运行于一台主机1中,该主机1连接一台显示设备2。该主机1包括储存设备12和至少一个处理器14。
在本实施例中,所述编辑系统10以软件程序或指令的形式安装在存储设备12中,并由处理器14执行。该编辑系统10用于根据一个量测程序的模板文件(以下简称为“模板文件”)及一个三次元量测元素文件(以下简称为“量测元素文件”)编辑量测程序。在其他实施例中,所述存储设备12可以为主机1外接的存储器。
其中,所述模板文件为量测程序的范本,内存有量测程序的数据格式、数据类型、关键词等。所述量测元素文件内存有机台(如三次元量测机台)量测工件所获得的量测元素信息。所述编辑系统10根据模板文件和量测元素文件可编辑该机台的量测程序,便于后续自动量测相同工件。
如图2所示,是本发明编辑系统10较佳实施例的功能模块图。该编辑系统10包括文件导入模块100、格式定义模块102、程序编辑模块104、错误提示模块106和量测程序输出模块108。本发明所称的模块是完成一特定功能的计算机程序段,比程序更适合于描述软件在计算机中的执行过程,因此在本发明以下对软件描述都以模块描述。
所述文件导入模块100用于导入所述模板文件和量测元素文件。
所述格式定义模块102用于根据模板文件中的内容格式,定义量测元素文件的内容格式,使得该量测元素文件的内容格式与模板文件的内容格式相同。
例如,模板文件的内容格式如下所示:
[FEAT/]
line0=″$strValue=FEAT/$strElementType″
line1=″ACTUAL/$dValue,$dValue,$dValue,$dValue,$dValue,$dValue″
line2=″PTMEAS/CART,$dValue,$dValue,$dValue,$dValue,$dValue,$dValue″
line3=″ENDMES″
上述模板文件中的$strElementType表示元素是点、线、面、圆等,该模板文件是通过逗号对数据进行分隔,并通过“=”、“/”对字符串和关键词进行区分开。格式定义模块102按照模板文件中的数据类型、数据格式和关键词,可对量测元素文件中的内容格式进行定义。例如,假设量测元素文件中记录的数据为圆的坐标信息,共四个点,则格式定义模块102根据模板文件中的内容格式及关键词可将量测元素文件中描述圆的数据的内容格式定义如下:
S1=FEAT/CIRCLE
ACTUAL/2.-424,3.123,1.000,0.000,-0.000,1.000,0.696
PTMEAS/CART,2.193,3.101,1.000,0.0000,0.0000,1.0000
PTMEAS/CART,2.020,0.937,1.000,0.0000,0.0000,1.0000
PTMEAS/CART,3.716,1.155,1.000,0.0000,0.0000,1.0000
PTMEAS/CART,4.554,3.157,1.000,0.0000,0.0000,1.0000
ENDMES
其中,对象S1中记录了描述所述圆的所有数据,如以“PTMEAS”开头的四行中记录了描述该圆的四个点的坐标信息,格式定义后的量测元素文件与模板文件匹配。
所述格式定义模块102还用于根据模板文件中每一行的关键词对量测元素文件中的数据进行限定定义。该对数据进行限定定义是指限定数据的修改权限及修改规则。所述修改权限包括:当选中量测元素文件中的一行数据进行删除时该行数据所在程序段中的全部数据都被删除,及当选中该行中包含一个或多个符号的数据进行删除时,该包含符号的数据无法被删除。所述修改规则如定义关键词无法修改,数据类型可修改。
所述关键词如模板文件中的字符“FEAT/$strElementType”、“ACTUAL/”、“PTMEAS/CART”和“ENDMES”。所述数据类型如模板文件中的字符“$dValue”,该字符“$dValue”表示量测元素的数据类型为double数据类型,其所对应的量测元素文件中的坐标信息如(x,y,z,i,j,k)=(2.193,3.101,1.000,0.0000,0.0000,1.0000)。其中,所述关键词不可修改,而字符“$dValue”对应于量测元素文件中的坐标信息是可修改的。
所述程序编辑模块104用于读取模板文件中每行的关键词及行中的数据内容,用量测元素文件中的数据替换该模板文件中的关键词和数据内容,得到编辑后的量测元素文件,该量测元素文件中记录了编写完成后的量测程序。
以上述模板文件和量测元素文件为例,第一行数据为″$strValue=FEAT/$strElementType″,程序编辑模块104在量测元素文件中找到匹配的对象S1(即每个对象中的数据为一个数据类型如点、线、面或圆的坐标信息),并用该对象S1中的数据替换“$strValue”,用“FEAT/CIRCLE”替换关键词“FEAT/$strElementType”,用“PTMEAS/CART”替换模板文件中的关键词“PTMEAS/CART”,用数据2.193等替换数据内容“$dValue”,以此类推,完成替换工作。该种方式的替换即通过导入散的量测元素信息,如坐标信息,汇整成量测程序并收集在量测元素文件中,每行的数据组成均与模板文件行中的内容格式、数据类型及元素的个数相同。
在本实施例中,为了完善所述量测程序,用户可以根据需要对该量测程序中的数据进行修改。所述程序编辑模块104接收用户的修改,以完成量测程序的编写。例如,粗写字体部分为相应修改后的坐标信息:
S1=FEAT/CIRCLE
ACTUAL/,3.123,1.000,0.000,-0.000,1.000,0.696
PTMEAS/CART,1.000,0.0000,0.0000,1.0000
PTMEAS/CART,0.0000,,1.0000
PTMEAS/CART,1.000,0.0000,1.0000
PTMEAS/CART,4.554,3.157,1.000,0.0000,0.0000,1.0090
ENDMES
用户还可以从所述替换后的数据中选取数据进行删除。具体而言,当用户选中量测元素文件中的某行数据进行删除时,该行数据所在段中的全部数据都会被删除。当用户所选中的数据中包含符号时,该数据及其所包含的符号无法被删除,而当用户选中没有包含符号的数据时,该数据可以被删除。
例如,假设量测元素文件中有三段,包括对象S1、对象S2和对象S3,其中,S1、S2和S3为对象名。
S1=FEAT/POINT
ACTUAL/2.321,3.715,1.000,0.000,1.000
PTMEAS/CART,2.321,3.715,1.000,0.000,0.000,1.000
ENDMES
S2=FEAT/LINE
ACTUAL/3.321,4.715,1.000,0.70710,1.000,0.920
PTMEAS/CART,3.351,4.215,1.000,0.000,0.000,1.000
PTMEAS/CART,3.611,3.370,1.000,0.000,0.000,1.000
ENDMES
S3=CONST/POINT,MID,S1,S2
ACTUAL/2.971,3.714,1.000,0.70710,1.000,1.000
若用户选中了对象S1中的行“PTMEAS/CART,2.321,3.715,1.000,0.000,0.000,1.000”,则该行所在的程序段即对象S1中的全部数据都被删除,删除后的量测元素文件中的内容如下:
S2=FEAT/LINE
ACTUAL/3.321,4.715,1.000,0.70710,1.000,0.920
PTMEAS/CART,3.351,4.215,1.000,0.000,0.0,1.000
PTMEAS/CART,3.611,3.370,1.000,0.000,0.000,1.000
ENDMES
S3=CONST/POINT,MID,S1,S2
ACTUAL/2.971,3.714,1.000,0.70710,1.000,1.000
假设对象S2中的数据如“4.215,”(包含符号“,”)被选中,则该数据及其包含的符号都无法被删除,而当选中的数据中没有包含符号时,如选中的数据为数字“0.000”中的“00”,则该数字“00”可以被删除。
在用户对量测程序进行修改时,错误提示模块106收集修改内容所在的位置标识,即收集所修改的内容所在的程序段及在该程序段中的第几行。若修改的数据与模板文件中定义的数据类型不匹配,如修改的数据的数据类型为字符串类型,而模板文件相对应位置处的数据类型为double类型,或当对替换后的数据中的对象名进行修改且修改后的对象名在其位置标识前并未出现时,所述错误提示模块106会输出错误提示报告,标识修改的错误内容,并将该错误提示报告和所标识的错误内容显示在显示设备2上。
例如,修改前的程序如下:
S1=FEAT/CIRCLE
ACTUAL/2.-424,3.123,1.000,0.000,-0.000,1.000,0.696
PTMEAS/CART,2.193,3.101,1.000,0.0000,0.0000,1.0000
PTMEAS/CART,2.020,0.937,1.000,0.0000,0.0000,1.0000
PTMEAS/CART,3.716,1.155,1.000,0.0000,0.0000,1.0000
PTMEAS/CART,4.554,3.167,1.000,0.0000,0.0000,1.0000
ENDMES
修改后的程序为:
S1=FEAT/CIRCLE
ACTUAL/2.-424,3.123,1.000,0.000,-0.000,1.000,0.696
PTMEAS/CART,1.000,0.0000,
PTMEAS/CART,0.937,1.000,0.0000,0.0000,
PTMEAS/CART,7/0.0000,0.0000,1.0000
PTMEAS/CART,4.5549,3.1657,1.000,0.0000,1.0000
ENDMES
在该程序段中,除了每行中的关键词外,其它数据的数据类型在模板文件相应位置处都是double数据类型,而对double类型的数据进行修改,且修改后的数据为“2.1s93”、“3.10a1”、“0.00g00”、“1.0?000”、“2020”、“4.5549”和“3.1657”时,由于“2.1s93”、“3.10a1”、“0.00g00”、“1.0?000”和“2020”与模板文件中相应位置处的数据类型不匹配,因此,错误提示模块106会输出错误提示报告,并将该数据类型不匹配的数据进行粗体、斜体或颜色标识(如红色),本实施例以粗体加斜体标识为例。由于数据“4.5549”和“3.167”与模板文件中相应位置处的数据类型匹配,因此未进行粗体、斜体或颜色标识。
需要指出的是,在本实施例中,对量测元素信息中含有ACTUAL关键词的行中的所有数据都不能修改。
当再次的对上述输出错误提示报告的程序中的数据进行修改时,修改后的程序如下:
S1=FEAT/CIRCLE
ACTUAL/2.-424,3.123,1.000,0.000,-0.000,1.000,0.696
PTMEAS/CART,2.993,3.601,1.000,0.0000,0.0000,1.0000
PTMEAS/CART,2.620,4.937,1.000,0.0000,0.0000,1.0000
PTMEAS/CART,3.216,2.755,1.000,0.0000,0.0000,1.0000
PTMEAS/CART,4.154,3.157,1.000,0.0000,0.0000,1.0000
ENDMES
由于该次修改后的数据类型与模板文件中相应位置处定义的数据类型匹配,因此,错误提示模块106不会输出错误提示报告,所修改的数据的字体不会改变。
当用户修改的数据为对象名时,如果对象名的数据类型与模板文件中定义的数据类型不匹配,或者修改后的对象名在收集的位置标识前无法找到时,错误提示模块106会输出错误提示报告,用粗体、斜体或颜色对修改的错误内容进行标识,并将该错误提示报告和所标识的错误内容显示在显示设备2上。
例如,量测元素文件中所有对象名下的数据包括:
S1=FEAT/POINT
ACTUAL/2.321,3.715,1.000,0.000,1.000
PTMEAS/CART,2.321,3.715,1.000,0.000,0.000,1.000
ENDMES
S2=FEAT/LINE
ACTUAL/3.321,4.715,1.000,0.70710,1.000,0.920
PTMEAS/CART,3.351,4.215,1.000,0.000,0.000,1.000
PTMEAS/CART,3.611,3.370,1.000,0.000,0.000,1.000
ENDMES
S3=CONST/POINT,MID,S1,S2
ACTUAL/2.971,3.714,1.000,0.70710,1.000,1.000
当用户修改对象S3中的数据时,刷新后程序中对象名的字体如下:
S3=CONST/POINT,MID,
ACTUAL/2.971,3.714,1.000,0.70710,1.000,1.000
由于CONST关键词对应的数据在模板文件中是字符串类型,所以程序数据“2.321”和“41tmp”与模板文件中相应的数据类型不匹配,导致错误提示模块106会输出错误提示报告,该程序数据的字体加粗、斜体或颜色变红,上述以字体加粗并为斜体为例。
即使将对象S3中的粗体与斜体部分的数据修改为字符串类型,但是由于在对象S3之前的内容(即量测数据)中无法找到该修改后的对象名,因此,错误提示模块106仍会输出错误提示报告,并将该修改后的对象名的字体加粗、为斜体或颜色变红:
S3=CONST/POINT,MID,S1,
ACTUAL/2.971,3.714,1.000,0.70710,1.000,1.000
具体而言,由于在对象S3之前导入的量测数据中只有对象名S1和S2,而没有对象名S4,所以,对象名S4的字体会被加粗并标识为斜体。
如图3所示,是本发明三次元量测程序编辑方法较佳实施例的作业流程图。
步骤S01,文件导入模块100导入量测程序的模板文件,并导入一个三次元量测元素文件(以下简称为“量测元素文件”)。
步骤S02,格式定义模块102根据模板文件中的内容格式,定义该量测元素文件的内容格式,并根据模板文件中每一行的关键词对该量测元素文件中的数据进行限定定义。该限定定义是指限定数据的修改权限及修改规则。
具体而言,所述修改权限包括当选中量测元素文件中的一行数据进行删除时该行数据所在程序段中的全部数据都被删除,及当选中该行中包含一个或多个符号的数据进行删除时该数据及其包含的符号无法被删除,所述修改规则是指定义关键词无法修改,而数据类型可修改。
步骤S03,程序编辑模块104读取模板文件中每行的关键词及行中的数据内容,用量测元素文件中的数据替换该模板文件中的关键词和数据内容,得到编辑后的量测元素文件,该编辑后的量测元素文件记录了编写完成后的量测程序。
步骤S04,所述程序编辑模块104判断用户是否需要修改该量测程序。若用户需要修改该量测程序,则流程进入步骤S05,若用户不需要修改该量测程序,则流程直接进入步骤S08。
步骤S05,程序编辑模块104接收用户对上述量测程序的修改。
步骤S06,错误提示模块106收集修改内容所在的位置标识,并根据该位置标识从模板文件中搜寻与该修改的数据相对应的数据内容,以判断修改的数据与模板文件中定义的数据类型是否匹配。当所述修改的数据与模板文件中定义的数据类型匹配时,流程进入步骤S07。当所述修改的数据与模板文件中定义的数据类型不匹配时,流程进入步骤S09。
步骤S07,当该修改的数据为对象名时,错误提示模块106判断该对象名是否在该修改的数据的位置标识前出现过。若该修改的对象名在该修改的数据的位置标识前出现过,则流程进入步骤S08。若该修改的对象名未在该修改的数据的位置标识前出现过,则流程进入步骤S09。
步骤S08,所述量测程序输出模块108输出该编写完成后的量测程序。
步骤S09,错误提示模块106输出错误提示报告,用粗体、斜体或颜色对修改的错误内容进行标识,并将该错误提示报告和所标识的错误内容显示在显示设备2上,然后流程进入步骤S08。也就是说,量测程序输出模块108在输出量测程序的同时,错误提示模块106会于显示设备2上标识量测程序中的错误内容,并弹出错误提示报告。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。例如,将此方法应用于在清晰的边界线上寻找边界点。