导图社区 DMIS语言总结_2-1_语言参考
这是一篇关于DMIS语言总结_2-1_语言参考的思维导图,对DMIS语言感兴趣的小伙伴们,可以收藏起来观看哦。
编辑于2022-05-31 15:40:32DMIS语言总结-1
基础知识说明
定义:
尺寸测量接口标准(Dimensional Measuring Interface Standar)
范围:
计算机系统和检测设备数据双向通信建立的一个标准
DMlS被设计成既能人工读又能人工写的,允许检验程序编写和检验结果分析都不使计算机辅助
一致性:
实现的原则
1. DMIS规范
2. 适当的形式 可识别的DMIS应用程序简档文件。
1. DMIS是一个大的和复杂的标准,厂家不需要执行整个标准,它们,实现功能子集,这些子集被称为简档文件。
DMIS规范只是文件交换格式
DMIS系统通常包括
1. 生成器(一个产生DMIS的程序)
2. 解释器(一个阅读DMIS的程序)
3. 图元文件(实际的DMIS输入输入输出文件)
测试DMIS一致性,需要下属一项或几项
1. 验证图元文件语法是正确的
2. 生成器生成一致的图元文件,图元文件精确和恰当的描述了预期的结果
3. 验证解释器能够正确和完全地阅读图元文件并产生预期的结果;
4. 验证DMIS特征化文件语法上是正确的并且它精确地描述了应用程序的能力。
语言参考
语法和结构
1. DMIS词汇在语法上相似于自动控制设备编程工具(APT)数字控制(NC)编程语言,包括用斜线字符“/”分割主字和次字
2. 输出数据格式与输入数据格式相似
DMIS词汇由ASCII字符构成,这些字符组合形成字、卷标、参数和变量。然后这些组合形成定义语句和命令语句。这些语句再组合形成程序块。程序块连同更多的语句一起形成整个DMIS程序。
3. DMIS语句两种基本类型
面向过程的命令语句
运动语句
机器参数语句
其他只有检验过程中才有的语句
面向几何结构的定义语句
几何结构
公差
坐标体系
可能包括在CAD数据库中的其他数据类型
4. 字符
由ASCII字符表中的十进制数表示
当DMIS编译时,不区分大小写
TEXT/Text/TExt在DMIS语言中认为是一样的
这个规则的唯一例外是在文本串用TEXT语句,FILNAM语句和其他文本由单引号包围的语句传递时大写和小写字符是有意义的。还要注意,基准的卷标只能是大写字母的字符。
负数前加“-”,正数前加“+”,或没有符号
整数后不要求小数点
数字数据表示度分秒,可以用冒号分隔
例如4:03:57.00
5. 字、卷标名、文本串、参数、变量和表达式
字
主字
至少由两个字母数字组成
一个主字
应为一个DMIS语句本身
或者指明一类语句
一类时被一个或多个次字指定
DMIS主字
特征化文件主字
次字
次字由一个字符数字字符组成,一些次字以负号字符为前导
一次次字用来修饰主字,或修饰某几个参数
DMIS次字
特征化文字次字
卷标名
测量程序中卷标用于
命名特征
公差
坐标体系
传感器
输出数据格式
基准
单一基准卷标名
1~2个大写字母组成
复合基准卷标名
2~4个大写字母,中间使用连字符“-”组成
宏程序
文本串
程序语句
除基准卷标外,其余所有卷标都有1~64位字符组成
允许使用的字符有
字符和数字(a-z,A-Z,0-9)
连字符“-”
小数点“.”
下划线“_”
两部分组成
由1~3个字符构成的卷标类型
例如:F,TA,DAT等
紧接着圆括号包围的卷标名
卷标名(除特征标称卷标外)只能发布一次并且在一个特定程序中不能被重定义
多个卷标具有同样卷标名(在圆括号内)但是具有 不同卷标类型是互相不同的。
文本串
一个文本串是被一对单引号包围的一组可打印的ASCII字符
例如:TEXT/QUERY”Sup Part),20,AN,L,'Enter the Supplier''S part number’
字符串超过80个字符长度后,可以使用“$”,行延续字符
子主题
参数
能够伴随不同语句传递的数值
例如:通过CALL语句被传递给一个宏指令
例如:使用OBTAIN语句置入变量
变量
所有DMIS变量都要被表示
布尔型
字符串
双精度
整数
长字节
实值
向量数据类型
名的第一个字符必须是字母,最长可具有16个字符,变量不能使用DMIS的保留字,不区分大小写
变量能明确表示成是局部、全局,公共
主程序中变量默认全局
程序中默认局部变量
表达式
一个DMIS表达式是一个变量,常量,文字串,算数表达式或逻辑表达式TODO
6. 变量赋值
可以从一个定义的参数中获取,例如:OBTAIN
指定一个测量结果,例如VALUE
被赋予一个值,例如ASSIGN
举例:变量赋值
示例; $$ $$下面的例子示范 个宁符变量替代了~个文字文本串参数 $$ DECL/GLOBAL.CHAF}.80.MYTEXT MYTEXT=ASSIGN/’This is my text message to the operator’ TEXT/0PER.MYTEXT
7. DMIS命令和定义语句
主字,次字,参数,卷标,文本和变量合并构成命令语句或定义语句
命令语句
指示DME或接收系统执行某个功能
通常命令语句包含对先前语句的引用
定义语句在执行命令语句时被使用
主字表示命令语句或语句类型
后是一个斜线字符/和一个或多个次字、参数、卷标、文 本和/或变量。
某些情况下,只有一个主字也是合法的
示例
只有一个主字:例:DFTCAS
只有一个主字和次字,例如:BADTST/ON
有时只有一个主字跟随着参数,而可能不要求次字、卷标、文本或变量。
FROM/12 341.427 284.183 29
再有其他情况,要求主字跟随着次字、参数、卷标、文本和/或变量。
CALL/EXTERN,DME,’bolt circle’,WAIT,5,20
基本结构如下:
MARJOR-WORD/MINORWORD(s),PARAMETER(s)
定义语句
定义语句为几何、公差、机器特性、和与检验零件编程有关的其他条件的特定情况描述详细的信息。
与命令语句区别:
除了主字以一个卷标和一个等号“=”为前导外,定义语句的基本结构和命令语句的结构是相似的
定义语句描述一个特定的条件集合,为了便于引用给它指派一个卷标名。然后卷标名在其他语句中被用来引用被定义的目标。
两种语句举例:(整段为一个文本)
FINPOS/ON
命令语句
仅由一个主字和一个次字构成,没有参数。这个语句指示DME的精 密定位特性被启用。
F(CIRCLE一1)=FEAT/CIRCLE,INNER,$ CART,10,10,5,0,0,1。4
定义语句
由一个主字、一个卷标、多个次字和多个参数构成。它描述一个特征 的大小、位置和方位,这个特征是一个圆,并且给它指派名“C1RCI。Ej”。通过行延续字符“$” 这个语句延续到第3行。
MEAS/CIRCLE,F(CIRCLE一1),3
GOTO/10,10,5
命令语句
仅由一个主字和多个参数构成,这些参数指示DME移动到给定的 位置。
PTMEAS/CART,12,i0,5, l,0,0 PTMEAS/CART,8,10,5,1,0,0 PTMEAs/CART,10,12,5,0,一l,0
命令语句
都是由一个主字与一个次字和若干参数构成,它们指示DME在 给定位置进行点测量。
ENDMES
命令语句
它只是一个主字自己,指示测量序列已经完成。
8. 定界符,空行,空格和制表符
定界符
DMIS中正斜线,逗号,圆括号,单引号,双引号和方括号被用作定界符
斜线/
用于分开主字和次字
只有主字时不需要斜线
举例
MAJOR—WORD(主字) 示例: ENDME
当一个主字后面跟随一个次字时,正斜线跟着主字先于次字。 MAJOR WORD/MINOR WORD(主字/次字) 示例: SCAN/PAHSE
当一个主字后面跟随一个或多个参数时,正斜线跟着主字先于参数。 MAJORWORD/parameter(s)(主字/参数) 示例: FROM/302,481.18
在GCURVE、GSURF和RAWDAT输出时,每个数据点由正斜线为前导而没有主字或次字。 在数值表达式中正斜线字符还用作除法运算符。
逗号
用作分割次字和参数的通用定界符
MAJOR_WORD/MINOR—WORDI,MINOR_WORD2,paraml,param2(主字/次字1,次字2,参数1,参数2)
圆括号()
用作定界符
卷标名包含在括号中
一个无条件转移到一个跳转目标的例子,这个跳转目标用“BEGIN"做卷标
GOTARG/.. GOTO.. ENDGO JUMPT0/(BEGIN) SNSLCT/ (BEGIN) MEAS/CIRCLE,F(CIRCLE—1),5 PTMEAS/ PTMEAS
JUMPTO语句导致一个非条件转移,转移到以BEGIN为卷标的语句,这个卷标处于MEAS/CIR CI正语句之前。
圆括号还用于运算、关系、逻辑和字符表达式,
单引号
单引号’用作定界文本串的开始和结束。
示例·
示例: FIENAM/'041 380385 test dated 1999 lO/17’.04 0 一共使用两个单引号.当在文本串里要求单71号时,一个要在要求的另一个前而。
示例: TEXT/0PER.’Use Paul…s setup instructions from the last job’ 这导致下列信息被发送到显示器: Use Paul’s setup instructions|Erom the last]ob
在宏程序中单引号,还用于指明多个虚参数,当宏程序被调用时,这些虚参数将坡多个卷标所取 代
空行,空格和制表符
在DMIS中宅{j和空格没有意义。在翻译时空行是没有意义的并被忽略。在DMlS宁、卷标名、参数和变量中夺格是不允许的。
空格和制表符可用于
在语言的记号之间(DMIS字、卷标名、变量名、数字和定界符之间)。
在TEXT、FILNAM和其他语句中使用“文本”传递的文本串内部。
在注内部
在其他任何地方都不能使用空格和制表符。除了在文本串中,空格和制表符在它们正确被使用的地方都没有意义
空行、空格和制表符可能在手工编程或分析时增加清晰性,但是它们在DMIS文件翻译中被计算机程序所忽略(除了在文本串中的空格和制表符外)。
不例: F(CIRI)=FEAT/CIRCLE.INNER,CART,10,i0,5,0,0,I,25 MEAS/CIRCLE,F(CIR 1).5 被解释和下面相同: F(CIR 1)=FEAT/CIRCLE.INNER,CART,10·i0·5,0·0,l,25 EEAS/CIRCLE,F(CIRl),5
9. 行长度
DMIS文件由可变行长的记录构成
每个行由回车(CR)和换行(LF)终止
单个的美元符号“$”起到行延续符的作用
DMIS语句具有可变行长,而每行最多应为80个字符,包括CR和LF
当一个语句大于80个字符时,语句必须在下一行延续,并且在这个被延续行的末尾使用单个的美元符号“$”作为最后一个字符(在回车(CR)和换行(LF)宇符之前)。
举例
示例J: DISPLAY/PRINT,V(OUT_1),TERM,S V(OUT 2) 被解释和F而相同: DISPLAY/PRINT,V(0UT_1),TERM,V(OUT 2)
示例2: O(MyLable)=QISDEF /‘This is a$i00 00 program’$ .‘100.00’ 被解释和下面相同:Q(MyLable)=QISDEF/’This is a$100 00 program’,’100 00’
10. 编程注解
编程注解是插入到DMIS检验程序中的文本行,以帮助程序排错和评述程序的各部分。它们不被任何自动化系统解释。
编程注解被放在行首的两个美元符号“$$”所指明。计算机程序在执行或在转换DMls命令时将忽略所有以双美元符号开头的行。
示例: $$This is a programming comment to be $$ ignored bythe DMIS system(这是·个被DillS系统忽略的编程注。j $$ In this section of the program,the datums $$ will be established(在程序的这部分将建立基准值。) $$This part of the program will be performed $$ in manual mode(这部分程序将以人工方式执行。)
11. 操作人员输入
TEXT语句
在DMIS词汇中各种形式的文本受到支持。通过TEXT/QUERY和TEXT/RES语句支持标题数据。这样允许各用户为个别的需求建立标题数据。
TEXT/QUERY
句从一个输入程序传递给DME,要求操作人员或某个其他系统做出响应。例 如,一个零件号或者被操作人员键盘输入或者通过一个条码扫描器读入
语句为询问指定一个卷标,为响应指定允许的特征个数,是否是字母数字的、数字的或任何ASCll可打印字符的,和是否它是左对齐的或右对齐的
当响应被输入时,被作为一个TEXT/RES语句传递到输出文件,并标以和相关询问相 同的卷标。其他参数(长度、类型和对齐)也被传递到输出文件。
举例
TEXT/QUERY,(name),40,A,L,’enter Operator Name:’ TEXT/QUERY,(today),10,AN,L,’Enter today’S Date:‘
TEXT/RES,(name),40,A,L,’John Smith' TEXT/RES,(today),11,AN,L,’2000/06/14‘
其他形式的TEXT语句允许文本信息输出到显示器(为操作人员)和/或到输出文件。文本也可能被有条件地送给操作人员,如果DME执行一个人工方式操作的语句,这样它将仅被输出。这允许操作人员的指令被编程和除非需要时被删除。
PROMPT语句
PROMPT语句提供了提示操作人员的更丰富的机制;并增加了从操作人员输人来初始化程序变量的能力。
12. 数据输出
从DME输出的数据能够被送到几个设备中的任何一个。被送到各设备的数据可以被指定为DMIS格式、厂家格式或者两种格式兼
一些DMlS语句的输出是由执行一个OUTPUT语句引起的,然而其他DMIS语句执行时是被直接传递到所有打开的DMIS输出文件。每个单个语句的引用给出那个语句的特定的DMlS输出特性。
例如:当执行时,ROTDEF语句被传递给输出文件。输出设备可以被分成两类,即那些被DME控制的和那些被用户控制的。输人设备是被用户控制的
默认的输出设备
输出数据将被送往的DME默认的设备是被DISPLAY语句控制的。
此语句用来关闭所有的输出或指定一个duo'ge 下列设备作为输出设备
TERM(DME的显示终端)级别一,对符合简档文件的目标是极主要的;
PRINT(打印机);
STOR(磁性存储器,如软盘或硬盘);
COMM(一个辅助通信端口)。
在DMlS输入程序中,DISPLAY语句必须出现在任何引起输出的语句前
如果使用VFORM语句,需要在DISPLAY引用前对其定义
DMIS输出文件必须有一个FILNAM语句作为它的第一行,ENDFIL结束
当要求在多个设备输出时,这些设备都必须在第一个DISPI,AY语句中标识出,以保证 FILNAM语句将出现在全部被选择的设备上
举例
如下所示在一个DMIS程序中,DISPLAY语句可能出现不止一次。然而,值得注意的是最后一个DISPLAY语句永远是有效的,而一切前面的设置都失效。启用或重置前面的设置,必须发布一个新的DISPLAY语句。
$$Sample DMIS Input Program(DMIS输入程序样本) DMISMN/’Sample DMIS 4.0 file 2000/02/041,04 0 V(Vendor—output)=VFORM/ALL DISPLAY/PRINT,DMIS,STOR,V(Vendor—output) FILNAM/’Sample DMIS Input Program’,04 0 可执行语句 DISPLAY/TERM,DMIS 可执行语句 DIsPLAY/PRINT,DMIS,STOR,V(Vendor—output) 可执行语句 ENDFIL
当STOR用于DISPLAY中时,数据将被送往存储设备。存储设备文件名的选择是和DME相关的。
用户定义的输入、输出设备
输出数据将送往的或输人数据将从那里被接收的用户设备受到DEVICE和OPEN语句的控制。
DEVICE语句标识设备类型(打印机、终端、通信端口或存储设备)和给设备指定一个卷标
在DMIS程序结束前,CI,OSE语句可以用于关闭()PEN语句打开的设备,也就是说在遇到 ENDFI[。语句前。当存储设备像文件那样关闭时,它可以通过使用DEI.ETE参数删除。如果使用 KEEP或是END参数,或者没有参数被指明,存储设备将不被删除。KEEP参数是所有存储设备通常 使用的参数。设备或文件被简单关闭而没有被删除。END参数是DMIS输出文件使用的特殊参数。 当cI.OSE/I)ID(1able).END语句被执行时,一个ENDFII。语句传递给存储设备,就像DMIS程序的结 尾已经达到,也就是说就像遇到了ENDFII,语句。 DMISMN/’Sample program with DECICE statementl,04 0(DELETE语句程序样本) V(V1)=WORM/NOM,ACT,DEV,AMT DISPLAY/PRINT,V(V1).STOR,DMIS FILNAM/’DEVICE statements program。.04.0 $$The DMIS default output file is opened and the FILNAM statement is $$passed to the file The vendor format printer is opened $$Any DMIS output is passed to the default DMIS output file as $$statements are executed (DMIS默认输出文件被打开和F11.ENAM语句被传递给文件。厂家格式打印机被打开。当这些 语句被执行时,任何DMlS输出都被传递给DMIS默认的输出设备。) DID(mydata)=DEVICE/STOR,+/user/dmis/myfile dat’ OPEN/DID(mydata),FDATA,DMIS,OUTPUT,OVERWR $$The user defined DMIS output file is opened and the FILNAM statement $$is passed to the file (用户定义的DMIS输出文件被打开和FII,NAM语句被传递给文件。) 可执行语句 $$Any DMIS output is passed to both the default DMIS output file and $$the user defined DMIS output file as statements are executed (当这些语句执行时,任何DMIS输出都被传递给DMIS默认的输出文件和用户定义的DMIS输出 文件。) CLOSE/DID(mydata),KEEP $$The user defined DMIS output file is closed(no ENDFIL statement is $$passed to the file) 用户定义的DMIS输出文件被关闭(没有ENDFII,语句被传递给文件)。 可执行语句 $$Any DMIS output is now passed only to the default DMIS file $$as statements are executed (当这些语句执行时,任何DMIS输出现在只传递给DMIS默认的文件。) OPEN/DID(mydata),FDATA,DMIS,OUTPUT,APPEND $$The user defined DMIS output file is reopened. (用户定义的DMIS输出文件被重新打开。) 可执行语句 $$Again,any DMIS output is passed to both the default DMIS output $$file and the user defined DMIS output file as statements are $$executed (当这些语句再次执行时,任何DMIS输出都被传递给DMlS默认的输出文件和用户定义的DMIS 1 O GB/T 26498—20 11/lso 22093.2003 输出文件。) CLOSE/7DID(mydata),END $$The ENDFIL statement is written to the user defined DMIS output file $$before being closed (在被关闭前,ENDFll。语句被写入用户定义的1)MIS输出文件。) ENDFIL $$The ENDFIL statement is written to the default DMIS output file $$before 1t is closed The vendor format print device is closed (在被关闭前,ENDFII。语句被写入DMIS默认的输出文件。厂商格式的打印设备被关闭。) 下面是用户定义的输出设备进一步的例子。这些例子示范了DEVlCE语句怎样影响OPEN、 CI。OSE和VFORM语句。
OPEN语句打开前面定义的系统设备并确立联接的输入/输出属性。
举例
示例1: 两个输出设备.c:\㈣rs\reports\test—report一1.1xt和c:\users\reports\test report 2.tXt同时被打开。由于 OVERWR次字选项,两个文件将被重写,所以它们必须已经存在。被测量点的输出将以用户定义的厂家格式被导向到 1)II)(1'ilestoreI),这个格式是被VFORM语句定义的。此外,这个点的输出也被以I)MI'S输出格式导向到输出设备DID (nlestore2)。 在输出已经被执行完毕后.样本DMIS程序关闭两个设备。设备DID(filestorel)是用保留文件的KEEP次字选项 关闭的.不像用DEI。ETE次字选项将在关闭后删除文件。设备DID(filestore2)是使用END次字选项关闭的,这将导致 ENI)FI,I,。语句被写人DMIS输出文件,而后文件被关闭。
FILNAR/1 Some File Name 1,04 0 Vl,alleut)=VFORM/ALL DID(filestorel)=DEVICE/STOR.’c:\users\reports\test—report一1 txt’ DID(filestore2)=DEVICE'STOR,’c:\users\rep。rts\test report 2 txt’ OPEN/DID(filestorel),EDETA.v(allout),OUTPUT.OVERWR OPEN/DID(filestore2),FDATA,DNIS.OUTPUT,OVERWR “circlej)=FEAT/POINT,CART.100.100,20,0.0,1 MEAS/POINT,F(circle).1 ENDMES OUTPUT/FA(circle 1),TA( ),TA( ) CLOSE/DⅡ)(fllestorel).KEEP CLOSE/DID(filestore2).END
示例2: 在这个例子中,每次循环(do—loop)被重复执行,‘个新的输出文件被建立。这个样本编码的结果是文件“\\data\ mydrive\spc 001一file.spc”到“\\data\nlydⅢe\spc 130 l,ile spc”将被建立。一旦这个样本程序被完成,每个这样的输出 文件将包含‘个FA(1able)的测量输出。
FILNAM/’This—File Name’,04 0 DiD(incremental—file)=DEVICE/INCR,’\\data\mydrive\spc???file spc’ Vfact—dev)=VFORM/ACT,DEV DECL/INTCR,i DO/1.1.130.1 OPEN/DID(incremental file),FDATA,V(act—dev),OUTPUT,APPEND F(Point 1)=FEAT/POINT,CART,100,i00,20,0.0,i MEAS/'POINT,F(Point一1),i ENDMES OUTPUT/FA(Point 1),TA( ),TA( ) CLOSE/DID(incremental file),KEEP ENDDO
输出格式
输出数据将被发送的数据格式成为DMlS格式、DME厂家独特的格式或两种格式兼有
厂家格式的数据随着各厂家广泛变化,是不标准的。
VFORM语句规定厂家格式输出数据的数据内容,例如标称值、实值、偏差等。然而,这些数据的实际物理格式留给各个厂家确定
例如。如果VFORM语句规定标称值、实值、偏差,一个DME可 能输出标称值,然后实值,再然后偏差。另一个I)ME可能输出偏差.然后标称值.再然后实值。一个DME可能以表格形式输出数据。另一个DME可能把全部数据输出在一个单列上。DMlS词汇不控制厂家数据的格式;它仅规定数据的内容。
13. 程序结构
说明
DMIS程序结构通常仅指一个程序文件
DMIS高级语言(HHL)拓展允许模块化程序设计
模块化程序设计提供了重复使用现存编码的能力
一个DMIS零件程序可能由多个文件构成,作为一个整体定义了一个完整的检验零件的程序
模块化可以通过使用外部文件声明(EXT-FIL)获得,包括语句(INCLUDE)和模块文件(DMISMD)
程序单元
主程序
主程序单元被DMISMN语句指明并终止于ENDFIL语句
程序模块
程序模块单元被DMISMD语句指明并终止于ENDFIL语句
被主程序单元从外部引用的外部DMIS文件(即模块),包括声明、规程和功能,涉及到下列:
DMISMD/’My_Module—ID’,04 .0 FILNAM/’My_Filenamel,04 .0 外部声明 数据声明 宏定义 DMIS语句序列 ENDFIL
通常一个典型的I)M1S高级语言(HLL)模块涉及下列内容: DMISMD/’SQRKEY—Feature—Definitions',04.0 FILNAM/’/user/dmis/defn/sqrkey',04 0 DECL/COMMON,REAL.X,Y.Z DECL/GLOBAL,INTGR,sm_num M(spechole)=MACRO /X,Y,Z 可执行语句 ENDMAC M(crunchem)=MACR0/crunch_numbr,numl,num2 可执行语句 ENDMAC ENDFIL
程序块
程序块是逻辑上组合在一起的执行某个功能的一系列语句。
程序块被块中第一个和最后一个语句所标识。在DMlS中有多种类型的程序块。
标校序列
CALIB语句开始----ENDMES语句终止
测量序列
MEAS或RMEAS语句开始----ENDMES语句终止
动作序列
控制一系列非测量运动
GOTARG语句开始----ENDGO语句终止
IF条件转移
逻辑表达式
IF开始---可以包含一个选择ELSE语句----以ENDIF结尾
宏定义
宏程序是子程序,它们可以根据在参数位置上的不同值来执行
宏以MACRO语句开始----ENDMAC语句终止
按情况转移选择
SELECT---ENDSEL
根据一个或多个CASE测试结果执行语句
SELECT语句开始,一个可选的DFTCAS块语句包含多个CASE块---以ENDSEL语句终止
情况语句
CASE----ENDCAS
根据SELECT参数进行的测试结果,执行界定在CASE和ENDCAS语句之间的语句
默认情况语句
仅当没有任何一个CASE子句在SELECT块中被激活时
DETCAS---ENDCAS块执行界定期间的语句
循环序列
DO----ENDDO
提供根据一个初始值和极限值按照指定的增量重复执行一个指令序列的能力。
外部文件声明
外部文件声明块声明包含程序单元的文件,这些程序单元在本地DMIS程序中被使用
XTERN----ENDXTN
14. 文件结构
程序(输入文件)和输出文件由命令语句,定义语句和程序块的组合构成
程序文件或输入文件
DMISMN第一个开始---ENDFIL语句最后一行结束
结果文件和输出文件
在语法上很输入文件相似
测量结果按照实际值和公差定义的形式传递,即在格式上和输入文件(标称值)定义语句相似
测量时某些命令语句被传递给输出文件用来指示机器的参数设置
FILENAM语句作为第一行-----ENDFIL语句作为最后一行
15. 编程考虑的事项
程序结构
程序声明、程序结构、实体定义、转移、模态和默认设置
程序声明
DMIS程序中声明包括外部文件、变量和宏声明。
DMIS语句
定义语句
在DMIS输入程序中,全部特征、公差和传感器在其他语句使用它们之前被定义。
模态和非模态语句
DMIS词汇中一些语句或者是模态的或者是非模态的。
模态语句通常设置一些机器的参数或者其他条件,这些参数或条件保持有效直到语句重新发出。
非模态语句仅对语句的单次执行有效
作为结果,当在一个程序中转移时,在转移发生前和后都应该切 实注意保证模态设置是恰当的。转移是由IF和JUMPTO语句导致的。
默认设置
在规约中没有默认的设置。作为结果,用户必须意识到初始DME设置或者从前面操作残余下来的设置可能仍然有效。
执行和控制
声明语句
外部声明语句
DMIS规定了外部文件声明,这些文件在本地DMIS程序单元中或DMIS模块(DMISMN,DMISMD)内使用
这些文件可能包含可被cALL/ExTERN语句调用的外部程序(即DMlSMD)、外壳脚 本、DME例行程序和DMIS宏程序
所有外部文件必须在XTERN…ENDXTN外
一个外部声明块的纲要如下: XTERN EXTFIL/var_1,’pathname' ENDXTN
变量声明语句
所有DMIS变量都必须用DECL语句做出声明
变量类型
布尔型
整数
长整数
实值
双实值
字符串
向量
命名规范:
有1-16个字符数字和下划线字符构成
变量名第一个字符必须是一个字母字符
变量名不能使用DMIS保留字(主字,次字,定义卷标和功能名 )
变量名不分大小写
一个变量声明用来在DMIS程序单元DMISMN,DMISMD和宏声明一个或多个特性类型数据
一个变量声明模块的纲要如下: DECL/var—l,var一2,vat一3
DECL/CHAR,i0,myclamp myclamp=ASSIGN/'CLAMPl2’ CI(CLAMP)=CLMPID/myclamp
定义语句
算法定义
算法定义用来为特殊的检验或特征定义特定的算法
ALGDEF语句主要支持图像检验设备并具有附加不同的传感器的能力力,因为它们和不同的视觉算法和滤光器相关
GEOALG语句的目的是为创建特征实值指定一个特定的替代特征数据拟合算法(例如:最小二乘法、最小最大、最小外切、最大内接)。
限界定义
BOUND语句给特征或公差指定限界
BOUND使用在其引用的特性,公差定义后,实际测量前
当一个公差被限界时,BOUND语句必须出现在EVAL或OUTPUT语句之前,这个公差适用于被测量的特征
几何定义
几何定义用于为CAD数据信息定义特定的几何结构。
宏定义
DMIS规定r定义宏程序来执行重复的功能而不必重新编程所有语句
在MACRO---ENDMAC之间的程序块声明和定义宏
宏可以通过CALL语句调用
典型情况下,一个宏定义段是通过DMIS程序单元内或DMIS模块(DMISMN,DMISMD)来定义宏
M(1able)=MACRO/argument—list 外部声明 数据声明 DMIS语们序列 ENDMAC
制造设备定义
定义制造设备和工具的语句MFGDEV和TOOLDF是和一个补偿语句CUTCOM相关联的,这样允许根据检验结果进行过程调整。这些语句为制造单元要求的过程中验证提供必要的数据以形成闭环。
配合定义
定义特征和几何形状之间,或者是特征和其他特征之间的配合信息
质量信息系统定义
质量信息系统(QIS)定义用于定义质量信息特征
在支持QIS的要求方面,语句包括定义下面这些实体标识的语句,如I)MEs、DME软件版本、操作人员、零件号、校正水平、检验计划、装置、夹具、前道操作等。
公差定义
在DMIS中公差定义是一般的,在这里没有指针指向公差适用的特征
公差和特征之间的相关是 由EVAL和OUTPUT语句来管理的。
DMIS文件中公差定义不需要立即出现在特征定义后,但是 公差定义必须出现在被EVAI,或OUTPUT语句使用之前。
程序语句序列
选择性处理
选择性处理是一种能力.这种能力允许程序流控制或者是根据测量结果,或者是根据外部提供的参数值被改变
这种能力可以通过使用HHL扩展获得得。这包括使用OBTAIN和ASSIGN语句连同 HHI,条件转移语句(例如:IF.SELECT)。
DMIS高级语言(HHL)模块的一般结构涉及下列内容:
DMISMD/’SQRKEY—Feature—Definitions’,04 0 FILNAM/’/user/dmis/defn/sqrke/',04 0 DECL/COMMON,REAL,X,Y,Z DECL/GLOBAL,INTGR,sm_num
M(spechole)=MACRO/x,y,z 可执行语句 ENDMAC M(crunchem)=MACRO/crunch_numbr,nmnl.hum2 可执行语句 ENDMAC ENDFIL
DMIS高级语言(HLL)程序结构一般涉及下列内容:
DMISMN/‘Prog—ID‘,04 0 FILNAM/’Filename’,04 0 外部文件声明 数据声明 宏定义 DMIS语句序列 ENDFIL
举例
DMISMN/’SQRKEY—Main_Program’,04. 0 FILNAM/'/user/dmis/prgm/sqrkey.dmi’,04. 0 $$ External File Declaration(外部文件声明) XTERN EXTFIL/DMIS,'/user/dmis/techniques' EXTFIL/SYS,'/user/algorithms/circles.alg’ ENDXTN $$Data Declarations(数据声明) DECL/COMMON,INTGR,Z_DIM,A[10] $$ Macro Definitions(宏定义) M(cir_meas)=MACRO/x,y,z,diam 可执行语句 ENDMAC M(cyl—meas)=MACRO/x,y,Z,diam,fen 可执行语句 ENDMAC $$DMIS Body Statements(DMIS程序体语句) 可执行语句 ENDFIL
程序和模块
一个检验程序的程序体(即特征定义、公差定义、限界语句和输出语句)必须恰当地排序
义。所有DMIS输入程序必须由一个DMISMN语句开始,所有DMlS模块必 须由一个DMISMD语句开始。两者必须由~个ENDFlL语句结束
MISMN语句给接收系统指明, 这个程序是DMIS输入主程序。在一个DMIS输入主程序中,ENDFIL语句指明主程序的结尾已经到达。在一个DMIS输入模块中,ENDFIL,语句转移程序执行回到调用程序CALL语句的下一行。不是DMIS主程序一部分的DMIS输人模块可以被调用。所有模块将有一个DMISMD语句作为它们的可执行代码的第一行。这样使得模块和主程序区分开,并提供一个更灵活的解决问题的途径。
评价
EVAL和OUTPUT语句通常紧跟在一个测量序列后使用,以此来比对公差评价特征
当为特征使用SAVE语句时和在测量时问之前使用过PTBUFF/ON语句后,特征实值和它的数据指针被存储。如果PTBuFF/OFF语句在测量时间之前被使用,那么只有特征实值被存储。
例如,两个特征被要求验证平行度,其中一个在EVAL或OUTPUT语句之前已经被测量过。由于要求特征实值存在,因为可能的存储器的限制,这个特征实值应该被SAVE语句存储。
在判定计算对特征的公差时,EVAL语句的使用是选择性的,因为评价对特征的公差也可以用OUTPUT语句来执行。
EVAL和OUTPUT语句通常紧跟在一个测量序列后使用,但是如果特征实 值曾经用SAVE语句存储过,这两个语句可以在测量序列后任何地方出现。当SAVE用于特征时,是特征实值被存储,而不是数据指针。
EVAL语句可用于生成公差实值,就是说一个TA(1able),然后它可以用OBTAIN语句获取和在选择性处理测试中使用,而不是被OUTPUT语句送到一个输出文件。EVAL和OUTPUT语句可以为l~2个特征卷标支持几个公差卷标。对于关联公差要求有两个特征卷标,例如对于TOL/ANGLB和TOL/DISTB语句。
当执行时,OUTPUT和/或EVAL。语句导出特征实值和FA(1able)的评价,公差实值和TA(1able)的评价。此外,OUTPUT语句导致数据被输出。OUTPUT语句可能规定报告的格式,也就是送到输出文件的附加信息。如果是这种情况,REPORT语句格式必须在OUTPUT语句之前被定义。评价意思是结果可供将来使用。
输出语句指明输出数据的内容、格式和数据将被送到的设备。输出语句还可用于输送指令给接收系统。
测量
执行时,CALIB、MEAS或RMEAS语句导致一个特征被测量。它们必须出现在特征被定义之后,BOUND语句之后(如果特征被指定限界)并在EVAL。和OUTPUT语句处理这个特征之前。
杂项
杂项语句规定为特殊应用程序的用户特定数据的通信,包括DMIS、DMEHW和DMESW语句。
程序语句序列举例
$$groupl)(第l组) R(REP一1)=REPORT/DATE F(CYL一1)=FEAT/CYLNDR,INNER,CART,0,0,5,0,0,1,8 F(PLN-1)=FEAT/PLANE,CART,0,0,0,0,0,l F(PLlL2)=FEAT/PLANE,CART,0,0,10,0,0,1 F(PLn3)=FEAT/PLANE,CART,0,0,10 25,0,0,1 T(PERPX)=TOL/PERP,.05,RFs,DAT(A),RFS T(dia—1)=TOL/DIAM,一.002,+002
特征定义和公差定义,优先于BOUND语句和EVAL语句以及OUTPUT语句
(第2组) BOUND/F(CYL 1),F(PLN—i),F(PLN一2) BOUND/T(PERPX),“PLN一1),E(PLN一3)
要求对特征和公差使用BOUND语句时,必须出现在被引用的特征和公差定义之后。
一旦特征定义和要求的BOUND发出后,在第3组中特征就可以被测量。
选择性的EVAL语句可以在测量序列之后立即出现,或者在文件结尾出现。
$$group 3)(第3组) MEAS/CYLNDR,F(CYL-1),12 可执行语句 ENDMES SAVE/FA(CYL_1)
$$group 4)(第4组) GB/T 26498—20 11/IS0 22093:2003 EVAL/FA(cYL-1),T(PERPX) $$(OPTIONAL STATEMENT)(选择性语句)
$$group 5)(第5组) OUTPUT/FA(CYL_1),TA(PERPX),TA(dia_1),R(RE P_1)
OUTPUT语句可以按任何顺序和其他DMIS语句列出,但是必须跟随在相应的特征测量 MEAS序列之后,并且必须跟随在要求的公差定义之后。OUTPUT语句可以出现在文件结尾。
$$group 6)(第6组) F(NEXT—ROLE)=FEAT/CIRCLE,INNER,CART,5,4,3,0,0,1,8 MEAS/CIRCLE,F(NEXT_HOLE),7 ENDMES
高级语言
功能性
HHL和相关的I/O功能使DMIS主要受益如下:
为DMIS程序规定结构。
包括进来更多的标准数据类型。
允许变量数组。
许变量赋值,如:Pl=ASSIGN/3.141 6。
允许算法赋值,如:A=ASSIGN/PI*(R**2)。
允许逻辑赋值,如:XX=ASSIGN/(DIAM.GT.1.25)。
包括进来数字、字符和系统内部函数,如:COS、CONCAT,TIME。
规定了选择性处理。
允许嵌套的多个IF。
允许无条件的多个JUMPTO。
包括进来估值转移,如:SELECT...CASE...ENDCAS...ENDSEL
包括进来DO循环。
包括进来外部调用,如:CALL/EXTER。
允许模块化程序设计。
允许包含现存语句,如:INCLUDE。
展的输入/输出,如:DEVICE、OPEN、CLOSE、READ和WRITE。
转移和条件
DMIS词汇允许在检验程序中根据测量值、获得值、变量、算术表达式和逻辑表达式的结果进行条件转移。用IF...ELSE...ENDIF逻辑块、DO...ENDDO块和SELECT...CASE...ENDCAS... ENDSEL块转移语句来完成条件转移。无条件转移是由JUMPTO或CALL.语句完成的。
IF条件转移
IF..ELSE...ENDIF块语句提供了根据一个逻辑表达式转移程序控制的能力。一个典型的 IF...ELSE...ENDIF块将由下列语句构成:
IF/(逻辑表达式) 可执行语句 ELSE 可执行语句 ENDIF
SELECT条件转移
SELECT..CASE...ENDCAS...ENDSEL语句块提供了根据一个或多个布尔测试的结果执行 语句的能力。
SELECT/arg CASE/arg—l 可执行语句 ENDCAS CASE/arg一2 CASE/arg_3 可执行语句 ENDCAS DEFCAS 呵执行语句 ENDCAS ENDSEL
DO循环
DO..ENDDO语句块提供了重复执行一个可执行语句序列的能力。循环是根据一个初始值和极限值还有给定的增量值进行。一个典型的DO...ENDDO块将由下列语句构成:
DO/index,initial,limit,increment(索引,初值,极限值,增量) i执行语句 ENDDO
非条件的JUMPTO
在DMlS中,JUMPTO语句用于非条件转移程序的执行到多个语句,这些浯句跟随在指明~个程序行的卷标后,这个程序行只包含一个没有卷标类型的用圆括号包围的卷标名。一个典型的JUMPTO语句将由下列语句构成:
JUMPTO/(jtlmptargetl) (Jumptarget2) 可执行语句 (jumptargetl) 可执行语句
宏
宏声明
DMIS提供定义宏程序来执行重复性的功能,而不必重新编写全部语句。宏由在MACRO...ENDMAC之间的语句做出声明和定义。
每个宏都是用一个CALL语句调用。DMlS宏可以在一个程 序单元的内部定义,或在一个模块化程序单元的外部定义
外部宏必须用CALL/EXTERN语句调用。 宏拥有一个逗号分割的变量名参数表,当宏被调用时这个表接收参数值。
宏结构
宏的结构和操作用一个简单的例子可以做最好的描述。在图2中,描述了一个在平版的孔的图样。希望通过使用宏程序来测量这4个圆。宏将被称为HOLPAT,各个圆将通过进行4个点的测量而被测量。
一个执行这螳测量的宏程序如下:
M(HOLPAT)=MACRO/X1,Y1,Diam1,'LABEL_1’ DECL/LOCAL,INTGR,I DECL/LOCAL,REAL,Iv,Jv,Rad1,Theta F(LABEL_I)=FEAT/CIRCLE,INNER,CART,X1,Y1,0,0,0,1,Diam1 Rad1=ASSIGN/0 5*Diam1 GOTO/XI,YI,5 GOTO/XI,Y1,0 MEAS/CIRCLE,F(LABEL_1),4 DO/I,0,3 Theta=ASS IGN/I*90 Iv=ASSIGN/COS(DTOR(Theta)) Jv=ASSIGN/SIN(DTOR(Theta)) PTMRAS/CART,(Rad1*Iv)+X1,(Radl*Jv)+Y1,0,一Iv,Jv,0 ENDDO ENDMES GOTO/X1,YI.0 GOTO/X1,Y1,5 OUTPUT/F(LABEL 1) ENDMAC
数学
赋值运算符
在任何DMIS语句中,一个数学或逻辑表达式可以替代适当数据类型的任何参数(即数值,卷标)。
数学赋值运算符
数学赋值运算符提供用数学运算符来给变量赋值的能力。
+加
一减或负
*乘
/除
**乘方
示例: Y=ASSIGN/B+C Area=ASSIGN/A*B/Z 0 Y=ASSIGN/(((B-C)*E)**A)十D
关系运算符
逻辑赋值语句使用下列关系算符:
等于
.EQ.
不等于
.NE.
小于
.LT.
小于或等于
.LE.
大于
.GT
大于或等于
.GE.
对于向量,只允许使用比较运算符.EQ.和.NE.
逻辑运算符
逻辑赋值运算符提供了用逻辑关系运算符来给变量赋值的能力。
逻辑赋值语句使用下列逻辑箅符:
.AND .AND.运算符将输出.TRUE.,如果它的两个运算对象都是.TRUE.;
.OR. OR.运算符将输出.TRUE.,如果它的任何一个运算对象是.TRUE;
.NOT 如果它的运算对象是.FALSE.,.NOT.运算符将输出.TRUE.。同样,如果它的运算对象是.TRUE.,它将输出.FALSE.。
使用逻辑赋值语句的例子如下: DECL/GLOBLE,BOOL,OutTol.Y.quit DECL,/GLOBLE,INTGR.P,Q DECL/GLOBLE,REAL,CirDia 可执行语句 0utTol=ASSIGN/(CirDir GT 0.02) quit=ASSIGN/FALSE Y=ASSIGN/.NOT(P LT Q) IF/(P LT Q) 可执行语句 ENDFIL
字符赋值运算符
字符赋值运算符用于把字符串或子串给一个变量赋值。
字符赋值语句能够使用下列字符函数:
CONCAT(xl,x2….)
SUBSTR(x1,x2,x3)
DECL/GLOBAL,CHAR,40,Header DECL/GLOBAL,CHAR,16,InspNm DECL/GLOBAL,CHAR,12,LastNm,Opr—ID Header=ASSIGN/’BROWN TYLER 50024 RING—B 010988 001 10:24:00’ Opr ID=AssIGN/sUBSTR(Header,13,17) LastNm=ASSIGN/SUHSTR(Header,1,5) InspNm=ASSIGN/CONCAT(’Mr ‘,SUBSTR(Header,7,7),’ ’,LastNm) WRITE/DID(Qual—ip),InspNm, ’’ 产生 ------- Mr T BROWN
优先规则
DMIS表达式使用代数优先规则,它包括嵌套圆括号。优先规则在表6中给出。
特征
特征是几何要素,这些要素可能在或者不在工件或零件t。例如,一个不在零件上的特征是在空问的一个点。如果特征是在零件上,它可以通过两种途径被引用:作为特征标称值或特征实值。特征标称值必须在程序中定义。特征实值或者是被测量的或者是DME在程序执行过程中构建的。当一个特征是构建的,用于构建的特征中至少有一个特征必须是测量到的或构建的特征。构建的结果是一个特征实值,FA(1able)。
特征定义
DMIS支持一个特征定义的集合,它们是简单的几何要素。此外,其他类型的特征定义可以被用来定义复形的二维曲线和复形的三维曲面。
支持的特征
弧(Arc)
通过FEAT/ARC(input format 1)和FEAT/ARC(input format 2)语句;
圆(Circle)
通过FEAT/CIRCLE语句;
圆锥(Cone)
通过FEAT/CONE语句;
闭合平行线(Closed parallel line(cparln))
通过FEAT/CPARLN语句;
圆柱(Cylinder)
通过FEAT/CYLNDR语句;
边缘点(Edge point)
通过FEAT/EDGEPT语句;
椭圆(Ellipse)
通过FEAT/ELLIPS语句;
一般曲线(Generic curve(gcurve)
通过FEAT/GCURVE语句;
一般特征(Generic feature)
通过FEAT/GEOM语句;
一般曲面(Generic surface(gsurI)
通过FEAT/GSURF语句;
线(Line)
通过FEAT/LINE语句;
目标(Object)
通过FEAT/OBJECT语句;
平行平面(Parallel plane(parpln)
通过FEAT/PARPLN语句;
式样(Pattern
通过FEAT/PATTERN语句;
平面(Plane)
通过FEAT/PLANE语句;
点(Point
通过FEAT/POINT语句;
矩形(Rectan91e(right rectangular prism))
通过FEAT/RCTNGL语句
球(Sphere
通过FEAT/SPHERE语句;
环(Torus)
通过FEAT/TORUS语句。
复形特征
两种特征类型(FEAT/GCURVE和FEAT/GSURF)被提供用于定义复形曲线和曲面
之所以要求这两种特征,是为了支持那些否则在词汇中是不被支持的特征。它们还被用来数字化不明几何结构的零件。标称定义为FEAT/GCURVE和FEAT/GSURF语句简单地指定一个卷标给被涣0量特征上的一组点。因为特征没有定义,这些在测量特征时获得的点的数据被作为实值输出
F(SURF_1)=FEAT/GSURF
当探头校正关闭时(用PROCOMP/OFF语句设置),相应的特征实值将如下: FA(SURF一1)=FEAT/GSURF,RAWDAT /x,y,Z /x,y,Z / / ENDAT X,Y,z数据代表原始数据,即探头的中心。
FA(SURF一1)=FEAT/GSURF /x,y,Z /x,y,Z /... ERDAT
x,Y,z数据代表曲面上的点。一些DME可能还支持从PTMEAS语句输出引入的i,j,k向量。在 这种情况下,这些向量是各自特征的标称值,这些特征是通过FEAT/GCURVE,或FEAT/GSURF语 句定义的。
可简化特征
特征引用
特征标称值
特征标称值是特征的定义,它来源于CAD模型或零件图样。
在检验程序中的特征标称值被传递给DME,给出特征标称的尺寸、位置和方位。在特征标称定义时,一个卷标名被赋与给特征。卷标名被圆括号包围并以卷标类型…F’做前导,这里…F’指出这是特征标称值定义。
为CIRCLE_1的圆的特征标称值定义应为如下的:
F(CIRCLE_1)=FEAT/CIRCLE,INNER.CART,10,10,5,0,0,1,8
特征实值
特征实值“FA”的是通过测量或者是特征构建.或者是定义FA()产生的
FA(CIRCLE—1)=FEAT/CIRCLE.INNER,CART,9 .89,9. 93,5,0.0,1,7. 97
这里,我们看到实值中心位置偏离标称值定义在x方向0.11,和在Y方向0.07,和实值直经偏离0.03。
实际值依赖于特性数据拟合算法
在MEAS或RMEAS特征语句或CONST特征语句之前,被模态GEOALG语句激活,则按照特性的你和算法进行
GEOALG/CIRCLE.MAXINS MEAS/CIRCLE.F(CIRCLE—1),7
作为结果,特征C1RCLE一1将被测量7个样本,并按最大内接圆算法定义的圆的算法进行拟合。
被测量的特征
DME采集点的数据并使用这些数据构建特征。
例如,一个圆的测量可能通过测量到的5个点来计算最佳拟合圆。这些点本身不是特征,它们仅被用来计算圆。当数据以这种方式使用时,圆被作为一个被测量的特征引用。
被构建的特征
DMIS词汇提供了使用其他特征构建特征的能力
当指示DME从其他特征构建一个特征时,至少 有一个被用来构建的特征必须是FA()类型的特征。
例如.当在圆上分布的一些孔是螺栓孔式样时,特 征的构建可以通过测量这些螺栓孔然后通过这些孔的中心计算最佳拟合圆。在这种情况下,圆被称为 一个构建的特征。一个被构建的特征和一个被测量的特征不同在于:构建的特征是从其他特征计算出 来的,然而测量的特征是从测量点数据计算出来的。在特征实值定义被计算出后,点数据通常被抛弃。
在螺栓孔图样的例子中,可以指示DME通过所有被测量}L的中心来计算圆,或者通过一个被测量 }L的中心和其他孔的标称值来计算圆。然而,指示DME仅通过这些}L的标称值来计算圆是非法的。 在这种情况下,圆的定义不需要任何测量结果就口T以计算出来,因而没有DME也可以完成。因为构建 必须至少使用一个特征实值,或者一个先前构建的特征,或者一个已定义的FA(),构建的结果就是一 个特征实值。
特征数据访问
如果通过PTBUFF/ON语句启用点缓冲功能一个特征已经被测量,那么这个特征划应的单个点的 标称值和测量的数据可被下列语法引用:
F(Lable)[n]
FA(Lable)[n]
F(Lable)[n,m]
FA(Lable)[n,m]
n是特征的单个点数据开始点的索引,m是特征的单个点数据结尾点的索引(如果多于一个点被引用时)
注意,如果在测量时测量程序处于自动模式,单个点数据将住I)ME生成的标称点和它们随后实际测最值之问一一对应。如果处于程序模式或手动模式,单个点的标称数据将对应于程序的各PTMEAS语句和其后产生的实际测量值。
例如:
一个圆C1R]的第2个PTMEAS语句测量的点数据将被编址为FA(CIR)[2]或FA(C1RI) [2,2],一个平面PLl的第2个、第3个和第4个PTMEAS语句的标称点数据将被编址为F(PI,1)[2,4]。如果后面的例子所引用的PTMEAS点被用于一个OUTPUT语句,这时探头校正是启用的(由PRCOMP/ON语句设置),则将导致以3个分开的行输出。
F(PLI)[2]=FEAT/PLANE,PTDATA,CART,x2,y2,z2,i2,j2,k2 F(PLI)[3]=FEAT/PLANE,PTDATA,CART,x3,y3,z3,i3,J3,k3 F(PLI)L4J=FEAT/PLANE,PTDATA,CART,x4,y4,z4,i4,j4,k4
限界
限界既可以应用到特征又可以应用到公差,来建立有界的特征和公差。
限界定义用于给特征和公差定义限界。无界的特征和公差被平面限界。一些公差,像三维位置和全径向跳动,要求特征是限界的。一个投影的公差带是限界公差的例子。
特征
平面和圆锥是被定义限界的。线和圆柱根据它们的定义应为限界的或者是非限界的。使用BOUND语句非限界的特征可能用平面限界。平面或者可能在零件上存在(在这种情况它们应为实值或标称值),或者可能仅在空间存在(在这种情况它们只能是标称值)。
公差
使用BOUND语句公差也应为限界的。例如,这可能使用在为正交性需要定义一个投影的公差带时。公差限界可能为其他原因被使用,如限界的轮廓公差。限界的公差在程序持续期间保持被限界。
用法
限界信息可能被DME、接收结果的系统,或者两者使用。如果一个CAD系统将接收DME的输出文件,例如,构建一个被测量零件的模型要求特征限界信息。如果DME不使用限界信息,限界信息将被传递给输出文件不做改变或解释。如果DME使用限界信息,当特征数据输出时,实值限界(作为被测量的平面)将被传递给输出文件。
限界举例
一个限界的特征和公差的例子在图4中给出。这是一个平板,有一个孔穿过它。孔适用一个正交性公差,即0.25的投影公差带。在DMIS词汇中孔用一个圆柱表达。于是这个圆柱被平面1(PLANE_1)和平面2(PLANE一2)限界。正交性公差被平面2(PLANE一2)和平面3(PLANE一3)限界,这里平面3(PLANE一3)是在平板表面上方0.25处。注意这些限界平面的方向向量是从零件的表面指向离去的方向。描述这个条件的语句可能读出如下:
MODE/AUTO T(PERP—TOL)=TOL/PERP,005,RFS,DAT(A),RFS F(PLANE一1)=FEAT/PLANE,CANT,5,5,0,0,0,一1 F(PLANE一2)=FEAT/PLANE,CANT,5,5,5,0,0,1 F(PLANE一3)=FEAT/PLANE,CART,5,5,5.25,0,0,l MEAS/PLANE,F(PLANE一1),3 ENDMES MEAS/PLANE,F(PLANE_2),3 ENDMES CONST/PLANE,F(PLANE_3),OFFSE T,FA(PLANE一2) BOUND/F(CYL_1),F(PLANE_1),F(PLANE_2) BOUND/T(PERP TOL),F(PLANE一2),F(PLANE 3)
在例中,PLANE-1和PLANE一2存在于零件上,然而PLANE一3不在零件上。如果DME在计算 实值特征和公差时使用限界信息,它将为平面输出实值并指出这些实值是作为BOUND语句中的实值 送到输出文件。实值限界平面定义也通过执行BOUND语句被送到输出文件,如果限界这样被使用: BOUNI)/FA(CYL_I),FA(PLANE—1),FA(PLANE一2) FA(PLANE 1)=FEAT/PLANE,CART,5,5,0,0,0, l FA(PLANE一2)=FEAT/PLANE,CART,5,5,5,0,0,l BOUND/TA(PERP—TOL).FA(PLANE 2),FA(PLANE一3) FA(PLANE_2)=FEAT/PLANE,CART,5,5,5,0,0,l FA(PIINE_3)=FEAT/PLANE,CART,5,5,5 25,0,0,1
限界特征
BOUND语句必须出现在被限界的特征测量之前。当限界一个特征时,限界平面方向向量(就是平面的法线)指向被剪裁掉的方向。因而限界平面按照优先次序,通过当前的BOUND语句和任何后续的BOUND语句被使用。见图5。
F(ConeSeg)=FEAT/CONE,INNER,CART,0,0,2,0,0, 1,30 F(Top)=FEAT/PLANE,CART,0,0,1,0,0,l F(Bottom)=FEAT/PLANE,CART,0,0,0,0,0, 1 F(AnglePlane)=FEAT/pLANE,CART,1,0,0,0 949,0.0,0 316 BOUND/F(ConeSeg),F(Top)-F(Bottom),F(AnglePlane)
限界公差
当一个公差被限界,对于该公差适用的特征来说,BOUND语句必须出现在EVAL或OUTPUT语句之前。当限界一个公著时,限界平面的方向向量(就是平面的法线)指向公差带被包括在内的方向。见图6。
公差
公差定义
支持的公差
公差定义是用来描述一般的公差。公差定义还提供被赋予各个公差的卷标名。这些卷标名与EVAL和OUTPUT语句一起使用来关联公差和特征。
DMIS按照ASME Y1 4.5M 1 994中的支持公差。
两个特征之间的夹角(直接);
角(直接);
倾角(方位);
径向跳动(跳动);
圆度(形状);
复合位置(位置);
复合轮廓(轮廓);
同心度(位置);
圆柱度(形状);
直径(直接);
两特征之间距离(直接);
平直度(形状);
平行度(方位)
正交度(方位);
位置(位置);
线的轮廓(轮廓);
点的轮廓(轮廓);
表面的轮廓(轮廓);
半径(直接);
准直度(形状);
对称性(位置);
径向跳动(跳动);
宽度(直接)。
此外,通过TOL/USETOI。语句,公差已经包括了支持传统的惯例,包括双向位置(非AMSE位置)和用户定义的公差。
引用公差
标称公差
标称公差是那些标注在CAD模型或零件图样上 找到的和所谓“设计的”公差差。它们在检验程序中传递给DME
实际公差
实际公差是从被测量的或被构建的特 征计算出的被评估的公差。公差的实值是由OUTPUT或EVAL语句生成的。例
公差标注特征
特征和公差之间的关系是通过使用OUTPUT和EVAL语句来管理的。
举例
面例子列举了把一个特征CIRCI。E 1与一个直径公差DIAM_l和 一个位置公差POS一1联系在一起的一个语句序列:
F(CIRCLE一1)=FEAT/CIRCLE,INNER,CART,i0,10,5,0,0,1,.250 T(DIAM—1)=TOL/DIAM,一.001,.0005 T(POS—1)=TOL/POS,2D,005,MMC MODE/AUTO,RROG,MAN MEAS/CIRCLE,F(CIRCLE I),4 ENDMES OUTPUT/FA(CIRCLE~1),TA(DIAM一1),TA(POS—1)
这样,同样的公差卷标可以被用于几个不同的特征,从而最少化了在程序中要求公差语句的数量。 然而,注意被限界的公差在程序持续期内保持被限界。进
尺寸特征的材料条件修正值
考虑到应用于一个尺寸特征(如圆柱面或平行平面)的位置公差的材料条件修正值,那么一个尺寸公差(例如直径或宽度l必须事先和尺寸特征相关联。
F(cyl)=FEAT/CYLNDR… MEAS/CYLNDR,F(cyl),17 ENDMES T(diam)=TOL/DIAM,一.010.010 T(pos—m)=TOL/POS,3D,.014,MMC,DAT(K),DAT(C),DAT(P
为FA(cyl)考虑MMC材料条件修正值,那么在位置公差通过下面三种方式之一与其关联之前,尺 寸公差必须与FA(cyl)相关联:
EVAL/FA(cyl),T(diam) OUTPUT,/FA(cyl),TA(pos—m) 或者: 0UTPUT/FA(cyl),TA(diem) OUTPUT,/FA(cyl)’TA(pos—m) 或者: OUTPUT,/FA(cyl),TA(diam),TA(pos—m
基准
DATDEF语句提供了指派基准卷标的方法,即DAT(x)给一个先前已经被测量的特征。然后这个基准卷标可以和DATSET语句一起用来定义零件的坐标体系。基准卷标还和LOCATE、TRANS、ROTATE和TOL语句一起使用。复合基准卷标,即DAT(x—x)是特征构建的结果,能够在适当地方,在任何语句格式中用来替代DAT(x)。
坐标体系
坐标体系手系的定义
DMIS对于坐标体系只使用右手系规则。一个右手系坐标体系是这样的:z正方向的向量乘以x正方向的向量的向量积将得到Y正方向的向量。手系还用右手定义:这里食指指向x正向,大拇指指向z正向,和中指指向Y正向。
旋转手系的定义
DMIS对于角度关系只使用右手系规则约定。在右手系坐标体系内一个正向右手系角度旋转是: ——在x—Y平面从x正向到Y正向,这里0度是沿着x轴正向的。 ——在y z平面从y正向到z正向,这里0度是沿着Y轴正向的。 ——在z x平面从z正向到x正向,这里0度是沿着z轴正向的。 围绕一个轴的右手旋转定义为:用右手大拇指指向沿该轴的正方向,其他手指指向旋转的正方向。 在右手系坐标体系中所有的旋转都表达为右手系旋转。 图9描述了右手系(正向)旋转
坐标体系转换
所有转换都将映射一个坐标体系从右手系坐标体系到右手系坐标体系。所有转换都必须是标准正交的。
构建
因为零件特征定义和公差都是参照基准进行的,所以在特征被测量前零件的坐标体系必须被建立起来反映这些基准。同样,因为DME拥有自己的坐标体系,即一个三个互相正交的运动轴线系统通称为机器坐标体系,零件的坐标体系必须在机器坐标体系范围内建立。 完整的零件坐标体系由三个互相正交的平面构成,它们两两相交部分代表轴,它们共同的交点描述了原点。DME通过测量基准特征或基准,并指定它们做为零件坐标体系所要求的要素,建立起零件坐标体系。
通过DATSET、LOCATE、ROTATE和TRANS语句建立的零件坐标体系可以用SAVE语句保存,并用RECALL语句为晚些时候使用再次调用。它们还可以被旋转或平移来建立新的坐标体系。建立一个坐标体系时下列规则适用:
初始的基准是被指定的第一个基准。
二级的基准总是垂直于初始的基准。DME将强迫垂直性。
三级的基准总是垂直于初始的和二级的基准。这里同样DME将强迫垂直性。
三级步骤
DATSET语句为零件坐标体系定义提供方位、定位和原点(参看DATSET语句)
TRANS语句也可以定义零件坐标体系的原点,或者平移它建立新的坐标系
ROTATE语句也可以定义零件坐标体系的定位,或者旋转它建立新的坐标体系
三者一起或按任何组合,通过三级步骤DATSET、ROTATE和TRRANS语句可能被组合起来建立零件坐标体系:
方位初始轴的方向;
定位第二级轴的方向;
建立起原点。
方位
创建一个零件坐标体系的第一步是建立初始轴的方向。例如,这个方向应为垂直于基准平面的。
一旦确定后,这个轴变成建立零件坐标体系方位的初始轴。例如,这个轴应为z轴:
D(mCSX)=DATSET/MCS F(plane一1)=FEAT/PLANE,CART,0,0,0,0,0,l MEAS/PLANE,F(plane一1),3 PTMEAS/CART。0 5.1,0.0,0,1 PTMEAS/CART,0 5,i0,0,0,0,1 PTMEAS/CART,10,5,0,0,0,1 ENDMES DATDEF/FA(plane 1),DAT(A) D(orient~1)=DATSET/DAT(A),ZDIR,ZORIGD(mCSX)=DATSET/MCS
定位
创建一个零件坐标体系的第二步是为定位第二级轴建立零件上第二个参照基准的方向。这必须最少用两个点来建立,这应为x、Y或z轴,只要它不与初始轴冲突即可(必须与初始轴正交)。这通常是x或Y轴。
示例: D【orient—1)=DATSET/DAT(A),ZDIR,ZORIG $$ 测量两个圆,构建一条直线通过 $$ 他们的圆心并且直线向量对准Y轴。 $$ 这种情况将被ROTATE和 $$DATSET语句建立定位, $$ 来说明他们的应用。 F(Circlel J=FEAT/CIRCLE,INNER,CART,o,0,0.0,0,I,10 MEAS/CZRCLE,F(Circle_1),4 PTMEAS/CART.一5 0.0 0.0,l,0,0 PTMEAS/CART,5 0.0 0’u,_0 1,0,0 P皿qEAS/CART,0 0.一5 0,0.0,l,0 PTMEAS/CART.0 0,5 0,0,0, 1,0 ENDMES F(circle2)=FEAT/CIRCLE,INNER,CANT,0,20.0,0,0,1,10 MEAS/CIRCLE,F(circle2).4 PTMEAS/CART,一5 o,20 0,0.1.0,0 pTSEAS/CANT,5 0,20 0¨0 1,0,0 PTMEAS/CART,0 0.25 0,0¨0 1.0 PTMEAS/CART,0 0.15 0.0,0.1.0 ENDMES F(line 1)=FEAT/LINE.CART,UNBND,0,0。0,0,1.0,0,0,l CONST/LINE,FUine一1),BF.FA(circle一1 J.FA(Circle 2) DATDEF/FA(line 1),DAT(B) D(align 1)=ROTATE/ZAXIS.DAT(B).YDIR
原点
创建一个零件坐标体系的第三步是确定零起点或原点。这最后一步是通过TRANS语句完成的。
示例: $$ 没置x和Y轴原点到 $$ FA(circle 1)的圆心和z轴原点 $$ 在FA(plane—1)平面上。 DATDEF/FA(circle 1),DAT(C) D(RHF—SYS一1)=TRKRS/XORIG,DAT(C>,YORIG,OAT(C),ZORIG,DAT(A) $$ 保存零件坐标体系 $$ 为以后再次使用。 SAVE/DA(RELSYS 1)
单级步骤
对前述步骤的一个替代方案是使用一个DATSET语句建立起零件坐标体系。然而,重要的是要注意当使用下列过程时,DATSET语句必须保持完整无缺。使用第三级部分DATSET语句是选择性的,是完全依赖于特定应用的。
示例: D(1llCS—dat)=DATSET/MCS “planej)=FEAT/PLANE,CART,0,0,0,0,0,1 MEAS/PLANE,F(plane I),4 pTMEAS/CART.一5 0,20 0,0,0,0,I PTMEAS/CART,5 0.20 0,0,0,0,1 PTMEAS,/CART.0 0,25 0,0,0,0,l PTMEAS/CART,0 0.15 0,0,O,0,1 ENDMES DATDEF/RE(plane一1),DAT(A) F(circle_1)=FEAT,/CIRCLE,INNER,CART,0,0,0,0,0,1,10 MEAS/CIRCLE,F(circle 1).4 pTMFAS/CART,一5 0.0 0,0,1,0,0 pTMEAS/CART,5 0,0 0”0 l,0,0 PTMEAS/'CART,0 0. 5 0,0,0,1.0 PTMEAS/CART.0 0,5 0。0'u-_0 1,0 ENDME$ DATDEF/FA(circle i),DAT(c) F(circle 2)=FEAT/CIRCLE,INNER,CART,O,20,0,O,O,1,10 MEAS/CIRCLE,F(clrcle_2),4 pTMEAS/CART,一5 0,20 0,0,1,0,0 PTMEAS/CART,5 0.20 0—0 1.0,0 PTMEAS/CART,0 0,25 0,0¨0 l,0 PTMEAS/CART,0 0,15 0,0,l,0 ENDMES F(1ine 1)=FEAT/LINE,CART,UNHND,0,0,0,0,l,0,0,0,1 COHST/LINE,F(1ine_1).BF,FA(circle i),FA(circle 2) DATDEF/FA(1ine 1),DAT(B) D(ref—sys一1)=DATSET/DAT(A).ZDIR,ZORIG,DAT(B),XDIR,YORIG,DAT(C),XORIG
在一些场合,建立零件坐标体系时,可能发现控制探头半径补偿是有利的。~个通常的步骤是在零件定位序列之前,使用PRCOMP/70N语句。如果你希望得到更多的控制,可能使用PROCOMP/OFF语句和在TRANS语句中使用PRBRAD次字来控制所希望的坐标体系位置。让我们审阅一种可能情况的两种解决方案。
解决方案1 MODE/MAN PRCOMP/0FF WKPLAN/XYPLAN $$建立基准Datum A F(planeA)=FEAT/PLANE,CART,0,0,0,0,O,l NEAS/PLANE,F(plane A),3 PⅡ皿As/cA田,一5 0,20 0,0,0,0,l PTNEAS/CART,5 0,20 0,0,0,0,i P_n他As/CA阳,0 0,25 0,0,0,0,1 ENDMES DATDEF/FA(plane_A).DAT(A) D(tran_Z)=TRANS/ZORIG.DAT(A) $$建立基准Datum日 F(1ineB)=FEAT/LINE,UNBND,CART,0,0,0,l,0,0,0,一1,0 MEAS/LINE,F(1ineB),2 PTMEAS/CART,0 20,0 0,0,0,一1,0 PTMEAS/CART,15 0,0 0,0,0,一1,0 ENDNES DATDKF/FA(1ineg).DAT(B) D(rotate_X)=EOTATE/ZAXIS,DAT(B).xDIR $$建立基准Datum C F(point—c)=FEAT/POINT,CART,0,0,0,一1,0,0 MEAS/POINT,F(poin亡-c),l PTMEAs/cART,0 0,0 0,0,1,0,0 ENDMES DATDEF/FA(point c),DAT(O D(tran xy)=TRANS/XORIG,DAT(C),YORIG,DAT(B) $$ 移动零件坐标体系到零件表面。 D(Set)=TRA_NS/XORIG,PRBRAD,YORIG,pRBRAD,ZORIG,PRBRAD
解决方案2 MODE/MAN PRCOMP/ON WKPLAN/XYPLAN $$建立基准Datum A F(planeA)=FEAT/PLANE,CANT,0,0,0,0.0.1 MEAS/PLANE,F(planeA).3 PTMEAS/CART,一5 0,20 0,0,0,0,1 PTMEAS/CANT,5 0,20 0,0,0,0,1 PTMEAS/CANT,0 0,25 0,0,0,0,1 ENDMES DATDEF/FA(planeA).DAT(A) $$建立基准Datum B F(1ine—B)=FEAT/LINE,UNBND,CART,0,0,0,l,0,0,0,一1,0 MEAS/LINE.F(1ine B),2 P1MEAS/CART.0 20.0 0,0…0 l,0 PTMEAS/CART,15 0.0 0,0—0 l,0 ENDME S DATDEF/FA(1ine B),DAT(B) $$建立基准Datum C Hpoint—O=FEAT/POINT,CART,O,0,O. 1.O,O MEAS/POINT,F(pointC),l pTMEAS/CART,0 0.0 0¨0 1.0,0 ENDMES DATDEF/FA(point—C).DAT(c) $$ 建立零件坐标体系 D(origin)=DATSET/DAT(A),ZDIR,ZORlG.DAT(B),XDIR,YORIG.DAT(C),XORIG
复杂坐标系体系构建
当在测量用来建立基准的特征和基准本身不存在正交关系时,构建零件坐标体系的过程变得更加复杂。一个复杂定位,对于至少一个基准,目标测量位置将处于弯曲的或者是有角的表面。这意味坐标体系的正交平面不能独立地确定。例如。初始基准的位置对准一个瞌面,因而连同初始基准方向,都不能精确地确定,直到一个完备的坐标体系已经建立起来。
为了尺寸检验的目的,复杂零件坐标体系经常通过利用物理固定装置来建立。这些固定装置把零件定位于相对于固定装置的坐标体系,这个坐标体系是和平板表面、孔或凸台、模具球或者这些的组合一起定义的。这些简单的特征允许使用DATSET、ROTATE和TRANS语句构建简单的坐标体系。
使用一系列的网垫、模具球、正切棒,固定的或装有弹簧的圆环、菱形销钉等多种方式,零件被定位到固定装置。这些固定装置零件的作用是排除所有运动自由度。通过以类似于固定装置的方式排除这些自由度,DME软件能够构建一个完备的坐标体系,允许物理固定装置被消除。
迭代坐标系构建
构建复杂的坐标体系方法之一是测量基准目标,利用测量得到的数据,使用DATSET、ROTATE和TRANS语句建立一个简单的坐标体系。使用这个新构建的坐标体系,基准目标被重新测量,一个更精确的坐标体系被构建。这个过程不断重复直到获得所要求的收敛,就是说在后继的迭代中坐标体系的变化小于一个指定的量。
在一个迭代坐标体系构建中ITERAT语句用来控制收敛测试和程序转移。在ITERAT语句参数表中指定两个程序语句卷标。
第一个卷标是为了进行下一次迭代程序执行转移到的程序位置,以便重 复基准目标的测量和简单坐标体系的构建
第二个卷标是如果在指定次数的测量迭代内,指定的收敛没有得到的情况下,程序执行转移到的程序位置。一旦收敛达到了,程序执行转移到ITERAT语句后面接着的语句。
举例
一个零件的零件坐标体系的迭代构建,这个例子中初始基准的三个目标点是处 于一个曲面上
MODE/MAN DECL/GLOHAL,DOUBLE,dConverg F(LOCATOR_1)=FEAT/POINT,CART,4235 0,856 0854,1145 0,0 0024,0 9999,一0 0114 F(LOCATOR一2)=FEAT/POINT,CART,4147 0,848 6901,1187 0,0 0,l 0,0 0 F(LOCATOR_3)=FEAT/POINT,CART.4292 0,858 1987,1340 0,一0.0022,0 9999,0 0115 F(DAT—A)=FEAT/PLANE,CART,4235 0,856 0854,1145,0,0 0,1 0,0 0 F(SLOT—B)=FEAT/CPARLN,INNER,ROUND,CART,4160 0,860 6941,1156 0$ ,0 0,l 0,0 0,0 0,0 0.1 0,16 0,13 0 F(C2R c)=FEAT/CIRcLE,INNER,CART,4265 0049,863 6899,130.0.0 0.1 0,0 0,13 0F(DAT_B)=FEAT/LINE,UNBND,CART,4265 0049,863 6899,130 0,0 0,0 0,1 0,0.0,l 0,0 0 当$ (STARTING—POINT) $$ MEAS/POINT,F(LOCATOR_I),l ENDMES MEAS/POINT,F(LOCATOR 2).1 ENDMES MEAS/POINT,F(LOCATOR_3),1 ENDMES MEAS/CIRCLE,F(CIR c),4 ENDMES MEAS/CPARLN,F(SLOT_B).5 ENDMES CONST/PLANE,F(DAT_A),OFFSET,FA(LOCATOR一1),FA(LOCATOE一2),FA(LOCATOR_3) DATDEF/FA(DAT—A),DAT(A) CONST/LINE,F(DAT_B),OFFSET,FA(CIR c),FA(SLOT_B) DATDEF/FA(DAT_B),DAT(B) DATDEF/FA(CIR—c),DAT(C) D(orien_1)=DATSET/DAT(A),YDIR,YORIG D(orien_2)=ROTATE/YAXIS,DAT(B),ZDIR D(orien_3)=TRANS/XORIG,DAT(O,ZORIG,DAT(C) D(orien_4)=ROTATE/XAXIS.1 97 D(REF—SYS一1)=TRANS/XORIG,一4263 234,YORIG,863 23,ZORIG,130 0 SAVE/DA(REF_SYS一1) MODE/AUT0,MAN dConverg=ITERAT/(STARTING_POINT),(FAILED),0 05,ABSL,5,YAXIS,FA(LOCATOR_I),$ FA(LOCATOR一2),FA(LOCATOR一3),)(AXIS,FA(CIR-C),FA(SLOT B),ZAXIS,FA(CIE—c) 可执行语句 JUMPTO/(EOP) $$ (FAILED) TEXT/OPER,’Convergence failed!’(收敛失败!) (EOP) ENDFIL
基准目标特征标称值在所要求的最终零件坐标体系中被定义。基准目标特征首先被手动测量。基 准特征被构建。一个完备的零件坐标体系是从基准特征使用三级步骤DATSET、ROTATE和 TRANS语句的方法构建的。然后坐标体系方位和原点被移动以匹配基准目标特征标称值在其中定义 的坐标体系。然后ITERAT语句用来测试收敛性。其后基准目标特征以自动方式重新测量,基准特征 构建和坐标体系构建过程被重复,直到获得0.05的收敛值,在这时构成程序主体部分的可执行语句被 执行。如果5次迭代极限被超过,程序转移导致“迭代失败!”信息被送给操作人员。
匹配特征实值和特征标称值
DATSET、ROTATE和TRANS语句被用于构建坐标体系,建利用在原点测量的基准特征和被测量的指向x、Y或z轴方向的基准特征轴。经常基准目标特征标称值并不接近原点或平行一个主轴。这样建立所希望的坐标体系就需要接下来进行按照标称量的旋转和平移。
LOCATE语句允许通过匹配被测量的特征实值和定义的特征标称值来构建一个完备的坐标体系。这样创建的坐标体系就和基准目标特征标称值在其中定义的坐标体系相匹配。使用LOCATE语句消除了使用DATSET、ROTATE和TRANS语句的必要性。
因为LOCATE语句拥有特征位置、方向和类型的可用信息,它经常能够更好地估算最终的收敛的坐标体系,导致比DATSET、ROTATE和TRANS语句方法明显较少的测量迭代。
MODE/MAN DECL/GLOBAL,DOUBLE,dConverg F(LOCATOR 1)=FEAT/POINT,CART,4235 0,856 0854,1145 0,0.0024,0 9999,一0.0114 F(LOCATOR一2)=FEAT/POINT,CART,4147.0,848 6901,1187 0,0 0,1.0,0 0 F(LOCATOR一3)=FEAT/POINT,CART,4292 0,858.1987,1340.0,一0 0022,0.9999,0 0115 F(SLOT_B)=FEAT/CPARLN,INNER,ROUND,CART,4160.0,860 6941,1156 O$ ,0 0,1.O,0 0,0 0,0.0,1.0,16.0,13 0 F(CIR—c)=FEAT/CIRCLE,INNER,CART,4265.049,863.6899,130.0,0 0,1.0,0 0,13 0 $$ (STARTING POINT) $$ MEAS/POINT.F(LOCATOR_I),1 ENBMES MEAS/POINT,F(LOCATOR_2),1 ENDMES MEAS/POINT,F(LOCATOR_3),1 ENDMES MEAS/CIRCLE,F(CIR—c),4 ENDMES MEAS/CPARLN,F(SLOT—B),5 ENDMES D(REF—SYS—1)=LOCATE/XYZDIR,XYZAXI,FA(LOCATOR—1),FA(LOCATON_2)$ ,FA(LOCATOR_3),FA(CIR_c),FA(SLOT_B) SAVE/DA(REF—SYS一1) $$ MODE/AUTO,MAN dConverg=ITERAT/(STARTING—POINT),(FAILED),0.05,ABSL,5,YAXIS,FA(LOCATOR—1),$ FA(LOCATOR_2),FA(LOCATOR一3),XAXIS,FA(CIR c),FA(SLOT_B),ZAXI S,FA(CIR_c) 可执行语句 $$ JUMPTO/(EOP) $$ (FAILED) TEXT,/OPER,’Convergence failed!’(收敛失败!) (EOP) ENDFIL
固定装置模拟
当一个零件放人到一个物理固定装置,零件上延伸的特征与多种固定装置的组件紧密配合。一个 表面可能在一个点接触一个模具球,另一表面的最低点将配合一个网垫,而零件的一条边缘可能与作为 剪裁终止的圆柱销相配合。在所有这些情况,零件上的特征都与固定装置上的特征相配合,这些特征是 属于不同类型的:一个平面与一个球体,一个平面与一个点,和一条直线与一个圆柱。 当特征实值在LOCATE语句中被指定时,它们与它们相对应的特征标称值是匹配的。为了充分 仿真固定装置的作用,有必要能够确定在被测量的特征实值和代表固定装置组件的特征标称值定义之 间的配合情况。通过充分仿真一个固定装置,测量迭代可以被取消。一旦零件上延伸的配合特征可能 成为平面、直线、普通的表面或普通的曲线就可以被测量。然后这些延伸的特征可以与标称意义上定义 的固定装置组件配合而不需要重新测量。 在下面例子中汽车门上的基准目标是按照平面和直线来测量的。然后这些被测量的特征与标称意 义上定义的固定装置代表圆球和圆柱的组件配对。随后一个完备的坐标体系被构建,而没有使用3个 球形模具球体和3个圆柱形剪裁挡块作测量迭代以仿真固定装置坐标体系。程序假设在测量前存在一 个近似的坐标体系。
$$ 测量基准目标作为延伸到特征。 $$ $$ 参见图10汽车门上的基准目标的例子。 $$ MODE/PROG,MAN F(AI)=FEAT/PLANE,CART,3415.730,920.416,532.578,0 0029,0 7728,一0 6347 MEAS/PLANE,F(A1),3 PTMEAS/CART,3420 065,918 138,529 767,0 0029,0 7728,一0.6347 PTMEAS/CART,3415.069,923 866,536 884,0 0030,0 7867,一0.6173 PTMEAS/CART,3412 057,919 244,531 083,0 0029,0 7756,一0.6312 ENDMES F(A2)=FEAT/PLANE,CART,2774.553,917 095,528 327,一0 0025,0 7594,一0 6506 MEAS/PLANE,F(A2),3 PTMEAS/CART,2781 584,913 730,524 207,一0 0025,0.7594。一0.6506 PTMEAS/CART.2773.890,923 323,535.927,一0 0026,0.7852,一0.6193 PTMEAS/CART,2768.185,914 231,524.846,0.0026,0.7610,一0 6487 ENDMES . F(A3)=FEAT/PLANE,CART,3145.283,697.323,1791.108,0 0043,0 8990,0 4379 MEAS/PLANE,F(A3),3PTMEAS/cART,3164 413,700 855,1783 690,0 0043,0,8990,0 4379 PTMEAS/cART,3148 853,690 620,1804 849,0 0039,0 8990,0 4379 PTMEAS/CART,3122.584,700 494,1784 784。0 0032,0 8991.0 4378 ENDMES F(B1)=FEAT/'LINE,UNBND,CART,3216.241。886.203.1333 322,$ 一l 0000.0 0001,0 0000,0 0002,一0 2106.0 9776 MEAS/LINE.F(B1),3 PTMEAS/CART,3216 241,886 203,1333 322,0.0002,一O.2106,0 9776 PTMEAS/CABT,3205,588,886.203,1333.320,一0 0005,一0 2105.0 9776 PTMEAS/CART,3194 935,886 201,1333 322,一0 0004,一0 2105,0 9776 ENDMES F(S2)=FEAT/LINE,UNBND,CART,2987.715,886 120.1332 454,$ 一1 0000,0 0026,0.0000,0 0009,0 2109,0 9775 MEAS/LINE,F(B2),3 PTMEAS/CART,2987 715,886 120,1332 454,0 0009,一0 2109,0.9775 PTMEAS/CART,2972.953,886 083,1332 454,O 0009,一0.211l,O.9775 PTMEAS/CART,2957 052,886 040,1332.454,0 0002,一O.2112,0’9774 ENDMES F(C1)=FEAT/LINE,UNBND,CART,3446 980,982 042,1019 170,$ 0 0213,一0 0547,0 9983,0 9997,0.0030,一0 0260 MEAS/LINE,F(C1),3 PTMEAS/CART,3446 980,982.042,1019 170,0 9997,一0 0030。一0 0260 PTMEAS/CART,3447 299,981 398,1032 481,0.9998,一0 0029,一0.0215 PTMEAS/CART,3447.560,980 556,1046.289,0 9999,一O 0031,一0,0141 ENDMES $$ 固定装置组件标称定义。 F(TB_A1)=FEAT,/SPHERE,OUTER,CART,3415 581,925.569,530 118.6 359 F(TB-A2)=FEAT/SPHERE,OUTER,CART,2774.372,923 027,526 796.6.350 F(TB—A3)=FEAT/sPHERE,OUTER,CART,3146 197,700 646,1796.978,6 350 F(Ts—BI)=FEAT/CYLNDR,OUTER,CART,3205 585,885 032,1338.755,0 0024$ ,0.9775,一0 2111,6 350 . F(Ts—B2)=FEAT/CYLNT]R,OUTER,CART,2972.958,884.909,1337 889,0 0024$ ,一0 9775,一0 2111。6.350 F(TS—C1)=FEAT/CYLNDR,OUTER,CART,3452 857,981 382,1032 361。O.0042$ ,0 998],0、0508。5.350 $$ 配合被测量的基准目标和标称的固定装置组件。 MA(MAT—A1)=MATDEF/F(TB_A1),FA(AI),PT2PL,BF,0 000,0 000 MA(MAT—A2)=MATDEF/F(TB_A2),FA(A2),PT2PL,BF,0 000.0 000 MA(MAT—A3)=MATDEF/F(TB_A3),FA(A3),PT2PL,BF,0 000,0 000 MA(MAT—B1)=MATDEF/F(TS—B1),FA(B1),LN2LN,BF,0 000,0 000 MA(MAT—B2)=MATDEF/F(TS—B2),FA(B2),LN2LN,BF,0,000,0 000 MA(MAT—C1)=MATDEF/F(TS—C1),FA(C1),LN2LN,BF,0 000,0 000 $$ 构建零件坐标体系。D(PART)=LocATE/MA(MAT—A1),MA(MAT A2),MA(NAT—A3),MA(MAT—B1),MA(MAT—B2)$ ,MA(NAT C1)
基准
用DATDEF语句定义的基准可以用在LOCATE语句中。根基准特征的类型,基准呵以消除位置自由度。
基准在顺序上占据优先地位,在顺序上它们在LOCATE语句中出现的 方式和基准在特征控制框架中占据优先的方式相同。
F(DATUM—A)=FEAT/PLANE,CART,2 MEAS/PLANE,F(DATUM_A),3 PTMEAS/CART,5.0000,0 0000,0 PTMEAS/CART,0 0000,5 0000,0 PTMEAS/CART,5 0000,5 0000,0 ENDMES DAT(A)=DATDEF/FA(DATuM—A) F(DATUM_B)=FEAT/CIRCLE,INNER,CART,2.0000,2 0000,0.0000,0 0000,0 0000,1 0000$ ,0.6468 MEAS/CIRCLE,F(DATUM—B);4 PTMEAS/cART,1 6766,2 0000,0 0000,0 PTMEAS/CART,2 0000,2.3234,0 0000,0 PTMEAS/CART,2 3234,2 0000,0 0000,0 PTMEAS/CART,2 0000,1 6766,0.0000,0 ENDMES DAT(B)=DATDEF/FA(DATuM—B) F(DAT【JM_c)=FEAT/CPARLN,INNER,ROUND,CART,2 0000,7 5000,0 0000$ ,0 0000,l 0000,0.0000,0.0000,0.0000,1 0000,1 5000,0.5000 MEAS/CPARLN,F(DATUM—c),5 PTMEAs/cART,6.5000,2 2500,0 0000, 1 0000,0 0000,0.0000 PTMEAs/cART,8 5000,2 2500,0 0000,一1.0000,0 0000,0.0000 PTMEAs/cART,7 5000,l 7500,0.0000,1.0000,0 0000,0.0000 PTMEAS/CART,6.7500,2 0000,0 0000,0.0000,1 0000,0.0000 PTMEAS/CART,8.2500,2 0000,0 0000,0 0000,一1.0000,0.0000 ENDMES DAT(C)=DATDEF/FA(DATUM_C) D(1)=LOCATE/XYZDIR.XYZAXI,DAT(A),DAT(B),DAT(c)
超指定坐标体系
有可能指定的特征和配合比用来唯一地消除所有运动自由度所需要的更多。在坐标体系被超指定的情况下,最佳拟合定位产生。如果在LOCATE语句中仅使用特征,所有特征在坐标体系构建中具有相等的权重。如果使用配合,微分拟合公差可能被指定。这允许指定的特征比其他的特征更紧或更松地把持。使用这个技术,沿着某种运动自由度的零件偏差可以被平衡。
$$ MATDEF和I。()cATE定义的图形的例子 $$ 用于汽车玻璃面板。 $$ GB/T 26498--20 1 1/iso 22093:2003 F(P1)=FEAT/POINT,CART,5251 3456,0.0016,1738 6048,0 7707,0 0004,0 6371 MEAS/POINT,F(PI),1 PTMEAS/CART.5251 3456.0 0016.1738 6048,0 7707,0 0004,0 6371 ENDMES F(P2)=FEAT/POINT.CART,5371.9536,一620.2612,1370 2181,0 9245,一0 2324,0 3021 MEAS/POINT,F(P2),1 PTMEAS/CART.5371 9536。一620 2612.1370 2181,0 9245,一0 2324,0 3021 ENDMES F(P3)=FEAT/POINT,CART,5371 9487,620 2511,1370 2140,0.9245,0 2324,0 3021 MEAS/POINT,F(P3),1 PTMEAS/CART.5371 9487,620 2511,1370.2140,0.9245,0 2324,0 3021 ENDME8 F(EI)=FEAT/POINT,CART,5427 6352,452 3434,1277 7473,0.2116,0 0480,一0 9762 MEAS/POINT,F(E1),1 PTMEAS/CART.5427 6352。452 3434.1277 7473,0.2116,0 0480,一0 9762 ENDMES F(E2)=FEAT/POINT,CART,5427.6386,一452 3534,1277.7503,0 2116,一0 0480,一0 9762 MEAS/POINT,F(E2),1 PTMEAS/CART,5427.6386,一452.3534,1277.7503,0 2116,一0 0480,一0 9762 ENDMES F(S1)=FEAT/POINT,CART,5268 9839,一689 0167,1544 6344,0.3977,一0 9139。0 0817 MEAS/POINT.F(S1),1 PTMEAS/CART.5268 9839。一689.0167,1544 6344,一0 3977,一0 9139,0.0817 ENDME8 F(S2)=FEAT/POINT,CART.5268 9736,689 0148,1544 6345,一0 3978,0.9138,0 0816 MEAS/POINT,F(s2),1 PTMEAS/CART.5268 9736,689.0148.1544 6345,一0 3978,0.9138,0 0816 ENDMES $$定义配合 MA(MAT-P1)=MATDEF/F(PI),FA(PI),PT2PL,BF,0 0,0 0 MA(MAT-P2)=MATDEF/F(P2),FA(P2),PT2PL,BF,0 0,0 0 MA(MAT—P3)=MATDEF/F(P3),FA(P3),PT2PL,BF,0 0,0 0 MA(MAT_E1)=MATDEF/F(E1),FA(EI),PT2PL,BF,0 0,0 0 MA(NAT_E2)=MATDEF/F(E2),FA(Z2),PT2PL,BF,0 0,0 0 MA(MAT S1)=MATDEF/F(S1),FA(SI),PT2PL,BF,l 0,一1 0 MA(MAT—s2)=MATDEF/F(s2),FA(82),PT2PL,BF,l 0,一1 0 $$ 构建坐标体系 D(1)=LOCATE/MA(MAT_PI),MA(MAT—P2),MA(MAT—P3),MA(MAT—E1),MA(MAT—E2),$ MA(MAT S1),MA(MAT—s2)
设备控制
机器参数控制机器加速速率、机器进给率、错误状态控制、运动和执行的模式、温度和探针补偿和程序中使用的单位。
机器参数
错误状态
一个错误事件出现时影响程序的执行
BADTST
ERROR
RESUME
BADGT()
BADPT()
SERROR()
SILTCH()
SENSNOTOUCH()
DMIS运行用两种方式进行错误处理
中断
程序转移是在可能引起错误状态的语句执行前设置好的。当遇到一个错误时,程序 执行自动转移预先定义好的位置。
查询
高级语言语句测试一个错误状态必须在每个需要错误处理的运动语句之后进行。 如果探测到一个错误,程序执{r可以被转移到一个远程的错误处理程序模块或者在本地处理。作为错误测试逻辑的一部分,程序转移是明确的。
使用ERROR语句允许通过中断方式在一个错误事件出现时转移程序。可能转移到检验程序内的语句卷标,或者到DME特殊的错误恢复例行程序。ERROR语句允许使用次字ILLEGALTOUCH来处理意外的探针触发,或者次字NOTOUCH来处理预期要触发的探针的缺失。ERROR语句还允许 通过使用错误代码来处理DME特定的错误,DME在特征化文件ERROR中列出了这些代码。当前的DME错误代码,即导致程序执{,转移的错误代码,可能使用SERROR()内部函数来确定。非法或非预期的探针触发使用的DME特定的错误代码可以使用SII。TCH()内部函数发现,预期触发而没有触发探针的I)ME特定的错误代码可以使用SENSNOTOUCH()内部函数发现。
注:一个探针没有触发的错误状态经常是由于探针移动超过了SNSET/SRARCH语句指定的搜索距离引起的。
由于ERROR语句作用,一旦程序执行已经被转移到DMlS程序的错误处理部分,使用ERROR语句做进一步的程序转移是不允许的,即由于错误引起的程序中断是停用的。
当错误处理完成,使用RESUME语句可以把程序执行转回原来程序调用的部分。RESUME语句 允许使用次字来控制程序执行恢复的精确位置点
通过使用CURENT语句,引起错误的语句可以重 新被执行
通过使用NEXT语句,这个浯句也可以被跳过,程序中下一个DMIS语句被执行
如果错误出现一个测量程序块内,可以使用END语句跳过整个测量块,或者使用START语句从测量块的开始 重新测量
如果错误是不可恢复的,可以使用STOP语句异常终止整个程序的执
当RESUME语句被执行,错误中断处理重新被启用。由于这个原因,在JUMPTO/(1umptarget) 语句和REsuME/(jumptarget)语句的作用之间不能有任何混淆。没有重新启用程序中断,JUMPTO/ (jumptarget)语句可以用来在错误处理洌行程序内转移。RESUME/(jumptarget)语句标志错误处理 例行程序的结束和中断重新被启用。
ADTST用来启用和停用错误状态查询。查询方式只处理两种错误状态:非法或意外的探针触 发,和期待探针触发时没有触发。当查询处于启用状态时,使用ERR()R语句的程序转移仅对这两种错 误状态是被停用的。更进一步,DME特定的意外触发和探针不触发状态处理也被暂停。当这样一个 错误状态出现时,程序执行简单地转移到DMIS程序中下一个语句。
当通过执行BADTST/ON语句错误查询被启用后,错误状态可以通过使用BADGT()和BADPT ()内部函数来探测。如果最后探针运动产生一个非法或意外的探针触发,BAD(;T()将返回.’I'RUE., 如果最后点的测量失败导致探针触发,BADPT()将返回.TRUE.。在每次GO,IO语句之后测试 BADGT()值是十分重要的,同样当启用查询时在每个MEAs/POINT...ENDMES块之后测试 BADPT()值也是十分重要的。否则可能会在错误状态存在时,DME被指令移动并导致物理损坏。如 果先前被ERROR语句启用了,执行BADTST/OFF语句将重新启用中断错误处理和/或重新启用 DME特定的错误处理例行程序。
举例
DMISMN,’Error handling example’,04 0 DISPLY/PRINT,DMIS FILNAM.’Circle searcH.04.0 UNITS/MM,ARGDEC $$ 定位零件 可执行语句 MODE/PROG,MAN $$ 为下一次探针移动开启查询。 BADTST/ON $$ 移动到下一个被测量的圆。 GOTO/0,0,10 $$ 检查错误。 IF/(BADGT()) MODE/MAN TEXT/MAN.’Move clear and open the clamp at circle circl‘ MODE/PROG,MAN $$ 重试探针移动。 GOTO/0,0,10 IF/(BADGT())$$ 第二次失败不能恢复,退出程序。 JUMPTO/(end) ENDIF ENDIF $$ 关闭查询。 BADTST/OFF $$ 为所有错误打开中断,转移到卷标(errblk) ERROR/ALL,(errblk) $$ 为重试次数指定变量。 DECL/retries,INTGR $$ 为以后调用进栈当前坐标体系。 PUSH/DATSET $$ 测量圆,重置重试次数为零。 ASSIGN/retrys,0 F(circl)=FEAT/CIRCLE,INNER,CART,0,0,0,0,0,1,40 MEAS/CIRCLE,F(Circl),4 PTMEAS/CART,20,0,0,一1,0,0 PTMEAS/CART,一20,0,0,1,0,0 PTMEAS/CART,0,20,0,0,一1,0 PTMEAS/CART,0,一20,0,0,l,0 ENDMES $$ 为报告恢复坐标体系。 POP/DATSET OUTPUT/FA(Circl) $$ 程序剩余部分。 可执行语句 $$ 跳过错误处理例行程序到程序结束。 JUMPTO/(end) $$ 错误处理例行程序 (errblk) $$ 测试错误代码。 SELECT/SERROR() CASE/’ILLEGALTOUC日 CASE/’NOTOUC}r IF/(retries LT 5) $$沿X轴查找圆。 D(temp)=TRANS/XORIG.5 $$ 重新开始测量块, RESUME/START ELSE $$ 重新测试过多,跳过特征。 RESUME/END ENDIFENDCAS DFTCAS $$ 未知错误,异常终止程序。 RESUME/STOP ENDCAS ENDSEL (end) ENDFIL
几何补偿
使用GECOMP语句可以开启或关闭几何补偿。当几何补偿被启用,全部测量结果被DME特定的几何补偿算法所改善。
模式
MODE语句定义DME执行程序的模式。
以指定下列一或多个模式:
自动模式AUTO
程序控制模式PROG
手动模式MAN
指定的模式影响测量、运动和传感器标校语句的执行。
MODE语句指定DME执行CALIB、GOTARG、MEAS和RMEAS语句所按照的模式。
AUTO永远优先于PROG或MAN,PROG永远优先于MAN。
MODE/AUTO,PROG,MAN MODE/AUTO.MAN MODE/PROG,MAN 合法MODE/MAN
运动
ACLRAT语句为测量、机器运动和回转工具台设置加速度值。 FEDRAT语句为测量、机器运动和回转工具台设置速度。
探针补偿
探针补偿是一个过程,这个过程利用通常从标校得到的传感器的特性把被测量的数据置于被测量 特征的表面。 自动探针补偿可以使用PRCOMP语句开启或关闭。
温度补偿
温度补偿可以用TECOMP语句开启或关闭。
单位
UNITS语句设置距离、角度和温度的测量单位。这个语句可以在一个程序中多次使用。
在UNITS语句发出后.其后所有定义将使用该语句指定的单位
在执行OUTPUT语句时,点值和公差值将按毫米被报告,包含点的测量值。
MODE/AUTO,PROG,MAN UNITS/INCH,ANGDEC DECL/DOUBLE,MM—X,INCH X T(TXI)=TOL/CORTOL。XAXIS,一0 010,0 010 F(PTI)=FEAT/POINT,CART,l 0,l 0,1 0。0,0,1 MEAS/POINT,F(PTI),1 ENDMES INCH—X=OBTAIN/FA(PTI),3 UNITS/MM,ANGDEC OUTPUT/FA(PTI),TA(TXI) MM—X=OBTAIN/FA(PTI),3 TEXT/OUTFIL,CONCAT(’Point X in m[fl is: ’,STR(MM—x)) TEXT/OUTFIL,CONCAT(+Point X in inch is:’,STR(INCH-x)) TEXT语句给操作人员的输出是: Point Xin mmis:25 4 Point Xininchis:l 0 TEXT语句给DMIS输出文件的输出是: TEXT/OUTFIL,’Point X in mm is: 25 4’ TEXT/OUTFIL,'Point X in inch is: 1 0’
回转工具台
回转工具台标校
多重回转工具台可以使用ROTDEF语句定义和使用CALIB语句标校。
在保持对零件坐标体系更新的控制同时,旋转运动和方向是使用ROTAB语句来控制。更新的选择项包括全部、部分或不更新。
ROTSET语句用来为回转工具台重置角度计数值。 速度和加速度分别用FEDRAT和ACLRAT语句控制。
同转工具台标校使用CALlB/RTAB语句来执行。
建立起旋转轴的单一特征的定义,或者一对特征定义它们建立 起旋转轴和同转工具台台面来执行。CALIB标校序列用ENDMES语句终止。
如果在一个测量块内使用INCLUDE语句调用外部代码,外部代码必须只包括那些允许在MEAS或者RMEAS...ENDMES块中使用的语句IF--ENDIF、DO...ENDDO和SELECT...ENDSEL块必须完整地包含往MEAS或者RMEAS..ENDMES块内。如果存测量块中使用JUMPTO语句.程序控制将转移到的跳转目标(jumptarget)必须在同一个MEAS或者RMEAS...ENDMES块内。程序控制不能被从一个测量块的外部转移到这个测量块内部的跳转H标(jumptarget)。
传感器和与传感器相关的
当面临不同类型的DME设备时,主要区别是测量中使用的传感器。DMIS当前支持的各种传感器包括:探针、照相机、激光器、红外传感器、非接触式电容传感器和x射线
此外,还支持各种类型的扫描例行程序。SNSDEF语句具有多种格式包括接触式探针、视频照相机、激光器、红外传感器、非接触电容传感器和x射线传感器。此外,这些传感器可以被定义在固定状态或者是索引状态。
传感器定义
传感器必须首先被定义,无论在零件测量程序内或者外。SNSDEF语句有几种格式。每个定义规定允许定义或者是固定的或者是索引的传感器。
传感器赋值
在传感器定义中每个传感器有一个被赋予的卷标。一旦传感器完成了标校,它的标校数据可以用SAVE语句存储。标校数据可以在其后用RECALL语句调用或用DELETE语句删除。无论在零件测量程序内或者外,SAVE、RECALL,和DELETE语句能够应用于被定义或被标校的传感器。传感器标校数据的存储和调用使用传感器卷标作为索引,允许多个传感器同时被存储。标校数据本身对用户是透明的。即DMIS词汇不允许访问这数据。当传感器被保存和其后调用时,很简单地允许传感器再次被使用:而不需要再次被标校。一些DME在传感器被标校时自动存储标校数据。这样可能允许多个传感器被标校和使用,而不需要使用SAVE和RECALL语句。这些I)ME可能只要求使用SNSLCT语句来选择一个早先已经定义和标校过的传感器。
传感器标校
CALIB语句在检验程序巾是选择性的
如果传感器标校是于工方式完成的,或者标校特征是属于 DMIS词汇不支持的类型,CALIB语句可以省略。在这种情况下.传感器是操作人员在开始执行DMIS零件程序之前标校的。
无论在零件测量程序内或者外,传感器必须在使用前被标校。例如一个探针在测量齿顶圆直径偿前被标定。同样,视频DME上一个照相机拍摄的图像为尺寸补偿也必须标定。…旦完成这些了,标校数据就能够被存储和在晚些时候被调用。
传感器利用一个已知尺寸的特征来标校。在检验程序中标校特征的特征定义被传递给DME。CALIB语句被用来标校传感器,语句在结构上和用于特征测母的MEAS和RMEAS语句是相似的。标校可以手动、程序控制或自动方式执行。于动方式时由操作人员标校传感器,程序控制办式时允许检验程序中的标校序列,而在自动方式时DME使用它自己的算法执行标校序列。标校特征定义和任何其他特征标称值定义是相同的。岗而它具有足寸、位置和方位信息。特征的尺寸、位置和方位信息是重要的.是相对于机器坐标体系的。一·旦一个坐标体系被建市.DME能够被程序控制运动到一个标校固定装置并在伺服控制下标校各传感器。 各种DMIS语句可以被用于传感器标校块。可以在CALIB/SENS和ENDMES语句之间出现的 语句列表在表9中给出。
如果在一个测量块内INCLUD语句用来调用外部代码,外部代码必须仅包含允许在MEAS或者RMEAS...ENDMES块中使用的语句。IF...ENDIF、DO...ENDDO和SELECT...ENDSEI.块必须完整地包含在MEAS或者RMEAS...ENDMES块内。如果在测量块中使用JUMPTO语句,程序控制转移到的跳转目标(jumptarget)必须在同一个MEAS或者RMEAS...ENDMES块内。程序控制 不能被从测量块外部转移到这个测量块内部的跳转目标(jumptarget)。
传感器设置
SNSET语句用来为各种传感器指定传感器设置。例如,探针的设置包括接近距离,搜索和退回等。为视频没备的设置还包括光源设置、窗口子集、过滤器等。执行SNSET语句为给定车架选择的属性将应用于该车架当前被选择的传感器。
传感器安装
探针坐标体系和机器坐标体系之间的关系是通过SNSMNT语句建立的。它的作用是帮助在CAD系统精确模拟探针和支持在输出文件中输出实际探针的偏移。
传感器选择
一旦传感器被定义和标校,及设置被启用后,当传感器没有已经到位时,必须用SNSLCT语句来选择适当的传感器。
视频系统
LITDEF语句有两种格式来定义从任何指向的任何类型的光源安排。频闪光源和图像采集通过循环或者触发模式来相互控制。 WINDEF语句的两种格式提供用于定义视频系统视场的子集——一个视窗。
车架
多车架DME被定义为是坐标测量机,由两个或以上车架相对于单一机器坐标体系构成,在单一的DMIS零件测量程序中作用于单一零件。
为适应这些系统,CRGDEF语句有必要的参数来定义工作区和各独立车架滑车轴的运动。CRGDEF语句还给车架指定一个卷标。
CRSLCT语句标记专门相对于选定车架的零件测量程序的开始,或者标记和车架无关的公用程序的开始。 DMIS语句在下列限制和解释下可以在任何模块中使用。
语句执行
DME在CRMODE语句设定的限制内负责各车架的同时并行执行。
由于各车架是独立执行,变量数据不能在不同的车架程序之间共享。DME把车架属性和数据在内部相关联。CRSLCT/ALL语句标记一个公用程序的开始,在程序中属于任何车架程序的数据都能够被使用。在公用程序里定义的数据具有公用属性和能够被使用,但是在任何车架程序都不能被修改。
当RECALL和SAVE语句控制传感器时它们成为车架特定语句,它们控制回转工具台时成为车架公用语句。
当坐标体系变换是根据PRBRAD修饰符进行时,TRANS语句成为车架特定语句。
尽管SNSET语句是与DME运动相关的,因此是与车架特定的信息相关的,SNSET语句还是允许用在一个车架公用程序中,因为经常这些参数是在所有车架间共享的公用缺省值。
车架公用语句
ROTDEF和TECOMP语句所包含的信息被认为是全程的和必须在一个多车架程序的公用程序中被编程。
在一个多车架程序的公用程序中,在TRANS语句中使用PRBRAD或一PRBRAD次字是不允许的。
在多车架DME上,某些语句仅在公用程序中编程才有意义,因为它们提供全程信息给所有车架,所以最好在特定车架程序中避免使用它们,见表10。
和回转工具台相关的语句特别要在公用程序中编程。这是为了安全的原因,防止那些没有涉及到回转工具台运动的车架发生碰撞。除了那些列在表11中的语句外,车架公用程序可以接受所有DMlS语句。
为安全原因,仅当DME从CNC模式(AUTO或PROG)切换到MAN模式或者反之时,MODE语句是车架公用语句。MODE语句,包括AUTO或PROG和MAN,(例如:MODE/AUTO,MAN)在一个车架特定程序是不允许的,因为这将从DME生成一个错误。
车架特定语句
SNSDEF(input format 1)...SNSDEF(input format 7)、CALIB/SENS、SNSET、SNSLCT、 THLDEF、ACLRAT、FEDRAT、FINPOS、RAPID、ENDGO、FROM、GOHOME、GOTARG、GOTO 和PTMEAS语句涉及一个特定车架,因而在多车架系统中必须用于车架程序内部而不能用于公用程序内部。 当编程多车架时DM的一些语句仅在一个特定车架程序中有意义,因为这些语句控制信息(如:运动),被测量的点和动态参数,而这些对于其他任何车架都是非法的,见表11。和传感器管理相关的语句特别是必须在特定车架程序中被编程,因为即使传感器零件可能具有同样的尺寸,但是它们涉及在不同的车架上可利用的不同物理对象。这样,程序员能够容易地改变各车架的配置,而不影响其他所有车架的配置。 特定车架程序可以接受所有DMIS语句,除了那些列于表10中的语句。
模态语句
当在一个公用程序中执行,模态语句将为所有车架建立全程设置。 当在一个车架特定程序中执行,模态语句仅影响该特定车架。 模态语句影响DME,并改变它的一般表现,见表12。 这种新的表现保持有效直到DME执行新发出的同一语句。 除了车架特定语句外,所有模态语句在公用程序中执行时将影响所有车架。 如果DME的模态状态在一个车架特定程序中发生了改变,在这程序执行结束时,该特定车架仍将保持它自己的设置。它不会回到在车架公用程序中定义的任何先前的状态。
测量
当测量语句涉及一个多点特征,这个特征将从多于一个车架被测量时,MEAS和RMEAS语句必须在公用程序中被编程。用在测量块内的CRSI。CT语句指定执行GOTO和PTMEAS语句的车架。 在车架公用程序中编程的子的执行模式将依照当前CRMODE状态被执行。包括在车架公用程序中的测量块可以被认为它就是一个程序本身。这意味在一个测量块中所有车架特定程序和车架公用程序都是允许的。 发生在包括于一个车架公用程序中的测量块中的所有车架特定数据的修改将永远改变这些数据值;这些值将作为缺省数据用于同一个车架的车架程序的任何进一步执行。
转移
条件块必须开始和终止于同一车架或公用程序中。 JUMPTO语句必须指出包含在同一程序中的跳转目标。作为一个例外,在一个公用程序中的JUMPTO语句可以指出在其他公用程序中的跳转目标。
输出
一个多车架DME将按和零件测量程序相同的顺序提供DMIS格式或者厂家格式的输出,与并行执行无关。
运动控制
运动语句
GOHOME和GOTO是运动语句
们单独发出或者作为测量序列的一部分发出。在GOTARG...ENDGO块内GOTO语句还可以两个或更多个被组成一个运动序列。GOTARG语句在结构上和MEAS语句相似。
运动序列
运动序列是一个程序块,它以GOTARG语句开始,包含两个或更多GOTO语句,并且以ENDGO语句结束
GOTARG语句表示一个非测量序列被执行并定义DME将移动的终点
GOTO语句跟着GOTARG语句提供运动顺序以到达的终点。在ENDGO前最后的运动语句必须和GOTARG语句有同一个终点。
MODE和运动序列
按照MODE语句的控制,一些运动序列可能按自动方式执行,一些按程序控制方式执行,而一些按手动方式执行。每次遇到GOTO或者GOTARG语句时,DME做出决定。
在自动方式,DME负责支持在指定的多点运动范围内的连续运动。在这种情况,DME计算自己 到终点的路径。在程序控制方式,(;()TO语句被执行。当遇到ENDGO语句时运动序列完成。在手动 方式,操作人员手动移动DME到终点。进一步的说明参阅GOTARG语句。
运动序列举例
运动序列程序块以GOTARG语句开始,以ENDGO语句结束。在GOTARG运动序列内唯一合法语句是GOTO语句。下面是一个GOTARG..ENDGO块的例子,驱动传感器运动到点20.5,35.5,107.5:
GOTARG/一20 5,35 5,107.5 GOT0/20.5.35.5.120 GOT0/一20.5.35 5.120 GOT0/一20.5,35 5,107 5 ENDGO
飞行(FLY)运动
飞行方式提供以一种连续方式运动的能力,不需要经过一系列GOTO语句或者测量接近点。
离开GOTO点的相对距离被一个半径值所控制,这个半径值指明允许的开始轨迹近似值的最大极限。参见图13。
测量控制
MEAS语句
MEAS语句意味一个特征的测量将被执行。测量序列以MEAS语句开始,以ENDMES语句结 束。MEAS...ENDMES块可能包含的语句可以在表13找到。在
RMEAS语句
RMEAS语句意昧一个特征的测量将被执行。测量序列以RMEAS语句开始,以ENDMES语句 结束
MODE{PROG。MAN F(RPOINT-1)=FEAT/POINT,CART,一10 5,35 5,107 5,0.0,0.0,1 0 MEAS/POINT,F(RPOINT-1),1 PTMEAS/CART.一10.5,35.5.107.5.0 0,0 0.1.0 ENDMES F(RCIR一12)=FEAT/C工RCLE,INNER,CART,一20 5,35 5,107 5,0.0,0.0,1 0,10 RMEAS/CIRCLE,F(RCIR_12),4,FA(RPOINT_1) PTMEAS/CART,一15.5,35 5,107 5,一l,0,0 PTMEAs/cART,一25.5,35 5,107.5,1.0,0 GOTO/一20.5,35.5,107.5 PTMEAS/CART,一20.5,40.5,107 5,0,一l,0 PTMEAS/CART, 20.5,30 5,107 5,0,1,0 ERDMES
替代数据拟合算法
为了提供对检验结果的进一步控制,CALIB、MEAS和RMEAS语句将应用由GEOALG语句定义 的适当的替代特征数据拟合算法。拟合算法必须在CAI,IB、MEAS或RMEAS语句前用GEOAI。G语 句定义。如果没有拟合算法被指定,CAI。IB、MEAS或RMEAS语句将使用DME的默认算法。例如, 指示CAI,IB、MEAS或RMEAS语句应用最大内切圆算法,DMIS编码可能看来像下面: GEOALG/CIRCLE,MAXINS MEAS/CIRCLE,F(CIR_11)
MODE和测量序列
根据MODE语句,DME可能决定特征是否将被自动测量或者使用程序控制的测量序列测量。通 过单一MODE语句,一些特征可能以自动方式被测量,一些以程序控制方式测量,一些以手动方式测 量。每次遇到MEAS或RMEAS语句时DME做出决定。 DME能够执行三种方式中的任何一种。当以手动方式时,DME忽略MEAS或RMEAS语句后面的语句(直到并包括ENDMES语句)。在这种方式,一个操作人员手动移动DME,并且当操作人员完 成对四个点的测量时,序列被认为已经完成。在自动方式,DME还是忽略MEAS或RMEAS语句后面 的语句。在这种方式.DME使用它自己内部的算法执行圆的测量。在程序控制方式,DME按照 MEAS或RMEAS语句后面的语句执行测量。当遇到ENDMES已经时测量完成。 MEAS或RMEAS语句后面的语句是可选择的。如果知道将执行程序的所有DME拥有为测量特 征所需的算法,或者如果所有DME将以手动方式执行测量程序,那么只有MEAS或RMEAS和 ENDMES语句是需要的。然而,如果程序序列将伺服控制下由某些DME执行,这些DME又没有测量 特征所需的算法,那么测量序列必须被编程。
允许的语句
更换传感器
在一个程序控制测量序列持续的过程中传感器可以通过SNSI。CT语句来更换。如果完成了更换, 再如果自动方式正在使用中,试图按自动方式执行测量序列的DME将没有与被选择传感器有关的信 息,DME必须为自己确定这样的信息。在自动方式中发出SNSLCT语句必须要十分小心。在自动方 式下,在测量序列中发出的SNSI。CT语句将不被识别。一个较为安全的编程实践是为那些在其中要更 换传感器的测量序列发出一个MODE/PR()G语句。然而这并不是DMIs所要求的。
不支持的特征结果
如果DME遇到CAI.IB、MEAS或RMEAS浯句,要测量一个在自动方式下不支持的特征,再如果 给出了一个程序控制测量序列,DME将使用程序控制序列测量该特征并为特征度量输出点数据。 对于RAwDAT输出,各个被测量的数据点是以斜线字符为前导和后面跟随回车和换行字符。特 征定义RAWDAT输出是以ENDDAT语句终止的。当特征被测量时,数据点是相对于当前有效的坐 标体系输出的。 例如,如果一个特定的DME不支持特征定义为球体,而在一个程序控制测量序列里遇到一个 MEAs/sPHERE浯句,DME将遵从测量序列并以和下面类似的格式输出数据: FA(SPHI)=FEAT/SPHERE,RAWDA/X,y,Z /x,y’z ,x,y’Z /X,y,z ENDAT 在这种情况下.卷标SHPl将传递给输出文件。RAWDAT表明特征类型不被支持.但是点数据正 在输}i{。未补偿的x,y,z数据是在程序控制测量序列中被采样的点数据。ENDAT语句意味着数据流 的结束。
数据访问
由PTMEAS语句定义的特征标称目标的点数据和测量结果实际的点数据可以被引用,如果相应 的特征是在点缓冲区打"时被测昔的。点数据可以通过它相应的特征及选择性的下标语法F(table) [n]和FA(1able)[n]来访问。这个性能和语法在5.3.2.6中描述。
扫描
扫描一个特征依据零件r点的榆验,不同于在MEAS...ENDMES特征测量块中明确要求的那些点,使用点采样率和/或点间距,而这些是可以南程序员或者由DME自动确定来控制的。扫描是通过SCNSET、SCNMOD、SCNPLN和SCAN语句控制的。当扫描在先前已经被激活时,如果遇到一个MEAS...ENDMES块,对在MEAS...ENDMES块内的测量和运动语句的解释是和如果扫描没有被启用是不同的。
定义
扫描参数是使用SCNSET语句定义的,该语句允许多种的点采样选择。 扫描依赖的平面用SCNPLN语句定义。扫描将产生一个剂过零件的二维截面。
激活
扫描用SCNMOD/ON和SCNMOD/OFF语句明确地被激活和停用。SCNMOD语句指定的设置是模态,而且设置应用于程序中所有接下来的特征测量,直到设置被另一个SCNMOD语句所修改。 如果扫描被肩用,在测量块内的语句被不同地解释。在MEAS...ENDMES块中的第一个PTMEAS语句给扫描指出"始的点。接下来的PTMEAS语句或者回转工具台运动语句指引在特征内的扫描路径。
控制
在测量块内,SCAN/PAUSE语句将中断扫描,允许传感器重新定位。在中断期间出现的回转工具台的运动将被认为仅足位置的运动。在扫描已经暂停时,不允许发出PTMEAS语句。GOTO、GOTARG和GOHOME语句仅能在扫描已经暂停时发出。SCAN/CONTIN语句意味中断已经完成和扫描将重新进行。中断后的第一个PTMEAS语句将被解释成重新扫描特征的开始点。
特征化文件
所有厂家被要求具有说明对DMIS支持程度的特征文件。这文件是一个ASCII文件,指明在DMIS词汇中那些语句是它支持的,部分支持的,或者是不支持的。这文件将包含对所有DMIS语句的输人和输出格式的语句说明,也包括有关系统能力和局限性的其他信息
用法
说明对本标准支持的水平
不是所有厂家将都能够完全地支持尺寸测量接口标准,标准也不是那样打算的。因为DMIS将是一个为广泛类型厂家的数据交换标准,它必须能够同时提出低智能控制器的需要,也提出那些更复杂的检验设备的需要。与其限制DMIS词汇到厂家产品能力的最小公分母,不如标准定义特征化文件,特征化文件允许广+泛类型的厂家来支持多种多样的词汇子集。
目的
为阐明特征化文件的目的,在生成DMIS检验程序时使用特征文件的两种可能情况将在下面简要地说明。这些情况将不被认为是本标准的一部分,只是给出的说明性的例子而已。
示例l:使用特征文件的情况一是将特征文件存储到一个CAD系统L的“DME程序库”中。在这种情况,CAD系统以CAD本地格式生成一个检验程序而不考虑目标DME。程序完成后,通过一个算法被分解为目标I)ME程序后再运行。同一检验程序可以在其后为其他DME分解。另一种方法应为在开发程序之前让操作人员指明目标DME。然后CAD系统就能在写程序的时候参考程序库,并保证仅有那些所有目标DME都支持的DMIS语句才被生成到程序中。
示例2:在情况二,CAD系统生成一个DMIS程序而不考虑目标DME。因为这个程序和特征文件都是处于中性格式,一个独立于CAD系统的分解算法可能被按标准程序语言开发。这个算法可能由一个非CAD厂家或者由用户开发。
特征化文件格式
下面为特征文件开发提供定义和例子。在这个文件格式中:
CHFILE/INPUT表示DME支持的输入格式的开始。
CHFILE/OUTPUT表示DME支持的输出格式的开始。
ENDCHF表示特征文件的输入或输出(INPUT或OUTPUT)主要程序的结束。
CHFILx表示特征文件程序x的开始。
ENDCHx表示特征文件程序x的结束。
$$表示一个注的开始,并且必须是在一行开始的头两个字符。
特征文件由两个主要程序构成:输入和输出。输入和输出各自由语句CHFIL/次字和ENDCHF 成为程序块,这里次字分别是INPUT或OUTPUT。这些主要程序被分成三个次要程序:
支持的DMIS语句:支持的语句必须包含在特征文件CHFII.E/INPUT,CHFIL1...ENDCHl 和CHFlLE/OUTPUT、CHFIL1..ENDCH1程序中。支持的DMIS语句必须在那些程序中 按5.5.3和附录C中定义的扩展巴科斯诺尔范式(EBNF)指明。
E特定参数:任何DME特定参数必须包含在特征文件CHFILE/INPUT,CHFlL2... ENDFIL2程序中。当在特征文件CHFILE/INPUT,CHFIL1程序中指出的DMIS命令被指定完全起作用时,下面DME特定参数就是必需的。如果这些语句都不被支持,那么在特征文件中必须包括一个空的CHFIL2...ENDCH2程序。
CHFIL2 ALGDEF $$ 根据算法的代码数字和描述识别DME支持的算法。 $$ 格式: ALGDEF/CODE,n n.。text’ n.’textl ENDAT ERROR $$ 根据错误的代码数字和描述识别DME支持的错误代码。 $$ 格式: ERROR/CODE.n n.’text’ n.’text’ ENDAT FILDEF $$ 根据视频滤波器的代码数字和描述识别DME支持的视频滤波器 $$ 格式: FILDEF/CODE。n n.’text。 n.。text’ENDAT ENDCH2 1与指出的命令是被指定为不支持的R寸.上面参数是选择性的。在附球D中D.1给Ⅲ的附加的机器 依赖参数也在这里列出。这些附加参数是选择性的。
为特定的应用程序用户定义的选择项、功能和参数。(参阅附录D中D.2)。任f叮为特定的应 用程序用户定义的选择项、功能和参数都必须包含在特征文件cHFILE/INI,U_11,CHF]I』n. ENI)CHn L}】。这此程序是选择’陀的。各部分由主字CHFIIm和ENI)CHn限界.这里n是程 序的号码并且n大于或等于3。只有使用的程序需要出现。
示例: CEFfLE LNpUT CHFILl DMIS输入语法定义(按拶艘巴科斯诺尔范式格式) 见附录“input—file ENDCHl CHFIL2 机器参数,虬附录D(可能为宅的) ENDCH2 CHFILn(一或多个选择性从n=3开始) 用户定义的选项.见附录D,D 2 ENDCHn ENDCHF CHFILE?OUTPUT C}iFILl DMIS输出语法定义(按扩展巴科斯一诺尔范式格式) 她附录c|output f11e’ ENDCHl ENDCHF
CHFEL1---ENDCH1的语法
描述厂家对DMIS规约支持的水平将使用1SO/IEC 14977:1996(E)架构记述,使用许可的标准的扩展。扩展巴科斯诺尔范式(EBNF)为上下义无关语言规约提出了广泛使用的表示法,作为[)MIS输入和DMIS输文件。扩展巴科斯诺尔范式(EBNF)是被限定在CHFIIL1..ENDCH1中使用的。
::一意思是“被定义为”;
|意崽是“或”;
'' 两个单引号用来包同DMlS语法字符;
<>尖括号用来环绕非终结符;
[] 方括号用来指明选择项;
.. 意思是重复;
# 意思是“DMIS行结束”;和
/**/意思是“一个注释被包含在内”。
这个扩展巴科斯诺尔范式有四个组成部分:
组标记,通称为终结符:在一个DMlS程序中,主’#和次字代表终结符。它们用大写宁母书写。
组非终结符:这些是别的生成式所说明的变量。在特征文件中,非终结符是被尖括号“<>”包围的。
一组生成式:各生成式由左手边的一个非终结符.右手边的一个非终结符和/或终结符的序列 和把左手边和右手边分开的一个符号构成。在特征文件巾,这个符号是“::=”。
指定非终结符之一作为开始符号。在特征文件中DMIS输入文件的开始符号是“‘input—file>”和DMIS输出文件的符号是“(output_file>”。
具有相同左手边的生成式能够拥有它们成组的右手边,可选择的右手边刚符号“|”分开,可读作“或”。 没有用尖括号包围的任何字符都是终结符,或元符号。 两个单引号包围的任何单个字符都是终结符。例如,‘A’是终结符A,而“’是终结符’。 方括号包围的任何字符都是一个选择项,或选择性重复。 有两种允许的格式来指定一个项目的重复出现。这里p是一个非终结符和/或终结符:
示例:已知一个非终结符<feature lable>包含一个值“MyLable”。 匕’<feature lable)],Myl,able在语法上是选择性的。 [’,”feature—lable>..J,MyLable在语法上是选择性的并且可能重复。,MyLable可能出现零次到任何次数。 ’.”teature—lable>[’,”feature—lable).++],MyI。able在语法上不是选择性的。,MyLable必须出现一次,和可能出现任 何多次数。 [。,’(feature_lable).3],Myl。able在语法上是选择性的和可能重复。.MyI,able可能出现零次到三次。 ’,”feature—lable)[’,。<realtlre lable> 3].MyI。able在语法上不是选择|生的。,Myl.able必须出现一次.和町能出现最 多四次。
规则
语句的组织
在DMIS中每个有输人格式的语句必须在特征文件的输入中出现。同样,在DMIS中每个有输出格式的语句必须在特征文件的输出中出现。 在特征文件中,DMIS输入文件的起始符是“<input—file>”和DMIS输出文件的是“<output file>”。
符合拓展巴科斯-诺尔范式的DMIS语法的表示法
符合扩展巴科斯一诺尔范式描述的特征文件在某个区域中的注释是用“/**/”包围的,就像/ *这是一个注释*/。
#字符是用来指明在DMlS程序中一个DMIS语句,或者DMIS输出的结束。
<dmis—def>最初生成式的所有DMIS非终结符在表15中给出。
<dmis—stm)最初生成式的所有DMIS非终结符在表16和表1 7中给出。
所有DMIS非终结符都在本标准中定义,所以特征文件将是相容的,因而较容易人:r阅读。在本标准中定义的一个完整的特征文件包含强制性的CHFILE/INPUT,CHFlL1...ENDCHl,ENDCHF和CHFII。E/OUTPUT,CHFII。1...ENDCHl,ENDCHF和所有DMlS 非终结符在附录C中给出。
为了指明厂家完全支持一个DMIS语句,注释“/*FUI。I.*/”将出现在第一个生成式 (expr)、(dmis—fi rst—Stm)、(dmis—dody>、(dmis—def)和(dmis—stm)的行的结尾和生成式ln trinsic—real—rune、intrinsic—boll—func、intrinsic—char—func和IntrinslC vector—rune的第一行。
为了指明厂家部分支持一个DMIS语句,注释“/*PART*/”将出现在那些生成式行的结 尾。如果一个语句被部分支持,语句的完整生成式将被给出,并且生成式不支持的那些部分将 被注释符号包围(“/* */”)。参见5.5.4中CONST/P()INT语句的例子。如果一个非终 结符被一个DMIS语句部分支持,但是被其他语句完全支持,那么允许建立那个非终结符的一 个副本(赋予适当的名字),并注释出不支持的选项。当完成这些,注释“/*PART*/”将出 现在包含新的非终结符的行的结尾。参见5.5.4中GEOI。AG/CONE语句的例子。
现在包含新的非终结符的行的结尾。参见5.5.4中GEOI。AG/CONE语句的例子。 …为了指明厂家不支持一个DMIS语句,行被注释符号包围(“/* */”)。文本“not supported”(“不支持”)将被包含在(dmis—def)和《dmis—stm)的第一个生成式的行内。DMIS 语句的完整生成式将被包含在特征文件中以注释符包围的行中。参见5.5.4中IF和DO语 句的例子。
为了指明厂家支持的是一个非纯粹的DMIS扩展语句,注释“/*EXTENSION*/”将出现在 定义语句的那些生成式行的结尾。
定义语句的那些生成式行的结尾。 一厂家将在特征文件的首部声明是否支持接续行(参见5.1.2.3),并且如果支持,是否在接续行 有一个允许使用字符的最大总数
标准的DMIS特征文件语法
上一节三张图
DMIS特性记述文件语法实例