1变量变量是计算机内存中的一个区域,用来储存信息(数据),使用变量的过程分3步:
1、生成一个变量,这个过程称为声明或定义:
2、存储数据到变量,这个过程称为赋值:
3、把变量应用到特定的程序中,这个过程称为调用:
1.1变量声明在使用变量存储数据前必须用'DECL,语句来定义,定义变量可以确定变量的三个属性:适用范围、变量类型、变量名。
变量定义语句的结构如下:
DECL/【范围】,变量类型,变量名称 注意:DMIS中的逗号一律用英文小写
1.1.1变量范围
指定哪些程序或模块可以访问变量,有三种:LOCAL,GLOBAL,COMMON;
1.1.2变量类型
变量类型用来确定变量存储数据的格式,不同的数据格式需要不同的内存空间。每种类型的存储空间上下限值取决于操作系统。
1.1.3变量名称
变量名称相当于给变量中的数据贴上一个可识别的门牌号。变量名称由1到16个字母、数字或下划线构成,首字母必须是英文字母。变量名称中不能包含DMIS保留字。
软件里,在需要定义的变量类型上鼠标右键,输入名称和数值后点击确认就会自学习生成变量定义语句。
1.2变量赋值
变量定义后就可以给它分配数据。DMIS语言中可用于赋值的命令包括:ASSIGN,VALUEPROMPT,READ.
注意:每执行一次赋值命令,变量中存储的原数据都会被覆盖掉。
1.2.1 ASSIGN命令说明
命令的格式如下:
Name=ASSIGN/expression
Name:已经定义的变量名称;
Expression:可以是变量、数字、字符、计算公式、逻辑表达式、函数
案例1:把一个变量里的数据拷贝到另一个变量里!
rNewDiam-ASSIGN/rOldDiam
案例2:把数字输入变量
rNumber=ASSIGN/3
案例3:把字符输入变量
rAlpha=ASSIGN/'ABcd' $$注意用单引号
如果字符串赋值要写到单引号里面
如果想转换变量类型需要调用一些特殊函数,可以在变量数值输入框里右键就会弹出各种函数
1.2.2 VALUE命令说明
Name=VALUE/label,expression
Name:已经定义的变量名称;
label:实际元素名称、公差
expression:关键字,如PTDATA,ACT、DEV,AMT等,控制输出项目
案例1:读取曲线测量点数到整数变量里
GCV1_PTDATA = VALUE/FA(GCV1),PTDATA
将实际曲线拖放到整数标签上自学习下自动生成value语句
案例2:读取公差的实际值、偏差值、超差值到变量里
TCLD2 ACT = VALUE/TA(TCLD2),ACT
TCLD2 DEV = VALUE/TA(TCLD2),DEV
TCLD2_AMT = VALUE/TA(TCLD2),AMT
将公差拖放到实数标签上
1.2.3 OBTAIN命令说明
Name= OBTAIN/label,ordinal
Name:已经定义的变量名称;
label:实际元素、公差的名称
ordinal:数字编号
用法与value相似
案例:将圆的x、Y.Z.D值输出到变量
CIR1 X= OBTAIN/F(CIR1),4
CIR1 Y= OBTAIN/F(CIR1),5
CIR1_2= OBTAIN/F(CIR1),6
CIR1_D = OBTAIN/F(CIR1),10
拖放实际圆到实数
各元素输出项目与编号对应关系
1.2.3 PROMPT命令说明
PROMPT赋值语句主要包括3种形式。
1,输入数据:
name = PROMPT/expression,lower,upper KNPTR1变量名称,必须是实数型或整数型;expression提示文本;lower下限、upper上限。
变量名称右键,输入各参数后点击确认后生成自学习语句
运行语句会弹出对话框,输入数值就会将数值赋给变量。
2.输入字符:
name = PROMPT/expression name
字符型变量;expression提示文本;
运行语句,在提示框内输入字符串,字符就被赋给了变量。
3.prompt复合语句
用一个语句实现多种变量类型同时输入。
程序编辑区右键点击其他功能,再点击Prompt提示,弹出一个复合语句编辑器,在prompt类型里选择要赋值的变量类型,再添加文本提示,然后点击绿色箭头添加到Prompt条目里,最后再点击DMIS,就会在DMIS编辑区生成自学习语句。
运行生成的程序产生的效果如下,这样点击按钮、激活选项、输入数据操作后都会将不同类型的数据赋给相应的变量。
也可以这样:
KNPTNI =PROMPT/TITLE,多行输入,TEXT,第一行:,EDIT,KNPTC1,TEXT,S第二行:'EDIT,KPTC2,TEXT,三行:,EDIT,KPTC3运行后的结果是这样
1.3数组的定义与赋值所谓数组,就是相同数据类型的元素按一定顺序排列的集合,就是把有限个类型相同的变量用一个名字命名,然后用编号区分他们的变量的集合。
数组分一维数组和二维数组,定义格式如下:
DECL/REAL,cData【10】
ss一维数组,可以储存10个数据
DECL/REAL,cData【10,10】
ss二维数组,可以储存10x10-100个数据数组变量的赋值操作与普通变量相同,只是在在变量名称后面添加 并设置数组编号即可。
如下:
Number【2】-ASSIGN/3 ss一维数组赋值
rNumber【1,2】-ASSIGN/3 ss 二维数组赋值
2宏和外部文件
宏是一组DMIS命令,能够完成特定任务,可以被程序反复使用。使用宏可以省去编写重复代码的麻烦。
宏的应用分两步:
1,定义宏语句,称之为'声明.
2,使用宏,称之为'调用。
外部文件不同于主程序,它可以是DMIS程序、DMIS宏,也可以是Windows程序或DME文件。
2.1宏声明
宏声明的结构如下:
M(Name)=MARCO/arguments
Statments
ENDMAC
Name:宏名称
Arguments:变量列表,宏将使用这些变量将数据导入宏。
Statements:DMIS语句组。
案例,输出两个数之和
2.2宏调用
调用宏要使用Call命令,格式如下:
CALL/M(Name),arguments
Name:宏名称。
Arguments:变量列表。
案例,调用上面求和的宏CALL/M(ADD),12,32 ss ADD已经声明的宏名称
或者使用变量调用宏DECL/REAL,ADD1,ADD2
ADD1=ASSIGN/12
ADD1=ASSIGN/32
CALL/M(ADD),ADD1,ADD2
2.3 RationalDMIS预定义宏
RationalDMIS变量数据区保存了一些定义好的的宏,方便用户调用。
其中:MINMAX的功能分别是求最大直径、最大弧度、最大×坐标误差、最大Y坐标误差、最大z坐标误差。
将多个元素拖放到宏标签上就可以调用宏并计算最终结果。
2.4外部文件调用
3 ASCII文件输入和输出
DMIS语句可以获取(读取)储存在ASCIl(text)文件里的数据。一旦数据被输入(读到)变量里,它就可以被程序所用。当把数据写到文本文件里时旧的数据或者被覆盖,或者把新的数据叠加到旧的数据后面。有专门的语句来读写这些具有固定格式的数据。
读写ASCIl文件的过程分4步
1,定义ASCII文件的位置和名称,称作设备定义。
2·建立与文件的连接并设置输入/输出属性,称作打开文件。
3,从文件读、写数据。
4·中断与文件的连接,称作关闭文件。
自学习方式生成设备定义语句
软件中在输出设置窗口,设备定义点击右键弹出设备定义窗口
在设备ID中输入设备名称,选择文件类型,点击打开文件按钮,弹出输出文件对话框,,输入文件名后选择保存类型,再点击保存,最后点击确认。在自学习模式下会生成设备定义语句。
同时在文件目录下生成一个设备标签
3.2建立ASCII文件连接
主要使用打开OPEN语句
OPEN/DID(label),format,mode,method Label:已定义的设备名
Format:读写文件数据格式
Mode:输入还是输出
Method:输出方式,覆盖还是累加
手写打开语句格式如下:
OPEN/DID(my file),DIRECT,INPUT
ss 直接读取文件数据
OPEN/DID(my_file),DIRECT,OUTPUT
sS 直接写数据到文件
软件自学习open语句格式如下:
OPEN/DID(clabel),FDATA,V(DEFAULTFORMAT),OUTPUT,OVERWR
ss 以覆盖方式将数据写入文件
OPEN/DID(clabel),FDATA,V(DEFAULTFORMAT),OUTPUT,APPEND
ss 以累加方式将数据写入文件
操作过程如下:
在上一步生成的设备标签上右键点击,再点击打开存储设备,设置设备参数后点击确认
设备标签显示打开,同时生成自学习程序。
3.3从ASCII文件读取数据
目前从ASCII文件读取数据的语句只能手动编辑,无法自学习生成,而且打开语句必须使用下面的形式:
OPEN/DID(my file),DIRECT,INPUT
读取数据命令格式如下:
READ/DID(label),variable
Label:设备名称
Variable:变量列表
案例1假设数据保存在txt文件里,格式如下,每一行有三列数据,共三行
4分支结构
一般来说程序是按行来运行的,第一行开始最后一行结束,而应用DMIS的一些高级语句就可以直接跳转到某一行,或跳过一些行;可以重复运行几行程序固定次数或可变次数;也可以清除报错,如误触发。
联系客服