» 您尚未 [登录 - 注册] ┆ 在线 ┆ 风格 ┆ 帮助 ┆ 


  您的位置: DMIS 空间-- -> DMIS 区 -> DMIS 心得 -> DMIS初级教程-高级语言篇(不断更新)

您是本帖的第 21109 个阅读者 ┆
 贴子主题:DMIS初级教程-高级语言篇(不断更新)
爱科腾瑞客服性别:男<br>状态:离线<br>积时:1 年 5 个月 28 天 8 小时 51 分 3 秒
总版主
等级:总版主
头衔:未定义
帮派:未定义
帖数:342
金钱:2336
Y 币:12
注册:2008-8-6

[资料] [短信] [编辑] [引用] [管理员邮箱] 楼主

DMIS初级教程-高级语言篇(不断更新)

DMIS语言的高级语句部分,和大多数编程语言类似,包含变量声明、表达式、结构、输入输出、宏等等,如网友有编程经验,会很快熟悉这一部分。

从一个简单常用的例子说起,循环可能是我们在高级应用服务中运用最多的语句,DMIS标准中的循环语句为主字DO

语法格式为

DO/变量,启始值,终止值,步幅

那么一个语句如果为DO/I,1,10,1的意义就为,执行一个循环,I的值+1,增加10次之后,循环结束.

来看一个实例.

假设我的工件有一个孔,名为CIR1,我需要把它测量5次,取其中的最小值.那么测量部分的循环语句即为

AUTO/AUTO,PROG,MAN

DO/I,1,5

MEAS/CIRCLE,CIR1,4

ENDMES

ENDDO

运行这段语句,测量机就会自动去测量圆CIR1,直到5次结束后位置.

需要注意的地方: 1. 所有的变量在使用前都必须声明,上面的I是一个整型变量,每循环一次,I+1

2.每一个DO语句都必须跟一个ENDDO表示该循环的结束.

3.步幅表示每次循环I的增量,如果步副是2,那么下次I就为3,再循环一个为5,以此类推.

__________________________________________________________________________________________________

一.变量的声明.

上面的循环手动测量圆,用到了一个变量I,在DMIS中,所有的变量在使用前都需要经过声明,声明这个变量的名称,类型,作用范围.

变量声明的函数为

DECL/var_1 var_2 var_3

定义变量的作用范围

其中 Var_1 为COMMON 普通

或者GLOBAL 全局变量

或者LOCAL 局部变量

或者不存在

定义变量的类型

Var_2 为BOOL 布尔型
或者INTGR 整数型

或者LONG 长整型

或者REAL 实数型

或者DOUBLE 双精度型

或者CHAR,n 字符型

或者VECTOR 向量型


Var_3 为Varname 变量名称

相同类型的变量可以在同一个DECL语句中声明。

比如: DECL/COMMON,INTGR,I

这个语句就表示声明了一个整数型变量,名称为I.后面程序中表达式所需要整数的就可以用I来替代.

再或者DECL/COMMON,CHAR,20,TEMPSTR

这个语句声明一个字符串变量,名称为TEMPSTR,长度为20,表示这个变量所存储的字符长度最大为20,如果超过20,后面的字符将不读入变量.

变量的名称由1到16个字母数字、下划线组成,名称的第一个字符只能为希腊字母。变量名称不能使用DMIS预留字,预留字包括DMIS主字、次字、常用函数等等。如果这里不指定Var_1,DMISMN声明的程序块用GLOBAL为默认值,在MACRO声明的程序块中用LOCAL为默认值。

变量数组的声明例子为:

DECL/COMMON,DOUBLE,RAPLUS[3,3]

这个语句表示声明了一个2维的数组RPLUS[3,3],此次一共声明了9个变量,分别为

RAPLUS[1,1] RAPLUS[1,2] RAPLUS[1,3]

RAPLUS[2,1] RAPLUS[2,2] RAPLUS[2,3]

RAPLUS[3,1] RAPLUS[3,2] RAPLUS[3,3]

DMIS中变量数组的起始从1开始,而其它常用的高级编程语言如C从0开始。













「该帖子被 爱科腾瑞客服 在 2008-12-16 11:45:07 编辑过」



