PDMS开发-初级开发练习及解释1

练习代码来自于AVEVA官方,笔者进行了简单解释和部分勘误!
1、一个简单的 Macro
–新建设备FREDNEW EQUIP /FRED
–新建立方体NEW BOX
–设置属性值
XLEN 300 YLEN 400 ZLEN 600
–新建圆柱并设置直径和高
NEW CYL DIA 400 HEI 600
–将圆柱的P1点和前一个元素(立方体)的P1相连
CONN P1 TO P2 OF PREV
2、参数化宏Parameterized Macro

NEW EQUIP /$1
NEW BOX
XLEN $2 YLEN $3 ZLEN $4
NEW CYL DIA $3 HEI $4
CONN P1 TO P2 OF PREV

将以上内容存在文件file.mac中,使用以下方法调用该文件:
$m file.mac ‘FRED’ 300 400 500
那么$1 = ‘FRED’
$2 = 30 0
$3 = 400
$4 = 500

3、变量给属性赋值
New Pipe
Desc ‘My Description’
Temp 100
Pspec /A3B
Purp PIPI
新建管道,设置Desc Temp Pspec Purp属性值

!desc = desc
!temp = temp
!pspec = pspec
!purp = purp

!desc、!temp、!pspec、!purp 为变量,pml语法中,以!开头的字符串为变量,字符串仅能包括英文字母和数字且不可以数字开头,大小写不区分。以!!开头的为全局变量。

New Pipe
Desc ‘$!desc’
Temp $!temp
!pspec $!pspec
!purp $!purp

新建管道,将!desc、!temp、!pspec、!purp 赋给其各属性

4、字符串方法实例

!line = ‘hello how are you’
!newline = !line.after(‘hello’).trim().upcase()

!newline设置为!line“hello”之后的字符串,且设置为大写

q var !newline
在命令行中显示 !newline

!newline = !newline.replace(‘how’,’ where’).replace(‘you’,’ you?’)
有误,应修改如下:
!newline = !newline.replace(‘HOW’, ‘WHERE’).replace(‘YOU’, YOU?’)
将HOW替换为WHERE,YOU替换为YOU?

5、定义函数

define function !!Area( !Length is REAL, !Width is REAL ) is REAL
!Area = !Length * !Width
return !Area $*函数!!Area有两个参数一个返回值
Endfunction
将上述代码拷贝到一个名为Area.pmlfunc的文件中,并将文件存储在pdms目录的pmlib中,便可调用该函数。

6、新建函数计算园的面积,测试函数

define function !!circleArea( !radius is REAL) is REAL
!Area = PI * pow(!radius,2)
return !Area
Endfunction

7、条件判断语句(If Construct)
–获取当前元素的类型
!Type = Type
–获取当前元素所属者的类型
!OwnType = Type of Owner
–如果类型是BRAN
IF (!Type eq ‘BRAN’) THEN
–$P为在命令行中打印
$P CE is Branch.
–再者如果所属者类型是BRAN
ELSEIF (!OwnType eq ‘BRAN’) THEN
$P CE is Branch member.
–其他情况
ELSE
$P CE is $!Type,Pls select Branch.
ENDIF

8、条件判断

!n = 0
!type = type
if(!type eq ‘BRAN’) then
–href为头部连接对象,tref为尾部连接元素
!href = href
!tref = tref
if(!href.set()) then
!n = !n + 1
–在graphicView中显示头部连接元素
add href
endif
if(!tref.set()) then
!n = !n + 1
add tref
endif
endif
if(!type eq ‘NOZZ’) then
–cref为管口连接元素
!cref = cref
if(!cref.set()) then
!n = !n + 1
add cref
endif
endif
$p Total $!n reference

9、循环赋值

!Total = 0
Do !x From 1 To 100 By 1
!Total = !Total + !x
Enddo
Do …enddo构成一个循环

10、中断循环 Break
!Total = 0
Do !x From 1 To 100
!Total = !Total + !x
If(!Total gt 500) then
Break $*或者Break if(!Total gt 500)
Endif
Enddo
Break为中断循环

11、用skip 跳过奇数

Do !x From 1 To 100
If(Int(!x / 2) NE (!x / 2)) then
Skip $*或者Skip If(Int(!x / 2) NE (!x / 2))
Endif
!Total = !Total + !x
Enddo
从1到100循环,!x/2后的取整之不等于!x/2则为奇数,skip为直接跳到do的位置,skip以下语句不再执行。
欢迎关注微信公众号 长远数智实验室 了解更多资讯!

你可能感兴趣的:(PDMS,二次开发,化工设计,工程设计软件)