注释 | 单行 | |||||||||||
-- | ||||||||||||
S* | ||||||||||||
多行 | $($) | |||||||||||
定义变量 | ||||||||||||
var | 字符串用''或者|| | |||||||||||
编号变量 | var 1 (99+1) | |||||||||||
var 2 'sdfsdf' | ||||||||||||
命名变量 | 变量名不区分大小写,最大64字符。 | |||||||||||
! 变量名 | 局部变量 | |||||||||||
!! 变量名 全局变量 | ||||||||||||
VAR方式定义的变量值为string类型 | ||||||||||||
PML2变量类型(不局限于STRING) | ||||||||||||
STRING | ||||||||||||
REAL | ||||||||||||
BOOLEAN | ||||||||||||
ARRAY | !newarray = ARRAY() | |||||||||||
!newarray[1]=|xxx| | ||||||||||||
自动分配变量类型 | ||||||||||||
!answer = 42 REAL | ||||||||||||
!name='ff' STRING | ||||||||||||
!flag = TRUE BOOLEAN | ||||||||||||
明确指定变量类型 | ||||||||||||
!number = real() | ||||||||||||
!text = string() | ||||||||||||
控制语句 | ||||||||||||
DO循环 | ||||||||||||
DO !loopCounter FROM 1 TO 10 BY 2 | ||||||||||||
!value=!loopCounter*2 | ||||||||||||
q var !loopCounter !value | ||||||||||||
ENDDO | ||||||||||||
带BREAK和IF | ||||||||||||
!n=0 | ||||||||||||
DO | IF(!value GT 1000) | |||||||||||
!n=!n+1 | BREAK | |||||||||||
!value=POW(!n,2) | ENDIF | |||||||||||
q var !value | ||||||||||||
BREAK IF(!value GT 1000) | ||||||||||||
ENDDO | ||||||||||||
带SKIP | ||||||||||||
DO !n FROM 1 TO 25 | ||||||||||||
SKIP IF (!n LE 5) OR (!n GT 15) | ||||||||||||
q var !n | ||||||||||||
ENDDO | ||||||||||||
遍历数组 | ||||||||||||
DO !X VALUES !ARRAY | ||||||||||||
!x | 数组里的对象 | |||||||||||
ENDDO | ||||||||||||
DO !X INDEX !ARRAY | ||||||||||||
!X | 从1到数组的长度的数字 | |||||||||||
ENDDO | ||||||||||||
循环实例 | ||||||||||||
VAR !Zones COLL ALL ZONES FOR SITE | ||||||||||||
VAR !Names EVAL NAME FOR ALL FROM !Zones | ||||||||||||
q var !Names | ||||||||||||
DO !x VALUES !Names | ||||||||||||
q var !x | ||||||||||||
ENDDO | ||||||||||||
DO !x INDEX !Names | ||||||||||||
q var !Names[!x] | ||||||||||||
ENDDO | ||||||||||||
IF条件控制 | ||||||||||||
IF(!Number LT 0)THEN | ||||||||||||
!Negative=TRUE | ||||||||||||
ENDIF | ||||||||||||
IF(!1 EQ 0)THEN | ||||||||||||
$p Your value is zero | ||||||||||||
ELSEIF (!1 LT 0)THEN | ||||||||||||
$p Your value is less then zero | ||||||||||||
ELSE | ||||||||||||
$p Your value is Greather then zero | ||||||||||||
ENDIF | ||||||||||||
从控制语句中跳转 | ||||||||||||
DO !A | ||||||||||||
@P Processing @!A | ||||||||||||
DO !B TO 10 | ||||||||||||
!C = !A*!B | ||||||||||||
GOLABEL /finished if(!C GT 100) | ||||||||||||
$P Product $!C | ||||||||||||
ENDDO | ||||||||||||
ENDDO | ||||||||||||
LABEL /finished | ||||||||||||
$P Finished with processing = $!A Product = $!C | ||||||||||||
捕获异常 | ||||||||||||
NEW EQUI/ABCD | ||||||||||||
HANDLE($41,8) | ||||||||||||
$p Need to be at a ZONE or below | ||||||||||||
ELSEHANDLE(41,12) | ||||||||||||
$p That name has already been used.Name must be unique | ||||||||||||
ELSEHANDLE ANY | ||||||||||||
$p Another erroe has occurred | ||||||||||||
ELSEHANDLE NONE | ||||||||||||
$p Everything OK.EQUI created | ||||||||||||
ENDHANDLE | ||||||||||||
Alert对象 | ||||||||||||
!!alert.error('This is an error!') | ||||||||||||
!!alert.warning('') | ||||||||||||
!!alert.message('') | ||||||||||||
Confirm返回'YES'或者'NO' | ||||||||||||
!Answer = !!Alert.Confirm(|Are you sre!|) | ||||||||||||
q var !Answer | ||||||||||||
<STRING> 'YES' | ||||||||||||
Question 返回'YSE''NO'或者'CANCEL' | ||||||||||||
Input | ||||||||||||
!!Alert.Input('填点什么','默认值') | ||||||||||||
!!CE对象 | 始终指向PDMS的当前元素 | |||||||||||
PML2 FUNCTION | ||||||||||||
Function的源文件的后缀名为pmlfnc | ||||||||||||
define function !!Area(!radiu is REAL)is REAL | ||||||||||||
!CircleArea = !Radius.Power(2)*3.14 | ||||||||||||
return !CircleArea | ||||||||||||
endfunction | ||||||||||||
PML2中的构造函数和函数重载 | ||||||||||||
1.构造函数 | Form和Object都可以定义构造函数,构造函数的名字和From或者Object相同 | |||||||||||
2.函数重载 | 当在一个Form或者Object中定义了多个Method他们的名字相同但参数不同,系统会根据调用时的参数执行不同的method. |
PML语法
最新推荐文章于 2024-04-23 09:33:04 发布