PML基础
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
P M L构 成
q Macros
– Macros是包含PDMS 命令序列的 ASCII文 件 – Macros 在 PDMS 中通过 $m /FILENAME来执行
q PML
– 变量(Variables) – 判断语句(if Constrcuct) – 循环(Do loops) – 错误处理(Error Handling) – 文件处理(Files and Directories)
– 实数赋值 Temp $!Temp
– 参考赋值,参考元素必须存在 Pspec $!Pspec
– 关键字赋值,只提前四个字符,不用括号 Purp $!Purp
练 习 -变量给属性赋值
q 使用文本编辑器编辑
– 获取当前元素的Name和Type – 新建同样类型的元素 – 在命名中追加-NEW
q 注意
– 确认当前元素有命名 – 使用$将变量的值转换成字符串 – 字符串变量可以用’+’号组合 – PDMS命令行只接受字符串的值
q 查询属性类型
!Ref = Ref Q var !Ref
变 量 给 P D M S属性赋值
q 属性名 $变量名,其中$表示将变量的值转换成字符串, PDMS命令行只接受字符串的值
– 名字赋值,第一个字符必须是/ Name $!Name
– 字符串赋值,必须用单引号括起来,如果字符串中包含单引号,必 须用管道符号,如| ' bb' | Desc '$! Desc'
q 系统定义(System-defined)的对象类型
– 指在PDMS中的变量类型,如Positon,Reference
q 用户自定义(User-defined)的对象类型
生成、查询、删除变量
q 使用命令行或者文本文件测试 q 通过赋值声明变量类型
!MyString = 'Hello World' Q var !MyString 显示<STRING> 'Hello World'
q 段落注释
$( skip if (!X EQ !Y) … $)
P M L通 用 功 能-打 印 等
q 打印
$P This text will be output to the screen.
q 换行
$P This is an example of a much longer message $ that will be output to the screen
q 名字(Name) 如Name
q 字符串(String) 如Description,Function
q 实数(Real)
如Angle,Temperature,Rating
q 布尔(Boolean) 如Lock,Shop,Built
q 数组(Array)
如Level
q 参考(Reference) 如Spref,Catref,Lstube,Ptref,Gmref
q 变量基本概念
– 变量用于存储数值,变量必须有名字,变量的数值可以改变,但变量名 是固定的.
q PML变量
– 在PML2中变量是一个对 象(Objects) • 每一个对象(变量)有一个唯一的名字 • 每一个对象都有一套函数与之相关联,这些函数称为方 法 (Methods).方法用于处理对象中的数据 • 生成对象时必须指明对象类型(Object type),不同的对象类型对 应不同的方法
对象(变量)类型Object Types
q 内置(Build-in)的对象类型
– 字符串类型(String).如'Hello World' – 实数类型(Real).整数类型包括在实数类型中,如 99 – 布尔类型(Boolean).用于逻辑表达式,如True,False – 数组类型(Array).可以存储任意类型的数据
课程将包括...
q PML介绍
– PML概念 – PML功能 – PML构成
q PML程序语言
– 变量的定义及用法 – 循环Do、判断If、跳转Golabel – 错误处理 – 文件处理 – 函数Functions、方法Method – 对话框Forms和菜单Menu
PML基础
王元
AVEVA中国 2004.9.21
课程结束后 ...
q 您会具有以下知识 …
– PML构成及功能 – 编写简单的宏 – PML变量的定义及应用 – PML函数/方法的定义及调用 – PML窗体/对象的定义及调用
PML - 功能强大的语言
q Programmable Macro Language可编程宏语言 q PML2基于面向对象(Object Oriented)概念的编程语言 q 支持用户可自定义对象类型(Object Types) q 简单易学,与PDMS无缝连接 q 丰富的内置函数,方法及对象 q 最简单的对话框,菜单编写语言
q 函数(Function)是执行特定功能的子程序 q 方法(Method)是对象(变量)的函数
– 在PML2中变量是一个对 象(Objects) • 每一个对象(变量)有一个唯一的名字 • 每一个对象都有一套函数与之相关联,这些函数称为方 法 (Methods).方法用于处理对象中的数据 • 生成对象时必须指明对象类型(Object type),不同的对象类型对 应不同的方法
q 关键字(Word) 如Type,Purpose
q 位置(Position) 如Position,Hposition
q 方位(Orientation) 如Orientation
q 方向(Direction) 如HDirection
变量提取属性
q 用变量提取属性值,变量名=属性名
!Name = Name !Desc = Description !Pspec = Pspec !Temp = Temp !Purp = Purp
宏的参数
q Macros 可以有多达 9 个由空格分隔的参数.
$M /MyFile PML TRAINING 55 66
q 文本字符串可以以单个参数输入
$M /MyFile $< PML TRAINING $> 55 66
q $< 和 $> 是分隔符,在它们之间的任何字符都被认为是单 个参数
变量Variables
!MyArea = !!Area(6,4) Q var !MyArea <Real> 24
q 练习-新建函数计算圆的面积,测试函数
define function !!circleArea( !radius is REAL) is REAL !Area = PI * !Radius.Power(2) return !Area
方法实例
q 方法示例
!str = 'hello how are you!' !newstr = ! str.after('hello').trim().upcase() q var !newstr <String> 'HOW ARE YOU!'
q 练习-将字符串改为'where are you?‘
!str = 'hello how are you!' !newstr = ! str.after('hello').trim().replace('how', ' where').replace('!', '?')
示范程序
q 直接组合字符串
!type = type !name = name New $!type $!name-NEW
q +号组合字符串
!type = type !name = name !newname = !name + ‘-NEW’ New $!type $!newname
方法(Method)和函数(Function)
!Y = 32
!Z = !X + !Y
!Z = 96
!A = 'Hello '
!B = 'World'
!AB = !A + !B
!AB = 'Hello World'
!XY = !X & !Y
!XY = '6432'
方法-实数对象(Real Object)
q 开方 q 乘方 q 取整
Sqrt () Power(REAL ) INT()
参数化宏Parameterized Macro
一个简单的 Macro ,继续,
q 宏可以参数化 q 文件名后面的字符串是参数(parameters)
$M /MyFile NEWEQUIP 300 400 600
ASCII 文件 MYFILE
NEW EQUIP /$1 NEW BOX XLEN $2 YLEN $3 ZLEN $4 NEW CYL DIA $3 HEI $4 CONN P1 TO P2 OF PREV
定义函数
q 函数定义成全局变量
define function !!Area( !Length is REAL, !Width is REAL ) is REAL
!Area = !Length * !Width
return !Area
$*函数! ! Area有两个参数一个返回值
Endfunction
Endfunction
P M L通 用 功 能-注释
q 单行注释
--This is a new-style PML comment ----------------------------- $* The following lines calculate the new angle !Z = !X + !Y $* We are assuming both !X and !Y are REAL
! 表示局部变量
!!Area
!! 表示全局变量
q 变量名最长 16 个字符(不包括!和!!),变量名可以包含字母 和数字
q 变量名不能用数字和点(.)开头
q 变量名的大小写不敏感
q 建议:一个变量一个用途,最好给变量名一个有意义的名字, 并且区分大小写
! ! StartInUpperCase
P D M S属 性 类 型 -系 统 定 义 变 量 类 型
q 直接声明变量类型
!Length = Real() Q Var !Length 显示<REAL> Unset
q 删除变量用到方法
! MyString.Delete()
变量命名规则(Naming Conventions)
Fra Baidu bibliotek
q 局部变量(Local)和全局变量(Global)
! SurfaceArea
q 文件命名和存放位置
Pmllib /NewPml
functions
forms
area.pmlfnc xxx.pmlfrm
objects xxx.pmlobj
– 文件名必须与函数名一样,后缀是小写的pmlfnc
函数调用
q 将新建函数加到索引文件Pml.index中
Pml Rehash All
q 调用函数并且得到返回值
– 方法并不改变对象的类型和对象中的值
q 参考手册Cadcentre Software Customisation Reference Manual
方法-字符串对象(String Object)
q 字符串长度 q 类型转换 q 大小写转换 q 两端截取 q 中间截取 q 分隔符截取 q 替换 q 匹配 q 分割(返回数组) q 修剪
Length() Real(),Position(),Boolean() LowCase(),UpCase () After(str2),Before(str2),Substring(index) Substring(index,nchars) Part(nth),Part(nth,delim ) Replace(str2,str3) Match(str2),MatchWild(str2) Split() Trim(),Trim(option)
q 窗体和菜单
– PDMS大多数应用程序都由对话框 (Forms )和菜单 (Menus)来驱动
一个简单的 Macro
q 宏是包含PDMS 命令序列的一个文本文件 q 运行宏
$M /MyFile
ASCII 文件 MYFILE
NEW EQUIP /FRED NEW BOX XLEN 300 YLEN 400 ZLEN 600 NEW CYL DIA 400 HEI 600 CONN P1 TO P2 OF PREV
P M L表 达 式
q 表达式运算符(Expression operators)
– 算术运算符 +-* /
– 和并符 &
– 比较运算符 EQ NE LT LE GT GE
– 布尔运算符 NOT AND OR
表达式说明
q 表达式可以嵌套
q 运算符前后必须加空格
q 表达式前后的类型必须一致
!X = 64