找回密码
 注册有问题进QQ群591484440

QQ登录

只需一步,快速开始

查看: 20136|回复: 49

[二次开发教程] AVEVA PDMS 开发 PML语言 快速入门引导

 火... [复制链接]

签到天数: 11 天

[LV.3]瞎扑签到3级

高级会员

积分
1020

瞎扑会员瞎扑程序员瞎扑元老

发表于 2012-9-27 16:55:38 | 显示全部楼层 |阅读模式
本帖最后由 seven 于 2012-9-27 17:04 编辑

一、引言近来网上有些朋友通过Email和QQ联系到我,和我聊他们公司中AVEVA Marine/Plant(PDMS)的使用情况和有关二次开发的问题。有的公司也许是由于船东或业主的要求不得已才用,也只是建模型,做碰撞检查之用,没有充分发挥AVEVA软件的作用,没有理解生产工具这个概念,没有使之转化为生产力,提高生产效率。觉得很好玩,从政治书中摘出以下内容:
      生产力与生产关系矛盾运动的规律,是人类社会发展的基本规律。
      生产力是人类在生产实践中形成的改造自然和影响自然以使其适应社会需要的物质力量。生产力的基本要素有:
      l 劳动资料:也称劳动手段,是人们在劳动过程中所运用的物质资料或物质条件,其中最重要的就是生产工具。
      l 劳动对象:一切自然物质都是可能的劳动对象,其中引入生产过程的部分是现实的劳动对象,包括生产深度加工的对象。劳动对象是现实生产的必要前提,它从一个侧面反映和体现生产力发展水平;
       l 劳动者:劳动者是具有一定生产经验、劳动技能和知识,能够运用一定劳动资料作用于劳动对象、从事生产实践活动的人。一般包括体力劳动者和脑力劳动者。劳动者是生产中最活跃的因素,人类智慧和能力的发展决定着对物质资源开发的深度和广度。劳动资料和劳动对象只有与劳动者的创造活动结合起来,才能变为现实的生产力。所以,人才资源是第一资源。
       l 生产力中还包含着科学技术。科学技术是先进生产力的集中体现和主要标志,是第一生产力。科学技术能够应用于生产过程、渗透在生产力诸要素之中而转化为实际生产能力。科学技术上的发明创造,会引起劳动资料、劳动对象和劳动者素质的深刻变革和巨大进步。科学应用于生产的组织管理,能够大幅提高管理效率。科学技术为劳动者所掌握,可以极大提高劳动生产率。在现代,科学技术发展日益成为生产发展的决定性因素。
       AVEVA公司的软件只是个生产工具,但是国内许多公司没有使其与劳动者结合,未能转化为现实的生产力。原因当然是多方面的,但归根到底还是由于AVEVA太贵。衷心希望国产三维CAD/CAM软件能够发展起来,不能让钱都给老外赚去,这也许是“落后就要挨打”的一种体现。
二、PML介绍
         PML是指the AVEVA Programmable Macro Language。使用PML可以根据需要灵活开发出自己的程序。PML功能强大,简单易学,与PDMS无缝连接,简化用户界面(GUI)的开发。包括管子创建、部件创建修改等许多程序都是用PML写的,且AVEVA的这些源代码也是可以查看的。当理解PML后,可以查看这些源码,加深对AVEVA软件的理解。
        PML2
是基于面向对象的解释型语言,而不是面向对象的语言。因为面向对象的语言支持类、继承、多态的概念,而PML不支持继承,但是可以对象组合。这倒也符合GoF的《Design Pattern》中的一个建议:Favor object composition over class inheritance.优先使用对象组合而不是继承。
         PML中的对象(Objects)有成员变量和成员函数,即属性和方法。没有私有的概念(private),即所有的成员变量和函数都是公有的(public)。所有变量的作用域只有两种:全局变量和局部变量(Global and Local)。PML函数参数都是传引用的(passed-by-reference)而不是传值的方式(passed-by-value),所以可以通过参数返回改变的值。在C/C++语言中,这两种方式都可以使用。 在学习过程中,若你会使用C/C++Java,则通过对比会更快的掌握PML
三、推荐编程工具
         推荐一个替代记事本的强大的编辑工具:EditPlus。主要是因为EditPlus可以基于自定义语法文件为其他编程语言的语法高亮。

可以为编辑PML设置语法高亮及自动完成功能。EditPlus不是免费的,但可以从其官方网站上下载试用版:http://www.editplus.com/。 若需要PML的语法高亮及自动完成的配置文件或其配置方法,都可以与我联系。 当然,还有许多这种文本编辑工具,若可以语法高亮,编写代码时要舒服很多,可根据实际情况选用。
四、第一个程序:
        Hello World!
程序员喜欢的一本书《The C Programming Language》中以一个显示“Hello World”的程序已经成为程序设计书中的经典。这里也以显示一个“Hello World!”为例开始PML的学习。程序代码如下所示: *
运行成功后,将会出现如下的程序界面

为了运行成功,需要了解以下内容:
1. PML程序文件存放位置:PML程序文件的位置由evars.bat文件中设置的,也可以根据实际情况设置成别的路径,默认设置路径为:

