PDMS 12.0 编程基础ABC
- 格式:doc
- 大小:67.00 KB
- 文档页数:12
pdms实⽤基本操作⼤全编号:40D08-01-2008 PDMS 建模操作⼿册( 共24页)编制王艳艳校对红新审核林青项⽬审核贾正伟审定王⾦富配管室2008-2-26⽬录⼀、设备建模 (1)I利⽤设备模板建设备 (1)II参数化创建设备 (2)III读取宏⽂件⽣成设备 (2)IV 搭积⽊创建设备 (3)V 特殊设备基本体的构建 (4)VI 设备模块常⽤命令 (5)⼆、管道建模 (11)I基本管线的创建 (11)II常⽤的管线修改编辑命令 (12)三、错误信息类型及修改⽅法 (22)⼀、设备建模Ⅰ、利⽤设备模板建设备:1.创建Site: Create ==> Site ==> tank1(名称)创建Zone: Create ==> Zone ==> Equipmodel2.创建设备:Utilities ==> Equipment3. 创建设备模版:Create ==> Basic Equipment,选择要创建的设备类型,输⼊对应的参数值。
修改属性:选中要修改的CE点Modify ==> Attributes, 修改其参数值,修改完毕后点OK即可。
Ⅱ、参数化创建设备:Create ==> Stardard ==> 输⼊设备名称,选择具体的设备类型,选中之后点Properities,可修改其参数值,点OK确定放置点座标即可。
参数化模型设备的修改:Modify ==> Equipment Specification ==> 点Properities, 修改其属性值。
Ⅲ、读取宏⽂件⽣成设备:1.选择要处理的源设备,⽣成⼀个宏⽂件Utilities ==> DB listing ==> 输⼊要输出的宏⽂件路径==> 点Add CE ,点Apply,这样就输出⼀个宏⽂件。
2.打开命令⾏Command line , 读取刚才⽣成的宏⽂件,$M D:\T emp\Equip.text (读取第⼀步⽣成的⽂件)这样就可⽣成⼀个与原CE⼀样的设备Ⅳ. 搭积⽊创建设备1. Create Equipment 输⼊设备名称2. Create ==> Primitive ==>选择搭积⽊组成设备的各个组件,拼成⼀个设备,具体的组件名称可取默认值,设备嘴⼦另外命名。
VPDVANTAGE Plant Design System工厂三维布置设计管理系统PDMS项目管理培训手册建立项目生成项目目录1.建立项目目录D:\PROJECT。
2.在项目目录D:\ PROJECT下面建立新的PDMS项目,需要创建四个子目录。
目录名称中前三个字母必须是由三个字母组成的项目代码,下面练习中以ABC作为新建项目的项目代码。
ABC000 存放项目中的所有数据库。
ABCMAC 存放交叉数据库连接宏(inter-DB connection macros)ABCPIC 存放生成的平面图ABCISO 存放与ISODRAFT出图设置相关的数据3.在ABCISO子目录下面建立四个子目录。
LIS 存放详细列表。
STD 存放standard isometrics的设置文件SYS 存放system isometrics的设置文件UND 存放管段图图框4.设置环境变量指向上面建立的项目目录。
一般在\cadcentre\pdms11.2\evars.bat中设置环境变量。
编辑文件evars.bat,在文件最后添加下面四行后存盘。
set ABC000=D:\ PROJECT \ABC000set ABCISO=D:\ PROJECT \ABCISOset ABCMAC=D:\ PROJECT \ABCMACset ABCPIC=D:\ PROJECT \ABCPIC5.在Cadcentre程序组中运行Make PDMS Project项,启动项目生成程序。
它实际运行的是\cadcentre\pdms11.2\make.bat文件。
6.根据提示输入项目代码ABC。
7.出现 * 命令提示符后运行宏文件,键入$m \%PDMSEXE%/makemac.mac。
程序提示Creating System Virgin DB及其他几种数据库的模板,最终的提示信息是Creating module definitions referencing %pdmsexe%8.键入finish完成PDMS项目生成。
PDMS应用基础PDMS基础课程主要内容T主要模块(Module)T数据库基本概念T数据库管理器(Explorer) T视图控制T显示颜色设定主要模块主要模块(Module)T ADMINISTRATION项目管理T PARAGON元件库,等级库维护T DESIGN三维设计,多专业集成–Equipment–Pipework–Structure–Cable trays–HVAC–Hanger&SupportT DRAFT平竖面图生成T ISODRAFT轴测图生成数据库层次树状数据库T PDMS数据库是专门为工厂设计系统定制的,它基于树状结构搭建,易于使用和管理数据库管理器Explorer数据库基本概念T元素(Element)–树状数据库中的每一个节点叫做一个元素,每一个元素都有属性保存它的特征信息,不同类型(Type)的元素属性也不同T当前元素(CE)–current element,当前元素可以是一个元素,也可以是元素的集合DatabaseElementElement Element Element从属关系T Owner–上一级T Members–成员,下一级STABILIZEREQUIP PIPESSTEELEQUIP,PIPES…的OwnerSTABILIZER 的First MemberSTABILIZER 的Last Member设计模块数据库层次示例T 以示范项目中的稳定区设计模型为例W O R LDSITE/S TA B ILIZE RZO N EZO N EZO N EEQ U I EQ U IPIPE PIPE/C 1101/100-B -2C YLIN O ZZN B O X N C YLELB O FLA N VA LVB R A NB R A N/100-B -2-B 1/C 1101-N 1SU B E/STRUCTURE/EQUIPMENT/PIPES设计模块的数据库层次(hierarchy)T管理层次–WORLD装置的定位点–SITE一个分区或一个系统,一个项目中会有多个SITE –ZONE专业划分,而不是一个物理分区T其它主要层次–EQUIPMENT设备–STRUCTURE结构–PIPE管系进入PDMS进入PDMS项目T启动PDMS,进入示范项目‘SAM’–开始>程序>AVEVA>Vantage PDMS11.6>Run PDMS–不同的工作区(MDB)显示不同的内容–进入Design设计模块,Load from Macro Files表示进入缺省状态密码是大写的SAMPLE设计模块通用程序T通用程序General ApplicationT设计模块基本菜单模块切换生成修改删除查询设置工具显示开发工具集设计数据库管理器(Explorer)T显示数据库管理器–Display>BrowserT设计数据库管理器的作用–显示数据库的内容管理层次命名–修改命名一个项目中的命名不能有重复–记忆列表功能记忆列表内容的前后翻查–搜索名称完全一致,包括大小写–显示元素列表Draw List –显示参考元素列表Reference List记忆列表及搜索与当前设备连接的管道模型显示窗口T 模型显示窗口3D View显示状态栏显示工具栏模型显示区域Drawlist鼠标导航切换模块T切换模块设计专业转换模块Monitor T转换模块–工作区转换–用户转换–用户修改个人密码重新选择用户重新选择工作区PDMS视图操作显示设计模型T三种方法添加设计模型–Explorer中的右键快捷菜单–快捷按钮–拖放(PDMS11.6)。
PDMS培训教程第一部分基本操作首先登陆进入PDMS,登陆界面如下:图1 PDMS12.0登陆界面此次练习我们选择PDMS自带的示范项目Sample,用户名为SAMPLE,密码SAMPLE(注意是大写),MDB选择SAMPLE,Module选择Design模块,即三维设计模块。
进入系统后,首先看到的是Design模块的主界面:图2 Design模块主界面现在我们先对经常使用的菜单和工具栏,按钮认识一下:1.设计导航器图3 设计导航器设计导航器是设计过程中频繁使用的工具。
ZO NEI/100-B -2D ISHN O ZZN /C 1101-N 1SU B E/STRUCTURE图4 一个工厂(单元)的数据库层次结构WORLD —建立数据库时,自动生成一个WORLD 。
在导航器中只能看到一个WORLD 。
SITE —可以是整个工厂,也可以是一个单元,一个项目。
在一个PDMS 项目中可以有多个SITE 。
ZONE —它不是一个物理分区,而是同类元件的集合,可以当作一个逻辑组。
例如PIPE ZONE ,EQUIPMENT ZONE ,STRUCTURES ZONE 。
EQUIPMENT ,STRUCTURES ,PIPES —指定了类型和名字,这一级下面才是你在图形屏幕中能实际看到的实体。
PRIMITIVE —组成模型的基本体,包括box ,cylinder ,dish 等。
2. 视图控制工具栏图5 视图控制工具栏3. History 工具栏图6 History 工具栏History 工具栏主要用来显示当前元素(CE),CE 是PDMS 里一个非常重要的概念,很多操作都是针对当前元素(CE )的,请大家要牢记!所谓的CE=current element 表示当前元素,当前元素可以是一个元素(如一个弯头或一个法兰),也可以是元素的集合(如一根管线,一个设备)。
当前元素的更改可以通过设计导航器或Members 窗口实现,Members 窗口下面将讲到。
PDMS基础VANTAGE Plant Design System工厂三维安排设计治理体系PDMS差不多培训手册PDMS差不多数据中间自力的数据库构造,不依附第三方数据库。
重要长处1.三维实体建模。
2.专业多用户的工厂设计体系。
3.一个设计模型(数据库)能够输出多种设计图纸,申报。
4.等级驱动。
5.交互设计过程中,及时三维碰撞检查。
6.精确标注。
模型修改后,标注主动更新。
7.能强大年夜的可编程宏说话-PML。
重要模块(Module)1.DESIGN-三维模型设计DESIGN中又包含以下几部分:1) Equipment2) Pipework3) Structure4) Cable trays5) HVAC6) Hanger&Support2.DRAFT-平竖面图生成3.ADMINISTRATION-项目用户治理4.ISODRAFT-轴测图生成5.PARAGON-构造元件库PDMS数据库层次(Database hierarchy)隐藏在PDMS强大年夜功能后面的是简单和具有逻辑性的数据库构造,实际上PDMS 数据库是专门为工厂设计定制的,它基于严格的层次和树状构造搭建。
ZON EEQ U I IPIPE PIPE/100-B -2C YLID ISHN O ZZN B R A NB R A N/100-B -2-B 1/C 1101-N 1SU B E/STRUCTUREWORLD —建立数据库时,主动生成一个WORLD 。
在导航器中只能看到一个WORLD 。
SITE —可因此全部工厂,也可因此一个单位,一个项目。
在一个PDMS 项目中能够有多个SITE 。
ZONE —它不是一个物理分区,而是同类元件的集合,能够算作一个逻辑组。
例如PIPE ZONE ,EQUIPMENT ZONE ,STRUCTURES ZONE 。
EQUIPMENT ,STRUCTURES ,PIPES —指定了类型和名字,这一级下面才是你在图形屏幕中能实际看到的实体。
P D M S基本操作PDMS培训教程第一部分基本操作首先登陆进入PDMS,登陆界面如下:图1 PDMS12.0登陆界面此次练习我们选择PDMS自带的示范项目Sample,用户名为SAMPLE,密码SAMPLE(注意是大写),MDB选择SAMPLE,Module选择Design模块,即三维设计模块。
进入系统后,首先看到的是Design模块的主界面:图2 Design模块主界面现在我们先对经常使用的菜单和工具栏,按钮认识一下:1.设计导航器图3 设计导航器设计导航器是设计过程中频繁使用的工具。
ZON EI/100-B -2D ISHN O ZZN /C 1101-N 1SU B E/STRUCTURE图4 一个工厂(单元)的数据库层次结构WORLD —建立数据库时,自动生成一个WORLD 。
在导航器中只能看到一个WORLD 。
SITE —可以是整个工厂,也可以是一个单元,一个项目。
在一个PDMS 项目中可以有多个SITE 。
ZONE —它不是一个物理分区,而是同类元件的集合,可以当作一个逻辑组。
例如PIPE ZONE ,EQUIPMENT ZONE ,STRUCTURES ZONE 。
EQUIPMENT ,STRUCTURES ,PIPES —指定了类型和名字,这一级下面才是你在图形屏幕中能实际看到的实体。
PRIMITIVE —组成模型的基本体,包括box ,cylinder ,dish 等。
2. 视图控制工具栏图5 视图控制工具栏3. History工具栏图6 History工具栏History工具栏主要用来显示当前元素(CE),CE是PDMS里一个非常重要的概念,很多操作都是针对当前元素(CE)的,请大家要牢记!所谓的CE=current element表示当前元素,当前元素可以是一个元素(如一个弯头或一个法兰),也可以是元素的集合(如一根管线,一个设备)。
当前元素的更改可以通过设计导航器或Members窗口实现,Members窗口下面将讲到。
VPDVANTAGE Plant Design System工厂三维布置设计管理系统PDMS基础培训手册PDMS基础数据中心独立的数据库结构,不依赖第三方数据库。
主要优点1.三维实体建模。
2.专业多用户的工厂设计系统。
3.一个设计模型(数据库)可以输出多种设计图纸,报告。
4.等级驱动。
5.交互设计过程中,实时三维碰撞检查。
6.精确标注。
模型修改后,标注自动更新。
7.能强大的可编程宏语言-PML。
主要模块(Module)1.DESIGN-三维模型设计DESIGN中又包括以下几部分:1) Equipment2) Pipework3) Structure4) Cable trays5) HVAC6) Hanger&Support2.DRAFT-平竖面图生成3.ADMINISTRATION-项目用户管理4.ISODRAFT-轴测图生成5.PARAGON-构造元件库PDMS数据库层次(Database hierarchy)隐藏在PDMS强大功能后面的是简单和具有逻辑性的数据库结构,实际上PDMS数据库是专门为工厂设计定制的,它基于严格的层次和树状结构搭建。
WORLDSITE/STABILIZERZONEEQUI EQUIPIPE PIPE/C1101/100-B-2CYLIDISH NOZZNBOX NCYLELBO FLAN VALVBRANBRAN/100-B-2-B1/C1101-N1SUBE/S TR U C TU R EWORLD —建立数据库时,自动生成一个WORLD 。
在导航器中只能看到一个WORLD 。
SITE —可以是整个工厂,也可以是一个单元,一个项目。
在一个PDMS 项目中可以有多个SITE 。
ZONE —它不是一个物理分区,而是同类元件的集合,可以当作一个逻辑组。
例如PIPE ZONE ,EQUIPMENT ZONE ,STRUCTURES ZONE 。
EQUIPMENT ,STRUCTURES ,PIPES —指定了类型和名字,这一级下面才是你在图形屏幕中能实际看到的实体。
(产品数据管理)PDMS培训手册V ANTAGEIPE (Integrated Project Execution)项目一体化解决PDMS (Plant Design Management System) 工厂设计管理系统中文培训手册目录1.VANTAGE PE P&ID2.VANTAGE PDMS基础3.VANTAGE PDMS设备设计4.VANTAGE PDMS管道设计5.VANTAGE PDMS土建设计6.VANTAGE PDMS结构设计7.VANTAGE PDMS支吊架设计8.VANTAGE PDMS数据一致性检查9.VANTAGE PDMS碰撞检查10.VANTAGE PDMS出图11.VANTAGE PDMS出图管理12.VANTAGE PDMS项目管理13.VANTAGE PDMS AutoDraft 图纸转换14.VANTAGE PDMS Review 生成avi文件VPEVANTAGE Plant Design Management System 工厂设计管理系统P&ID工艺流程图培训手册目录一、VANTAGE PE P&ID简介 (2)二、软件安装、项目生成、AutoCAD配置 (2)三、操作绘制P&ID (9)四、VANTAGE PE PID项目设置 (13)五、菜单、工具条、符号定制 (30)六、Elite(报表生成) (32)七、原有P&ID升级 (32)一、VANTAGE PE P&ID简介VANTAGE PE P&ID是一套基于嵌入到AutoCAD、Microstation或Visio软件中以提高智能绘制P&ID图能力的软件,其主要功能如下:1.绘制工艺装置P&ID图。
2.与VANTAGE数据库交换数据。
3.数据的一致性校验。
二、软件安装、项目生成、AutoCAD配置VANTAGE PE P&ID的安装有以下几种方式:a.执行文件和项目配置文件都在服务器端。
PDMS培训教程第一部分基本操作首先登陆进入PDMS,登陆界面如下:图1 PDMS12.0登陆界面此次练习我们选择PDMS自带的示范项目Sample,用户名为SAMPLE,密码SAMPLE (注意是大写),MDB选择SAMPLE,Module选择Design模块,即三维设计模块。
进入系统后,首先看到的是Design模块的主界面:图2 Design模块主界面现在我们先对经常使用的菜单和工具栏,按钮认识一下:1.设计导航器图3 设计导航器设计导航器是设计过程中频繁使用的工具。
ZO N E ZO N E ZO N E I /100-B -2D ISH N O ZZ N /C 1101-N 1SU B E/STRUCTURE /EQUIPMENT /PIPES图4 一个工厂(单元)的数据库层次结构WORLD —建立数据库时,自动生成一个WORLD 。
在导航器中只能看到一个WORLD 。
SITE —可以是整个工厂,也可以是一个单元,一个项目。
在一个PDMS 项目中可以有多个SITE 。
ZONE—它不是一个物理分区,而是同类元件的集合,可以当作一个逻辑组。
例如PIPEZONE,EQUIPMENT ZONE,STRUCTURES ZONE。
EQUIPMENT,STRUCTURES,PIPES—指定了类型和名字,这一级下面才是你在图形屏幕中能实际看到的实体。
PRIMITIVE—组成模型的基本体,包括box,cylinder,dish等。
2. 视图控制工具栏图5 视图控制工具栏3. History工具栏图6 History工具栏History工具栏主要用来显示当前元素(CE),CE是PDMS里一个非常重要的概念,很多操作都是针对当前元素(CE)的,请大家要牢记!所谓的CE=current element表示当前元素,当前元素可以是一个元素(如一个弯头或一个法兰),也可以是元素的集合(如一根管线,一个设备)。
当前元素的更改可以通过设计导航器或Members窗口实现,Members窗口下面将讲到。
下面是PDMS编程介绍一个简单的MacroNEW EQUIP /FREDNEW BOXXLEN 300 YLEN 400 ZLEN 600NEW CYL DIA 400 HEI 600CONN P1 TO P2 OF PREV参数化宏Parameterized MacroNEW EQUIP /$1NEW BOXXLEN $2 YLEN $3 ZLEN $4NEW CYL DIA $3 HEI $4CONN P1 TO P2 OF PREV变量给属性赋值New PipeDesc 'My Description'Temp 100Pspec /A3BPurp PIPI!desc = desc!temp = temp!pspec = pspec!purp = purpNew PipeDesc '$!desc'Temp $!temp!pspec $!pspec!purp $!purp字符串方法实例!line = 'hello how are you'!newline = !line.after('hello').trim().upcase()q var !newline!newline = !newline.replace('how', 'where').replace('you', 'you?')定义函数define function !!Area( !Length is REAL, !Width is REAL ) is REAL !Area = !Length * !Widthreturn !Area $*函数!!Area有两个参数一个返回值Endfunction练习-新建函数计算园的面积,测试函数define function !!circleArea( !radius is REAL) is REAL!Area = PI * pow(!radius,2)return !AreaEndfunction条件判断语句(If Construct)!Type = Type!OwnType = Type of OwnerIF (!Type eq 'BRAN') THEN$P CE is Branch.ELSEIF (!OwnType eq 'BRAN') THEN$P CE is Branch member.ELSE$P CE is $!Type,Pls select Branch.ENDIF练习-条件判断!n = 0!type = typeif(!type eq 'BRAN') then!href = href!tref = trefif(!href.set()) then!n = !n + 1add hrefendifif(!tref.set()) then!n = !n + 1add trefendifendifif(!type eq 'NOZZ') then!cref = crefif(!cref.set()) then!n = !n + 1add crefendifendif$p Total $!n reference循环赋值!Total = 0Do !x From 1 To 100 By 1!Total = !Total + !xEnddo中断循环Break!Total = 0Do !x From 1 To 100!Total = !Total + !xIf(!Total gt 500) thenBreak $*或者Break if(!Total gt 500) EndifEnddo用skip 跳过奇数Do !x From 1 To 100If(Int(!x / 2) NE (!x / 2)) thenSkip $*或者Skip If(Int(!x / 2) NE (!x / 2)) Endif!Total = !Total + !xEnddo练习-跳转!n = 0label /start!type = typeif(!type eq 'BRAN') then!href = href!tref = trefif(!href.set()) then!n = !n + 1add hrefendifif(!tref.set()) then!n = !n + 1add trefendifendifif(!type eq 'NOZZ') then!cref = crefif(!cref.set()) then!n = !n + 1add crefgoto crefgolabel /startendifendif$p Total $!n reference错误提示Next$p OK错误处理(Error Handling)NextHandle (2,113)$p Last element.EndHandle$p OK数组(Array)!Str = 'Benz,Bmw,Audi'!BestCar = !Str.Split(',')Q var ! BestCar!BestCar[4] = 'Cadillac'!BestCar.Append('Lincoln')赋值循环Do valuedo !Name values !BestCar$p Array element is $!NameEnddo索引循环Do indicesdo !n indices !BestCar!Car = !BestCar[!n]$p Array element $!n is $!CarEnddo管道排序Var !Pipes Coll all Pipe for ceVar !Names Eval name for all from !Pipes!Name.sort().invert()Do !n indices !Namesreorder $!names[$!n] before $!nEndDo练习-选择一个设备,将所有Nozzle连接的管道添加进来Var !nozzles Coll all nozzle for ceDo !nozzle value !nozzlesAdd cref of $!nozzleEndDo文件处理(Handling Files)!Input = object FILE('%pdmsexe%abc.txt')!Lines = !Input.ReadFile() $* ReadFile将文件内容写到字符串数组中!ResultArray = ARRAY() $* 声明新数组do !Line VALUES !Lines!Column1 = !Line.Part(1)!ResultArray.Append( !Column1)Enddo!Output = object FILE('%pdmsexe%def.txt')!Output.WriteFile('WRITE', !ResultArray) $* WriteFile将数组写到文件练习-文件处理!Input = object FILE('%pdmsexe%abc.txt')!Lines = !Input.ReadFile()do !Line VALUES !Lines$p $!lineEnddo显示输出窗口var !isshown form _CADCBTH displayif(!isshown eq 'Off') thenshow _CADCREQendifvar !date clock datevar !time clock time$p Begin report at $!date $!time一个简单的对话框(Form)setup form !!helloTitle 'Hello'paragraph .Message text 'Hello world'button .bye 'Goodbye' OKexit缺省构造方法(Constructor method)setup form !!helloTitle 'Hello'paragraph .Message text 'Hello world'text .input 'Enter text' width 10 is string $*字符串类型的编辑框button .bye 'Goodbye' OKexitDefine method .hello() $*缺省构造方法,与Form同名,不带参数!this.input.callback = ‘!this.doinput()’ $*Callback指明响应操作endmethodDefine method .doinput() $*响应操作!this.message.val = !this.input.val $*!this = !!hello, val 表示value endmethod控件定位setup form !!helloTitle 'Hello'paragraph .Message text 'Hello world'text .input 'Enter text' at x0 ymax width 10 is stringbutton .bye 'Goodbye' at x0 ymax OKexit控件定义setup form !!addvolumntitle 'Add volumn'button .ce 'CE' at x0 ymax tooltip 'Select pipe'paragraph .cename text 'no name' width 15text .input 'Enter text' at x0 ymax width 10 is stringFrame .frame1 'Include' at x0 ymaxtoggle .bran 'Branch'toggle .equi 'Equipment'Exitlist .list 'Drawlist' at x0 ymax+0.3 width 18 height 5button .ok 'OK' at x0 ymax OKpath rightbutton .apply 'Apply' applybutton .cancel 'Cancel' Cancel!modifyOnIcon = !!pml.getpathname('modmodeon16.png')button .pick pixmap /$!modifyonicon at x0 ymaxexit设置控件初始值setup form !!addvolumntitle 'Add volumn'button .ce 'CE' at x0 ymax tooltip 'Select pipe'paragraph .cename text 'no name' width 15text .input 'Enter text' at x0 ymax width 10 is stringFrame .frame1 'Include' at x0 ymaxtoggle .bran 'Branch'toggle .equi 'Equipment'Exitlist .list 'Drawlist' at x0 ymax+0.3 width 18 height 5button .ok 'OK' at x0 ymax OKpath rightbutton .apply 'Apply' applybutton .cancel 'Cancel' Cancel!modifyOnIcon = !!pml.getpathname('modmodeon16.png') button .pick pixmap /$!modifyonicon at x0 ymaxexitdefine method .addvolumn()!this.bran.val = true!this.input.val = '1500'endmethod按钮的应用实例setup form !!addvolumntitle 'Add volumn'button .ce 'CE' at x0 ymax tooltip 'Select pipe'paragraph .cename text 'no name' width 15text .input 'Enter text' at x0 ymax width 10 is stringFrame .frame1 'Include' at x0 ymaxtoggle .bran 'Branch'toggle .equi 'Equipment'Exitlist .list 'Drawlist' at x0 ymax+0.3 width 18 height 5button .ok 'OK' at x0 ymax OKpath rightbutton .apply 'Apply' applybutton .cancel 'Cancel' Cancel!modifyOnIcon = !!pml.getpathname('modmodeon16.png') button .pick pixmap /$!modifyonicon at x0 ymaxexitdefine method .addvolumn()!this.bran.val = true!this.input.val = '1500'!this.ce.callback = '!this.ce()'endmethoddefine method .ce()!this.cename.val = fullnameendmethod对话框控制属性-Applysetup form !!addvolumntitle 'Add volumn'button .ce 'CE' at x0 ymax tooltip 'Select pipe'paragraph .cename text 'no name' width 15text .input 'Enter text' at x0 ymax width 10 is stringFrame .frame1 'Include' at x0 ymaxtoggle .bran 'Branch'toggle .equi 'Equipment'Exitlist .list 'Drawlist' at x0 ymax+0.3 width 18 height 5button .ok 'OK' at x0 ymax OKpath rightbutton .apply 'Apply' applybutton .cancel 'Cancel' Cancel!modifyOnIcon = !!pml.getpathname('modmodeon16.png') button .pick pixmap /$!modifyonicon at x0 ymaxexitdefine method .addvolumn()!this.bran.val = true!this.input.val = '1500'!this.ce.callback = '!this.ce()'!this.apply.callback = '!this.apply()' $*不关闭对话框endmethoddefine method .ce()!this.cename.val = fullnameendmethoddefine method .apply()!dist = !this.input.val!name = !this.cename.val$p CE is $!name ,Dist = $!distendmethod多选框的应用实例setup form !!addvolumntitle 'Add volumn'button .ce 'CE' at x0 ymax tooltip 'Select pipe'paragraph .cename text 'no name' width 15text .input 'Enter text' at x0 ymax width 10 is stringFrame .frame1 'Include' at x0 ymaxtoggle .bran 'Branch'toggle .equi 'Equipment'Exitlist .list 'Drawlist' at x0 ymax+0.3 width 18 height 5button .ok 'OK' at x0 ymax OKpath rightbutton .apply 'Apply' applybutton .cancel 'Cancel' Cancel!modifyOnIcon = !!pml.getpathname('modmodeon16.png')button .pick pixmap /$!modifyonicon at x0 ymaxexitdefine method .addvolumn()!this.bran.val = true!this.input.val = '1500'!this.ce.callback = '!this.ce()'!this.apply.callback = '!this.apply()' $*不关闭对话框endmethoddefine method .ce()!this.cename.val = fullnameendmethoddefine method .apply()!name = !this.cename.val!dist = !this.input.val!elements = array()if(!this.bran.val) thenvar !elements append coll all bran Within Volume $!name $!dist endifif(!this.equi.val) thenvar !elements append coll all equip Within Volume $!name $!dist endifvar !names eval name for all from !elementsdo !element value !elementsadd $!elementenddoendmethod列表框应用实例setup form !!addvolumntitle 'Add volumn'button .ce 'CE' at x0 ymax tooltip 'Select pipe'paragraph .cename text 'no name' width 15text .input 'Enter text' at x0 ymax width 10 is stringFrame .frame1 'Include' at x0 ymaxtoggle .bran 'Branch'toggle .equi 'Equipment'Exitlist .list 'Drawlist' at x0 ymax+0.3 width 18 height 5button .ok 'OK' at x0 ymax OKpath rightbutton .apply 'Apply' applybutton .cancel 'Cancel' Cancel!modifyOnIcon = !!pml.getpathname('modmodeon16.png')button .pick pixmap /$!modifyonicon at x0 ymaxexitdefine method .addvolumn()!this.bran.val = true!this.input.val = '1500'!this.ce.callback = '!this.ce()'!this.apply.callback = '!this.apply()' $*不关闭对话框!this.list.callback = '!this.doselection()'endmethoddefine method .ce()!this.cename.val = fullnameendmethoddefine method .apply()!name = !this.cename.val!dist = !this.input.val!elements = array()if(!this.bran.val) thenvar !elements append coll all bran Within Volume $!name $!dist endifif(!this.equi.val) thenvar !elements append coll all equip Within Volume $!name $!dist endifvar !names eval name for all from !elements!this.list.dtext = !namesdo !element value !elementsadd $!elementenddoendmethoddefine method .doselection()!name = !this.list.selection()$!nameendmethodAlpha ViewsSetup Form !!alphaviewtitle ' Input & Output'view .Input ALPHA hei 10 width 40channel REQUESTSchannel COMMANDSExitbutton .apply 'Apply' at x0 ymax Applybutton .Dismiss 'Cancel' at Xmax form-size Cancel ExitVolumn Viewsetup form !!poptestview .vol volume width 50 hei 9exitpath downbutton .press 'swap popup' call '!this.popswap()'menu .popmenuadd 'hello' ' 'add 'world' ' 'exitexitdefine method .popswap()!this.vol.popup = !this.popmenuendmethod。