------------------------------------------------------------------------
爱科腾瑞(北京)有限公司
2008-11-24 15:16:51
IP
香菇菜心性别:女<br>状态:离线<br>积时:2 小时 41 分 47 秒
新兵
等级:新兵
头衔:未定义
帮派:未定义
帖数:29
金钱:213
Y 币:0
注册:2008-11-24

[资料] [短信] [编辑] [引用] [管理员邮箱] 1



十分期待中!


------------------------------------------------------------------------
DMIS 空间--欢迎您!
2008-11-24 22:29:01
IP ×
Provance性别:女<br>状态:离线<br>积时:2 天 2 小时 14 分 45 秒
大校
等级:大校
头衔:未定义
帮派:未定义
帖数:248
金钱:1343
Y 币:0
注册:2008-11-10

[资料] [短信] [编辑] [引用] [管理员邮箱] 2



请问斑竹哪里有DMIS翻译的工具?

___________________________________________________________________________________________-

RE:

    在我们公司的主页上有下载.

http://www.external-array.com.cn/

「该帖子被 爱科腾瑞客服 在 2008-12-2 16:41:35 编辑过」



------------------------------------------------------------------------
环游世界,梦想人生。
2008-11-25 20:16:28
IP ×
hongsedexue性别:女<br>状态:离线<br>积时:3 个月 5 天 5 小时 44 分 21 秒
新兵
等级:新兵
头衔:未定义
帮派:未定义
帖数:12
金钱:90
Y 币:0
注册:2008-11-26

[资料] [短信] [编辑] [引用] [管理员邮箱] 3



多传一些在实际测量中用到的,呵呵,


------------------------------------------------------------------------
DMIS 空间--欢迎您!
2008-11-27 12:00:43
IP ×
lyl4587性别:男<br>状态:离线<br>积时:7 小时 3 分 30 秒
新兵
等级:新兵
头衔:未定义
帮派:未定义
帖数:11
金钱:33
Y 币:0
注册:2008-12-9

[资料] [短信] [编辑] [引用] [管理员邮箱] 4



谢谢!!!!!


------------------------------------------------------------------------
DMIS 空间--欢迎您!
2008-12-9 22:23:04
IP ×
爱科腾瑞客服性别:男<br>状态:离线<br>积时:1 年 5 个月 28 天 8 小时 51 分 3 秒
总版主
等级:总版主
头衔:未定义
帮派:未定义
帖数:342
金钱:2336
Y 币:12
注册:2008-8-6

[资料] [短信] [编辑] [引用] [管理员邮箱] 5



二、结构语句。

      介绍三个常用的DMIS语句,DO和CASE.

      DO循环在DMIS语句编程中是常用的语句,其语法为:

      DO/index,initial,limit,increment

      循环体

      ENDDO

语句中,index是一个整型变量,initial是这个变量的起始值,limit是这个变量的结束值,increment是这个变量的增幅。例如语句

      DO/I,2,30,3

      循环体

      ENDDO

意义即为 I开始的值为2,运行第一遍循环后I的值变为5,第2遍后变为8,第三遍后变为11…………,到I的值大于30后结束循环

      最后一个参数increment可以不写,默认为1。

------------------------------------------------------------------------------------------

    CASE为条件分支选择,语法为:

    CASE/arg_1

其中arg_1为整数或者字符串,用一个例子来说明,输出两个圆CIR1、CIR2的距离,选择是输出最大距离、最小距离还是两个圆心的距离。

    decl/common,char,20,dist_cir

  tempchar = prompt/text,'输出距离类型',list,dist_cir,'最大距离','最小距离','圆心距离'

  select/dist_cir

      case/'最大距离'

          T(cir_dis) = TOL/DISTB,LIMIT,20,21,PT2PT,MAX

      endcas  

      case/'最小距离'

          T(cir_dis) = TOL/DISTB,LIMIT,20,21,PT2PT,MIN

      endcas      

      case/'圆心距离'

          T(cir_dis) = TOL/DISTB,LIMIT,20,21,PT2PT,AVG

      endcas

  endsel

OUTPUT/FA(CIR1),FA(CIR2),TA(cir_dis)

上面的语句用CASE做条件选择,选择定义的距离公差是最大、最小还是平均。




「该帖子被 爱科腾瑞客服 在 2008-12-16 13:52:18 编辑过」