一般默认的设置为:X:\AVEVA\Marine\OH12.0.SP6\PMLLIB
2. 规范的文件扩展名: l .pmlfnc —— PML Function definition files 函数定义文件; l .pmlobj —— PML object type definition files 对象定义文件; l .pmlfrm —— PML Form definition files 对话框定义文件; Note: All filename extensions must be entered in lower case. 注:所有文件的后缀名必须是小写字母。
3. 文件夹命名约定:将以上三种文件分别放在三个不同的文件夹中,这三个文件夹分别是:forms,functions,objects,如下图所示。

当然,这只是个约定,也可以将所有类型的文件都放在一个文件夹中。
4. PML索引文件:pml.index。所有的PML程序文件都可以在这PMLLIB目录下的这个文件中找到。如果这个文件中没有那个文件,则该文件就无法被识别。把PML程序文件加入到这个文件也是通过命令自动完成的,命令为:pml rehash all。 了解以上内容后,我们来具体实现一下: 首先:将语法高亮显示的程序代码保存为Hello.pmlfrm
其次:在路径:X:\AVEVA\Marine\OH12.0.SP6\PMLLIB 下新建一个文件夹名为:AddIns,以后做的PML都放在这个文件夹中。按照约定,在AddIns文件夹中再新建三个文件夹:forms,functions,objects,并把Hello.pmlfrm放到forms文件夹中。如图所示

然后:进入Outfitting模块或Design模块,在命令窗口中输入命令:pml rehash all。 最后:也是在命令窗口中输入命令show !!Hello来显示出对话框。
如图所示:

应该已经可以显示出下图中的对话框啦。如果没有显示或有什么问题,可以与我联系。
五、结束,也是开始……希望以上内容对你学习PML有所帮助。但是,作为快速入门引导,不可能涵盖所有的PML内容。这里介绍一些附加的资源信息,也是我学习的信息来源。若有任何问题,总可以从这些资源中找到答案。
l PML基础,王元 2005.11.19。好像是AVEVA中国的官方培训资料,可以从网上轻松下载得到。我当时也就是看了一遍就入门了,也许是会C/C++,其实本质上还是因为PML很简单易学。
l AVEVA的帮助文档:Software Customisation Guide。看了这个以后,你就会觉得上面那本书里面的内容就是这个文档的简单翻译。这个Guide更全面,推荐看一下,也顺便学习一下英文。
l AVEVA的帮助文档:Software Customisation Reference Manual。本文档主要为PML内置对象的属性和方法说明。 l 源代码。在AVEVA安装目录的PMLLIB目录下面有很多源代码,这些代码编写规范,可作为学习对象。如通过在管路上添加部件功能源代码的学习,可以学到很多有用的东西。 利用这些资源,学习PML应该已经足够。希望通过学习,可以开发出一些符合公司要求的高效的程序,提高工作效率。  
若有任何问题或建议,可以与我取得联系,电子邮箱为:eryar@163.com
过年啦!!!!

该用户从未签到

新手上路

积分
79
发表于 2012-11-4 20:33:04 | 显示全部楼层
很深刻,读完之后很有启发,感谢楼主。
回复 支持 反对

使用道具 举报

签到天数: 131 天

[LV.7]瞎扑签到7级

超级会员

积分
3043
发表于 2012-11-7 08:54:35 | 显示全部楼层
写得非常好,受用了
人太少同样的意见他已经
回复 支持 反对

使用道具 举报

该用户从未签到

新手上路

积分
18
发表于 2012-12-3 11:06:34 | 显示全部楼层
还没有入门,多学习学习
回复 支持 反对

使用道具 举报

签到天数: 1 天

[LV.1]瞎扑签到1级

新手上路

积分
30
发表于 2012-12-13 11:30:07 | 显示全部楼层
写得不错   就是编程基础太差了....
今天很开心!
回复 支持 反对

使用道具 举报

签到天数: 3 天

[LV.2]瞎扑签到2级

新手上路

积分
176
发表于 2012-12-14 17:02:13 | 显示全部楼层
DINGYIXIA
111111111112啊
回复 支持 反对

使用道具 举报

签到天数: 2 天

[LV.1]瞎扑签到1级

新手上路

积分
46
发表于 2012-12-22 00:19:58 | 显示全部楼层
感谢楼主
早上好
回复 支持 反对

使用道具 举报

该用户从未签到

新手上路

积分
32
QQ
QQ
QQ
发表于 2013-1-10 10:22:59 | 显示全部楼层
感谢楼主,受用了{:soso_e113:}
回复 支持 反对

使用道具 举报

该用户从未签到

新手上路

积分
90
发表于 2013-1-16 16:52:28 | 显示全部楼层
楼主辛苦了,谢谢
回复 支持 反对

使用道具 举报

该用户从未签到

新手上路

积分
27
发表于 2013-1-24 15:26:57 | 显示全部楼层
看着看着,有种看不下去的感觉
回复 支持 反对

使用道具 举报

本版积分规则

QQ|手机版|关于我们|Archiver|手机版|小黑屋|工程G3D ( 鄂ICP备16022302号-2 )

GMT+8, 2024-4-19 13:17 , Processed in 0.343876 second(s), 30 queries .

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

快速回复 返回顶部 返回列表