pml二次开发基础语法
- 格式:doc
- 大小:55.50 KB
- 文档页数:6
利用PML语言开发PDMS建模作者:张博陈冬霞来源:《数字技术与应用》2014年第06期摘要:PDMS三维配管设计中,PDMS 前期的建模和后期的出图占据了很大的比重。
前期建立的PDMS数据库资源丰富,如何开发这个宝藏,是我们面临的一个重要课题。
本文简要介绍如何利用PML 语言,编程解决PDMS建模中的一些问题,重点阐述了如何编程实现一步设定一批管道绝热信息,在附录中列出程序并做了相应的程序说明。
通过开发利用PML语言编程,以期降低工作强度,提高工作效率。
关键词:PDMS PML语言编程管道绝热中图分类号:TQ050.2 文献标识码:A 文章编号:1007-9416(2014)06-0189-011 概述PDMS是英国AVEVA公司开发的三维工厂设计系统,是工厂设计管理系统(Plant Design Management System)的简称,目前在国内已被广泛应用于石化、冶炼、制药、电力等行业。
较之传统的CAD等平面设计软件,PDMS以数据库作支撑,通过PML(Programmable Macro Language)可编程宏语言后台运行,借助三维实体模型表观,直观而精准的体现了空间内设备、管道、结构等的相互位置关系,且支持提取平立面图纸和表格,经简单整理即可生成项目的施工文件,达到无差错,最优化设计,使现有的设计思想、方法及过程都发生一系列变革,为工程设计人员提供了全新的设计方法和手段。
本文通过PML编程语言的二次开发,找到了一种自动设置管道解热等级的方法,从而避免了手动设置,且可以批处理,从而大大提高了工作效率。
2 PML语言编程在PDMS建模中的应用PDMS常规上管道模型,一般是按照PID将各管件,法兰,阀门等依次合理的布置在某一空间里(当然包括管线命名,如XSC1303A-80-S9A-H3-GC2),最后再设置管道绝热。
管道的绝热设置一般是逐个手动设置绝热等级(如H3),因为只有设置好后,利用相应模板抽出的表格才有保温厚度。
楼主跳转到»倒序看帖打印字体大小: tT 发表于 2008-12-6 13:48 | 只看该作者[分享] PowerMILL二次开发初级教程PowerMILL, 教程, 初级, 开发我们在开发外挂的时候,重点只有以下两步,1.如何发送命令2.如何接受信息其他的只不过是围绕重点处理程序运行的流程,即所谓的算法1.发送命令方法1.利用现有的控件PowerSolutionOLE.ocx ,在入门里已经讲了,不多叙述了方法2.利用GetObject,取得实例的方法,以后再讲2.接受信息我认为,接受信息应该包括:a. 直接接受命令返回信息b. 接受窗口信息同上,实现方法也有两种,以利用控件接受信息为例,简单说明a. 直接接受命令返回信息MsgBox PowerMILL31.ExecuteEx("RINT VALUE PROJECTPATH" )这句命令是利用消息框,弹出我们当前用PowerMiLL打开的档案的路径===================================================================(PowerMILL31为控件的名称,如下图所示)下载 (0 Bytes)2010-1-18 08:26===================================================================b. 接受窗口信息MsgBox PowerMILL31.ExecuteEx("RINT FORMVALUE FEEDRATE.FEEDCUTTING" )这句命令是利用消息框,弹出我们当前用PowerMiLL打开的档案的激活刀路的切削进给率注意:如果你要看到窗口的信息,在命令行输入:MENUBARHELP DYNAMIC FORM 下载 (0 Bytes)2010-1-18 08:26看到我们的FEEDRATE.FEEDCUTTING 了没有下载 (0 Bytes)2010-1-18 08:26今天就到这里了,有问题说,有时间再答复!中国设计社区《化工三废处理工(初级、中级)》PDF向前辈们请教初级问题(什么时候用到有托顶针和扁顶针)收藏分享卫民发短消息加为好友卫民当前离线UID12989 帖子389 主题0 精华0 积分0 设计宝0 个流量99 K 阅读权限5 在线时间0 小时注册时间2008-11-9 最后登录2008-11-9一级红栌帖子389 积分0 阅读权限5 注册时间2008-11-9 沙发发表于 2008-12-6 15:03 | 只看该作者受教了,谢谢分享,TOPhh749 发短消息加为好友hh749 当前离线UID12846 帖子485 主题0 精华0 积分36 设计宝36 个流量99 K 阅读权限5 在线时间0 小时注册时间2008-11-16 最后登录2008-11-16一级红栌帖子485 积分36 阅读权限5 注册时间2008-11-16 藤椅发表于 2008-12-7 14:19 | 只看该作者PM的意思是控件名PM.Connect 这个是VB跟PM连机PM.Execute 这个是向PM发送命令PM.ExecuteEx 这个是获取发送命令返回的结果。
基于PML语言的PDMS三维建筑模型设计王楠;王黎;王云极【摘要】以规则建筑单体为例,探讨了在火力发电厂三维布置设计中运用可编程宏语言(PML)快速建立建筑模型的方法,通过采用三维工厂设计管理系统(PDMS)界面操作和PML语言2种方式建立输煤综合楼建筑模型,并进行建模效率对比,证明该方法在工程运用过程中与传统界面操作方式相比效率更高、规范性更好、人为误差更少.【期刊名称】《吉林电力》【年(卷),期】2016(044)006【总页数】3页(P43-45)【关键词】可编程宏语言(PML);三维工厂设计管理系统(PDMS);建筑模型【作者】王楠;王黎;王云极【作者单位】中国电力工程顾问集团东北电力设计院有限公司,长春130021;中国电力工程顾问集团东北电力设计院有限公司,长春130021;中国电力工程顾问集团东北电力设计院有限公司,长春130021【正文语种】中文【中图分类】TP391.72;TU271随着数字化设计在火力发电项目中的普及和深化应用,参与设计的各个专业都根据自身特点开展了服务于全专业协同的数字化设计研究工作,土建专业在数字化平台上的布置设计工作主要是建筑模型的建立,为汽机、锅炉、电气、结构、暖通、给排水、照明等其他专业提供房间布置,工作范围遍及全厂,提高建筑专业建模效率将对于促进数字化协同设计高效发展产生重要意义。
三维工厂设计管理系统(PDMS)是应用最为广泛的工厂三维设计软件之一,软件核心为7大类结构化数据库,建筑专业模型数据主要存储于其中的参照数据库,包含几何数据、材料属性、门窗信息等。
软件提供的可编程宏语言(PML)[1],具有强大的二次开发功能,包含丰富的内置函数、方法及对象[2],操作便捷,能够与PDMS无缝连接[3],几乎所有的建模工作都可以通过命令和函数的组合来实现[4]。
基于此,探索高效、规范化建立规则三维建筑模型的程序化方法,并通过实际应用验证其可行性。
规范化的建筑模型设计是基于数据库开展协同设计、三维绘图、材料统计的基础,同时也是与其他各专业开展协同配合的基础。
一个PDMS中的PML二次开发程序—结构平台委托的自动生成工具作者:李书剑来源:《数字技术与应用》2017年第09期摘要:本文介绍了一个化工设计中用于结构平台委托的程序的开发思路与应用。
关键词:PDMS;PML;二次开发;结构平台委托中图分类号:TP311.1 文献标识码:A 文章编号:1007-9416(2017)09-0174-021 引言化工及炼油设计中,管道设计专业的工作主要包括两部分,一是搭建工厂三维模型,生成施工图纸和材料报表,二是向各专业提交委托资料。
在委托资料中,工作量最大的是向结构专业提交的平台委托资料。
目前,国内绝大多数设计院管道设计专业向结构专业的委托还停留在纯二维规划阶段,不仅要在模型中对平台上存在的大量管道穿洞及荷载点进行测量,还要在CAD中进行大量重复的绘图编辑工作,以一个冷换构架为例,二维绘图往往需要一周甚至更长时间,而且由于人工输入量较大,常存在漏掉荷载点或者开洞的情况,校审及后期会签的工作量大,且修改不便。
针对以上问题,我们考虑开发一个应用程序从PDMS工厂三维模型中直接生成给结构专业的平台委托资料,通过进一步的开发,将来也可生成其他专业委托资料。
2 程序构思(1)程序原理分析。
平台委托自动生成的内容包括:判断荷载点的位置及大小,开洞的尺寸及定位,后期的自动标注和分图等,具体实现路径如表1。
(2)程序应用范围。
本程序适用于包括PDMS11.5, PDMS12.0,E3D在内的主要版本PDMS客户端。
(3)主要设计理念。
设计时的主要理念与难点如下:(1)如何判断管道是否穿洞:解决方案:利用PML找出所有平台范围内直管段(TUBI),然后判断直管段头尾,如果直管段头尾分别位于平台上下两侧,则判断其为穿洞。
(2)如何判断管道开洞大小:解决方案:首先判断管道外径(abor),然后判断管道保温厚度及是否伴热,由于不同工艺包中对伴热及保温的描述不同,所以增加了单独判断保温的自选命令。
第一部分: 基础知识PML基本概念Programmable Macro Language 可编程宏语言.通常的PML开发包括两部分, 一部分是PML宏,脚本语言; 另一部分是PML2,面向对象的编程语言.1.PML宏(Macro)宏, 就是一系列pml命令的集合.通过$m执行.格式为: $m filename [param1 param2 ….](举例)其中param1为参数, 宏可以参数化.(举例)2.面向对象的PML2PML支持对象(Object),对话框(Form)和菜单(Menu).(举例)一.变量,函数和方法1. 变量的定义及用法在PML2中, 每一个变量都是对象. 变量名以!或者!!开头,例如!weight. !开头的变量为局部变量, !!开头的为全局变量.PML内置了常用的变量类型.(1)Real 实属类型. 提供基本的四则运算操作. 例如!a = 10!b = 10!a = !a + !b$p $!a --输出变量a的值(2)String 字符串类型. 例如!strName = ‘/EQUI-TEST-1’(3)Boolean 用于逻辑表达式. 值只能是true/false(4)Array 数组(5)Position(6)Direction3.变量的创建, 删除, 查看变量可以用赋值来创建. 例如!str = ‘abc’也可以用类型标识来创建.!str= string()!str= ‘abc’删除: !str.delete()查看:通常使用q var!str也可以用$p $!str4.方法(method) 和函数(Function)Method是一个对象的子程序. 只有当对象存在,才可以调用对象的方法. 例如!strNum = ‘123’!num= !strNum.Real()$p $!num以上的代码, 调用的string类型的real()方法, 将字符串转换为数字,并输出.函数的用法与方法类似, 同样有参数和返回值. 但函数是独立存在的,全局的. 在任何地方, 都可以调用.二.程序的结构控制1.循环语句(1)Do循环例如:!sum = 0Do !i From 1 To 100 By 1!sum = !sum + !iEnddo其中!i为循环变量, 初始值为1, 终指为100, 步长为1. 当步长为1是,一般省略.(2)中断Break: 中断并跳出最内层循环(3)跳过Skip. 跳过当此存换. 例如!sum = 0Do !i From 1 To 100 By 1Skip if ( int(!i / 2) eq (!i / 2)) $* 跳过所有的偶数!sum = !sum + !iEnddo2.逻辑控制语句格式为if () then …else…其中括号内的必须是表达式.例如:IF (TYPE OF OWNER EQ ‘BRAN’) THEN$P BRANCH $!!ELSEIF (TYPE EQ ‘BRAN’) THEN$P BRANCH $!!ELSE$P NOT BRANCHENDIF其中elseif /else可选, elseif可多个.3.跳转语句定义标记Label /label1跳转Golabel /gol1不建议使用.三.其他相关语句1.数组字符串长度Length()类型转换Real(),Position(),Boolean()大小写转换LowCase(),UpCase()两端截取After(str2),Before(str2),Substring(index)中间截取Substring(index,nchars)替换Replace(str2,str3)匹配Match(str2)分割(返回数组) Split()修剪Trim()2.字符串元素数量Size()追加元素Append(value)追加数组AppendArray(Array)删除全部元素Clear()倒序Invert()搜索Find(value),FindFirst(value)和并重复项Unique()3.表达式(1)算术运算符+ - * /(2)连接运算符&(3)比较运算符LT GT EQ NEQ(4)逻辑运算符AND OR NOT4.计算函数Sqrt(x)Power(x, e)Int(x)Sin(x)Cos(x)5.注释单行注释用—开头. –之前不可出现空格之外的字符单行注释$*. $*之后的内容为注释. $*之前可出现其他字符段落注释. 用$(和$)将注释内容包括进来.(举例)6.打印$p 打印内容例如$p test line打印多行$p line 1 $Line 2输出内容包括变量$p is $!!其中$为转义字符, 如果要输出$, 则使用$$7.异常处理程序运行中, 可能需要意料之中的可能发生的异常/错误, 例如节点创建失败, 遍历子节点时超过最后一个等等. 这时需要捕捉异常,作出相应的处理.(1)异常捕捉例如Site /TEST_SITEHandle (2, 109) $*$p节点不存在Endhandle其中(2, 109)为错误编号. 也可以使用handle any捕捉任意类型的错误.(2)捕捉多个异常Site /TEST_SITEHandle (2, 109) $*$p节点不存在Elsehandle (2, 108)$p /TEST_SITE节点存在, 但不是SITE类型elsehandle none$p Site /TEST_SITE节点存在endhandle其中handle none表示没有遇到错误的情况.四.用户自定义方法/用自定义函数/自定义对象(1)自定义方法Define method .方法名(参数1 is 类型, 参数2 is 类型…) is 返回值类型其中参数可没有返回值可以没有例如Define method .Sum(!a is real, !b is real) is real!sum = !a + !bReturn !numendmethod(2)自定义函数Define function !!sum(!a is real, !b is real) is real!sum = !a + !bReturn !numendFunction与方法类似. 一个文件里只能定义一个函数,扩展名为pmlfnc, 必须放在指定的文件夹下,并执行pml rehash all(3)自定义对象Define object 对象名endobject五.文件处理(1)读取!file = object FILE(‘d:\abc123.txt')!lines = !file.ReadFile()Qvar!lines(2)写入!arr = array()!arr.append(‘line1’)!arr.append(‘line1’)!file = object FILE('d:\abc.txt')!file.WriteFile('WRITE', !arr) $*将数组!arr写入文件其中’Write’可以换成'OVERWRITE'(覆盖)和'APPEND'(追加)六.对话框及菜单1.系统对话框(1)询问!!alert!confirm = !!alert.confirm('确定要删除吗?')if(!confirm neq 'YES') thenreturnendif(2)警告!!alert.message(‘message’)(3)错误提示!!alert.error(‘error’)2.自定义对话框SETUP FORM !!custumFormTITLE '自定义对话框’Text .text1 ‘点击按钮’Button .okExit这是一个最简单的对话框, 显示一个文本框加上按钮, 但是点击按钮不会有任何反应. (截图)3.对话框调用/初始化Pmlhash allPml reload form !!custumFormShow !!custumForm4.默认构造方法/初始化方法每个form初始化时, 会自动调用与其名字相同的方法. 在刚才的代码中加上Define method .custumForm()!this.text1.tag = ‘初始化完成’Endmethod除此以外, 还可以加上默认的初始化函数在开头加上一行!this.initcall = '!this.init()', 调用构造方法结束,显示之前,会自动调用init()方法5.界面消息的响应界面消息的相应, 例如点击按钮, 选择下拉框等, 用callback关联.SETUP FORM !!custumFormTITLE '自定义对话框’Text .text1 ‘点击按钮’Button .ok ‘OK’ExitDefine method .custumForm()!this.text1.tag = ‘初始化完成’!this.ok.callback = ‘!this.ok()’EndmethodDefine method .ok()!!alert.message(‘OK’)Endmethod此时, 点击按钮, 会弹出对话框. (截图)。
PM宏的语法,常用词及用法PM宏的语法,常用词及用法1,宏语言概述1>宏是PM软件的语言,宏是命令行。
宏有固定的模式,我们学习宏,首先要学语法(也可以说是PM的语言模式),再记单词。
PM语法其实很简单,就是名词+动词或者动词+名词!2>常用单词:a动词:1,FORM-----打开表格(FORM TOOLZHEIGHTS--打开安全高度表格)2,ACTIV ATE----激活元素(ACTIV ATE Toolpath "3"--激活刀路)3,DEACTIV ATE-----使元素不激活(DEACTIV ATE T ool----不激活刀具)4,EDIT------编辑一些参数(EDIT BLOCK TOLERANCE "0.05"---改变毛胚计算)5,DELETE------删除元素(DELETE TOOLPATH "3"--删除刀路)6,RESET------计算(EDIT BLOCK RESET--计算毛胚)7,ACCEPT-----接受表格之类(FEEDRATE ACCEPT--接受刀具参数表格)8,RENAME----该名称(RENAME NCProgram "361712" "6"---改变NC名称)9,DRAW----显示元素(DRAW BLOCK-----显示毛胚)10,UNDRAW----显示元素(UNDRAW BLOCK-----不显示毛胚)b名词:1,BLOCK-----毛胚2,NCProgram ----NC目录3,Toolpath ------刀路4,Tool ------刀具5,Boundary ------边界6,Pattern ------参考线7,Level ----图层8,Model ----模型9,STOCKMODEL ----残留模型10,GROUP ----组合11,RPM ----转速12,FRATE ----进给13,PRATE----下切速度14,RSPEED ----掠过速度15,FINISHING ----精加工16,ROUGHING ----粗加工17,OPERATION ----操作18,ZMAX ----毛胚Z轴最大值19,ZMIN ----毛胚Z轴最小值20,SKIMDIST-----掠过21,PLUNGEDIST ----下切22,GOUGECHECK ------过切检查23,LEADS ------刀路连接24,HARC(H+ARC)------水平圆弧-(V ARC垂直圆弧)---组合词25,PAGE ------页面26,RTOLERANCE(R+TOLERANCE)----粗加工公差(FTOLERANCE精加工公差)---组合词27,RTHICKNESS(R+THICKNESS)----粗加工余量(FTHICKNESS精加工余量) ---组合词28,STEPDOWN ----下刀步距(Z方向)29,STEPOVER ----切削宽度(XY方向)30,SPIRAL ----螺旋31,CLIMB ----顺铣32,ANY ----来回铣33,CONVENTIONAL ----逆铣34,ON ----开启参数35,OFF ----关闭参数3>举例说明常用语法:a, ACTIV ATE Toolpath "2"词义:激活名称为D10-胶位开粗-1的刀路语法:动词(ACTIV ATE)+名词(Toolpath)+名词(动词)(2)点评:这个是PM语法中最常见的模式,大约占的80%多,元素名称要加“”。
第一部分: 基础知识PML基本概念Programmable Macro Language 可编程宏语言.通常的PML开发包括两部分, 一部分是PML宏,脚本语言; 另一部分是PML2,面向对象的编程语言.1.PML宏(Macro)宏, 就是一系列pml命令的集合.通过$m执行.格式为: $m filename [param1 param2 ….](举例)其中param1为参数, 宏可以参数化.(举例)2.面向对象的PML2PML支持对象(Object),对话框(Form)和菜单(Menu).(举例)一.变量,函数和方法1. 变量的定义及用法在PML2中, 每一个变量都是对象. 变量名以!或者!!开头,例如!weight. !开头的变量为局部变量, !!开头的为全局变量.PML内置了常用的变量类型.(1)Real 实属类型. 提供基本的四则运算操作. 例如!a = 10!b = 10!a = !a + !b$p $!a --输出变量a的值(2)String 字符串类型. 例如!strName = ‘/EQUI-TEST-1’(3)Boolean 用于逻辑表达式. 值只能是true/false(4)Array 数组(5)Position(6)Direction3.变量的创建, 删除, 查看变量可以用赋值来创建. 例如!str = ‘abc’也可以用类型标识来创建.! str = string()! str = ‘abc’删除: ! str.delete()查看:通常使用q var! str 也可以用$p $!str4.方法(method) 和函数(Function)Method是一个对象的子程序. 只有当对象存在,才可以调用对象的方法. 例如!strNum = ‘123’!num = !strNum.Real()$p $!num以上的代码, 调用的string类型的real()方法, 将字符串转换为数字,并输出.函数的用法与方法类似, 同样有参数和返回值. 但函数是独立存在的,全局的. 在任何地方, 都可以调用.二.程序的结构控制1.循环语句(1)Do循环例如:!sum = 0Do !i From 1 To 100 By 1!sum = !sum + !iEnddo其中!i为循环变量, 初始值为1, 终指为100, 步长为1. 当步长为1是,一般省略.(2)中断Break: 中断并跳出最内层循环(3)跳过Skip. 跳过当此存换. 例如!sum = 0Do !i From 1 To 100 By 1Skip if ( int(!i / 2) eq (!i / 2)) $* 跳过所有的偶数!sum = !sum + !iEnddo2.逻辑控制语句格式为if () then … else …其中括号内的必须是表达式.例如:IF (TYPE OF OWNER EQ ‘BRAN’) THEN$P BRANCH $!!ELSEIF (TYPE EQ ‘BRAN’) THEN$P BRANCH $!!ELSE$P NOT BRANCHENDIF其中elseif /else可选, elseif可多个.3.跳转语句定义标记Label /label1跳转Golabel /gol1不建议使用.三.其他相关语句1.数组字符串长度Length()类型转换Real(),Position(),Boolean()大小写转换LowCase(),UpCase()两端截取After(str2),Before(str2),Substring(index)中间截取Substring(index,nchars)替换Replace(str2,str3)匹配Match(str2)分割(返回数组) Split()修剪Trim()2.字符串元素数量Size()追加元素Append(value)追加数组AppendArray(Array)删除全部元素Clear()倒序Invert()搜索Find(value),FindFirst(value)和并重复项Unique()3.表达式(1)算术运算符+ - * /(2)连接运算符&(3)比较运算符LT GT EQ NEQ(4)逻辑运算符AND OR NOT4.计算函数Sqrt(x)Power(x, e)Int(x)Sin(x)Cos(x)5.注释单行注释用—开头. –之前不可出现空格之外的字符单行注释$*. $*之后的内容为注释. $*之前可出现其他字符段落注释. 用$(和$)将注释内容包括进来.(举例)6.打印$p 打印内容例如$p test line打印多行$p line 1 $Line 2输出内容包括变量$p is $!!其中$为转义字符, 如果要输出$, 则使用$$7.异常处理程序运行中, 可能需要意料之中的可能发生的异常/错误, 例如节点创建失败, 遍历子节点时超过最后一个等等. 这时需要捕捉异常,作出相应的处理.(1)异常捕捉例如Site /TEST_SITEHandle (2, 109) $*$p节点不存在Endhandle其中(2, 109)为错误编号. 也可以使用handle any捕捉任意类型的错误.(2)捕捉多个异常Site /TEST_SITEHandle (2, 109) $*$p节点不存在Elsehandle (2, 108)$p /TEST_SITE节点存在, 但不是SITE类型elsehandle none$p Site /TEST_SITE节点存在endhandle其中handle none表示没有遇到错误的情况.四.用户自定义方法/用自定义函数/自定义对象(1)自定义方法Define method .方法名(参数1 is 类型, 参数2 is 类型…) is 返回值类型其中参数可没有返回值可以没有例如Define method .Sum(!a is real, !b is real) is real!sum = !a + !bReturn !numendmethod(2)自定义函数Define function !!sum(!a is real, !b is real) is real!sum = !a + !bReturn !numendFunction与方法类似. 一个文件里只能定义一个函数,扩展名为pmlfnc, 必须放在指定的文件夹下,并执行pml rehash all(3)自定义对象Define object 对象名endobject五.文件处理(1)读取!file = object FILE(‘d:\abc123.txt')!lines = !file.ReadFile()Q var!lines(2)写入!arr = array()!arr.append(‘line1’)!arr.append(‘line1’)!file = object FILE('d:\abc.txt')!file.WriteFile('WRITE', ! arr) $*将数组!arr写入文件其中’Write’可以换成'OVERWRITE'(覆盖)和'APPEND'(追加)六.对话框及菜单1.系统对话框(1)询问!!alert!confirm = !!alert.confirm('确定要删除吗?')if(!confirm neq 'YES') thenreturnendif(2)警告!!alert.message(‘message’)(3)错误提示!!alert.error(‘error’)2.自定义对话框SETUP FORM !!custumFormTITLE '自定义对话框’Text .text1 ‘点击按钮’Button .okExit这是一个最简单的对话框, 显示一个文本框加上按钮, 但是点击按钮不会有任何反应. (截图)3.对话框调用/初始化Pmlhash allPml reload form !!custumFormShow !!custumForm4.默认构造方法/初始化方法每个form初始化时, 会自动调用与其名字相同的方法. 在刚才的代码中加上Define method .custumForm()!this.text1.tag = ‘初始化完成’Endmethod除此以外, 还可以加上默认的初始化函数在开头加上一行!this.initcall = '!this.init()', 调用构造方法结束,显示之前,会自动调用init()方法5.界面消息的响应界面消息的相应, 例如点击按钮, 选择下拉框等, 用callback关联.SETUP FORM !!custumFormTITLE '自定义对话框’Text .text1 ‘点击按钮’Button .ok ‘OK’ExitDefine method .custumForm()!this.text1.tag = ‘初始化完成’!this.ok.callback = ‘!this.ok()’EndmethodDefine method .ok()!!alert.message(‘OK’)Endmethod此时, 点击按钮, 会弹出对话框. (截图)。