------------------------------------------------------------------------
爱科腾瑞(北京)有限公司
2008-12-16 11:38:16
IP ×
依风望海性别:男<br>状态:离线<br>积时:4 小时 43 分 43 秒
新兵
等级:新兵
头衔:未定义
帮派:未定义
帖数:21
金钱:70
Y 币:0
注册:2008-11-14

[资料] [短信] [编辑] [引用] [管理员邮箱] 6



Very Good!这个实用!学习了!


「该帖子被 爱科腾瑞客服 在 2008-12-24 9:04:38 编辑过」



------------------------------------------------------------------------
DMIS 空间--欢迎您!
2008-12-16 16:41:03
IP ×
hu_zhentian性别:男<br>状态:离线<br>积时:2 小时 34 分 2 秒
新兵
等级:新兵
头衔:未定义
帮派:未定义
帖数:25
金钱:75
Y 币:0
注册:2008-12-10

[资料] [短信] [编辑] [引用] [管理员邮箱] 7



斑竹我下了个 你们公司的DMIS的翻译软件 怎吗不好用啊     请指教

________________________________________________________________

RE:请重新下载一次。可能是FTP变更,倒换网站数据造成的。已修复。


「该帖子被 爱科腾瑞客服 在 2008-12-24 9:06:01 编辑过」



------------------------------------------------------------------------
DMIS 空间--欢迎您!
2008-12-22 11:16:12
IP ×
bobliu性别:男<br>状态:离线<br>积时:5 个月 4 天 4 小时 20 分 43 秒
新兵
等级:新兵
头衔:未定义
帮派:未定义
帖数:80
金钱:420
Y 币:1
注册:2008-12-23

[资料] [短信] [编辑] [引用] [管理员邮箱] 8



支持一下虽然不是很懂哈哈



------------------------------------------------------------------------
只有交流才能学习,只要学习就要交流!!!
2008-12-23 21:37:49
IP ×
爱科腾瑞客服性别:男<br>状态:离线<br>积时:1 年 5 个月 28 天 8 小时 51 分 3 秒
总版主
等级:总版主
头衔:未定义
帮派:未定义
帖数:342
金钱:2336
Y 币:12
注册:2008-8-6

[资料] [短信] [编辑] [引用] [管理员邮箱] 9



三.输入部分

    DMIS可以从用户界面上取得输入值,也是在HLL中常用的主字PROMPT,后面的功能语法有

    PROMPT/TEXT, 'hello,world'---------------界面出现一行提示 hello world

    PROMPT/EDIT, var_1 --------------------出现对话框,把对话框内输入的数据赋值给var_1

    PROMPT/CHECK, '直径',var_1-------------出现勾选项,在"直径"后面,如果勾选上,var_1的值为1,反之var_1的值为0

    PROMPT/LIST,var_1,"圆度","位置度","直径公差"-----------出现一个下拉菜单,中间包含圆度\位置度\直径公差,选则一项就将值赋给var_1,例如我在下拉菜单中选择了"位置度",那么字符串变量var_1的值就为"位置度"

    PROMPT/TITLE,'校验程序'------------出现的窗口的标题栏即为'校验程序'

    PROMPT/PICTURE,'filename'------------出现一个图片,filename为此文件和路径和文件名

    下面是一个范例的提示窗口,如图

上传的图片
  抱歉,您所在的组无权下载附件,请注册登陆

    语句如下:

 
DECL/CHAR,20,List_var1
DECL/DOUBLE,edit_var1,edit_var2,edit_var3
DECL/INTGR,Check_var1,Check_var2,Check_var3


Tempchar = Prompt/Title,'孔测量程序',$
                  Text,'孔的数量',edit,edit_var1,$
                  Text,'孔的直径',edit,edit_var2,$
                  Text,'直径公差带',edit,edit_var3,$
                  List,List_var1,'直角坐标系','极坐标系',$
                  Check,'位置度',Check_var1,Check,'圆度',Check_var2,Check,'直径公差',Check_var3

「该帖子被 爱科腾瑞客服 在 2008-12-25 15:12:49 编辑过」



------------------------------------------------------------------------
爱科腾瑞(北京)有限公司
2008-12-25 14:46:30
IP ×
 每页10条,共2页,合计15条记录分页:« 1 2 »转到  


爱科腾瑞(北京)有限公司