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的一些高级语句就可以直接跳转到某一行,或跳过一些行;可以重复运行几行程序固定次数或可变次数;也可以清除报错,如误触发。 |
|
来自: 昵称11935121 > 《未命名》