PDMS二次开发(一)——Hello World for PDMS

零零碎碎地摸索了一个多月,用.net开发出了一个小工具,开发过程基本就是在各种坑和弯路中来回碰撞,做好以后有一些心得体会与大家分享。

1.NET的开发方式

AVEVA提供.Net的二次开发接口,可使有C#编程经验的软件工程师使用Visual Studio来对AVEVA的工厂(Plant)设计和船舶(Marine)设计产品进行二次开发。使用PML二次开发要受限于AVEVA提供的PML对象,可使用的资源有限。[^1]

使用.Net来进行二次开发,不仅可以利用AVEVA提供的类库,还可以利用很多资源,开发效率更高。相比于PML这种脚本类型的语言,.NET优势十分明显,不完全地列举几个方面:

  1. 数据处理能力,特别借助.NET成熟的并发处理方案,使大批量高并发的数据处理成为可能,可以在批量出图、批量数据修改或运算时提高性能;
  2. 连接第三方数据库,根据不同的业务场景可以选用不同类型的数据库,而.NET基本具备了对所有主流数据库的访问能力,使得PDMS的数据与各类数据库系统的交互成为可能,进一步可以对PDMS的工程数据实现数据挖掘,让他们不再是躺在元件库里的一个符号,变为更有价值的数据;
  3. 界面的友好性,不再是pml那种VB或者dephi风格的界面,流行的界面技术都可以被使用,例如ribbon菜单等组件,使工具软件界面更加漂亮友好,功能区域布局更加合理,在强调用户体验的时代,这些特性十分重要。
  4. 报表定制,因为.NET接口的开放,使得PDMS的报表可以通过类似水晶报表这样的工具对模板进行订制,让用户不编写代码即可自主控制报表格式,当然也可用通过Aspose或者NPOI这样的组件直接写好固定格式的报表样式,减少用户的订制工作,直接一键出成品文件;
  5. 高级编程语言特性,.NET开发本身具有一些PML没有的高级特性。真正的面向对象编程、内存控制、借助HashTable等提高数据检索和命中的速度,提高数据遍历等基本动作的速度;
  6. 外部资源广阔,可用引用大量的第三方.NET插件,实现更强大的功能和更好的用户体验。

引入微软的.NET技术来对AVEVA进行二次开发,为AVEVA的二次开发打开了一个全新的世界,也便于其它系统与AVEVA产品的集成。.NET API可以访问产品的各方面,包括图形用户界面(Graphical User Interface),数据库(Database)和几何库(Geometry)。[^2]

模型数据借助.NET的接口可以转换成数据库中的关系型数据,将固化在PDMS软件中的工程数据,转移到更广阔的应用领域。

.NET二次开发的两种方式。一种是使用.NET插件;另一种是使用PML.NET。两种方式的机制都可以使用程序被动态加载到使用的模块中。我采用的是纯.NET开发的方式,熟悉PML的人可能更喜欢PML.NET的方式。

2.开发生态

以下观点仅适用于个人开发者

2.1市场

有不少做这个生意的公司,也有很多成熟的产品,例如出图、支吊架等,整个生态给我感觉就是专业性非常强,但是非常小众,基本就是前AVEVA或者设计院的几个大神。蛋糕很小,个体开发者没有清晰的盈利模式,早期开发者基本都已经完成了技术积累,有一些已经开了公司。

2.2通用性

有些类型的工具不容易开发成通用型的,因为各家的数据格式定制方式不同,比如材料描述DETEXT,很多用户要分列显示,设置了不同分隔符和字段顺序,AVEVA有Sample标准项目,但是有的用户并没有按照官方推荐的数据结构进行订制,数据结构太灵活本来是个优点,在这里变成劣势;开发基本围绕自己的订制方式来进行,要想开发统一的工具插件,必须对数据结构十分熟悉,而且具备灵活的订制功能,对开发者的工程经验和PDMS的掌握程度有很高的要求。

3.技术支持

3.1现状

技术支持基本一片荒芜,只能依靠官方英文手册,海川、马后炮基本查不到二次开发有用的资料,整个论坛都是求破解和免费工具的帖子、百度里搜PDMS二次开发,有效内容第一页都填不满,这可能就是目前国内PDMS开发现状的缩影,印证了PDMS开发在国内的小众与薄弱,虽然有少数大神,但是因为行业因素或开发专业性太强等原因,使得做的很精深的产品和队伍在互联网存在感很低,给人感觉是都在低调地悄悄赚钱,有的可能埋在设计院内部没有暴露出来。

3.2没人扶你上驴

新人基本就是只能自己对着AVEVA官方PDF一点点摸索了,如果有大神带是最好,但现状是首先你要能找到一个大神,其次大神多数已经一骑绝尘,望不到背影。

4.应用场景

4.1自身功能加强

PDMS自身功能加强,借助.NET开发用户体验更好的功能模块,借助第三方数据库,实现设计管理功能,比如公共数据的查找和提取,版本、人员信息的记录,日志管理,设计变更管理等。应用层复杂逻辑管理功能都可以借助自主开发实现,批量数据设置、Element元素的选中、修改、Attribute元素的拾取、赋值等功能,都可以通过二次开发提高用户体验;

4.2扩展

与其它软件的接口、集成甚至是取代,比如PDMS与CAESAR II的接口,解决自动输入条件到CAESAR II的需求,其实我们还可以做的更多,数据输入后的处理和输出借助.NET可以开发出独立的软件或者PDMS插件,CAESAR II作为一个应用软件,理论上完全可以用.NET实现出来,业务领域上会有一些难点,但是从IT角度出发没有任何障碍。类似的软件有很多,只要是输入-运算-输出类型的软件,都可以用这种开发方式进行扩展。
国外有小团队开发Revit的Addin插件,功能强大到取代了专业软件的部分功能,成为具有专业软件功能的原生插件,这是我们值得借鉴的地方。

4.3系统集成

与ERP系统的集成也成为可能,比如材料元件库与材料编码、采购包、费用代码等管理属性从模型库中就做好关联,在材料表数据产生的时候,这些代码全部连带一起产生,为ERP管理系统提供数据源,用于采购和费用管理;材料特性库中的材料尺寸、重心等数据可以发送给物流仓储管理系统,物流运输、仓储等专业需要这些信息。在未来这是一种打通设计协同与ERP管理数据流的方法,通过系统集成,提高数据输入、输出的自动化程度,数据的唯一性、准确性也得到保证。还有更多可以从工程模型库中挖掘的数据,有待我们继续研究。

5.补充思考

5.1未来看思路

对于工程公司来说是这种开发还是属于比较有干货的创新,但是多数停留在解决实际模型布置中遇到的问题和小功能需求上,不能形成真正的商业产品。只有少数嗅到商机的人在静悄悄地持续投入。我觉得PDMS开放.NET接口相当于打开了一座金矿,有大量的功能可以完善或者创新,大量的第三方开发资源可以引用,未来能做什么取决于我们能不能想到好点子,而不再是PML语言的限制。

5.2关于Hello World

我的HelloWorld是一个根据AEVEA-Sample项目数据结构生成MTO的小工具集,只是体现了一下我们能做什么,有大量的细节可以打磨,比如计算一个管子的直管段有多长,每个元件带有一堆跟管段长度有关的属性(见下表)。

Attribute NameData TypeDescription
ATLErealLength of arrive implied tube.
LTLErealLength of leave implied tube.
MTCLrealMaterial tube centreline length.
STLErealLength of leave straight tube.
STAPrealLength of arrive straight tube.

哪个是我们需要的,问了一圈也没有人能解答。再比如螺栓的计算,对夹的法兰面怎么避免把螺栓重复计算两次,如果直接总数减半的话,管线起点或者终点的端部法兰螺栓就少了一半,这样的涉及工程经验问题实在是太多了,无形中抬高了开发的门槛。

最后,给作品录了一个视频,为了提高逼格,增加了五毛特效和音乐。

https://v.qq.com/x/page/l0894tdgcy8.html

引用:
[1][2]:AVEVA官方文档《Net Customisation User Guide.pdf》

欢迎关注公众号WHCLGL,一起讨论数字化工厂和全生命周期材料管理知识
在这里插入图片描述

  • 6
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
很兴为您解答关于PDMS教程的问题。PDMS是由AVEVA公司开发的三维设计软件,是石油、化工、制药等行业中广泛使用的设计软件之一。 以下是一个从入门到精通的PDMS教程,包括二次开发: 1. 入门:首先需要了解PDMS的基本概念和操作方法。可以通过阅读PDMS的官方文档或者参加培训课程来学习。掌握PDMS的基础知识后,可以开始设计简单的三维模型。 2. 进阶:深入了解PDMS的功能和特点,掌握更高级的建模技巧和设计方法,以及如何进行数据管理和版本控制。此外,还需要学习如何使用PDMS的各种工具和插件,以提高工作效率和质量。 3. 精通:在掌握PDMS的基础知识和进阶技能的基础上,需要深入研究PDMS的底层原理和算法,以便更好地进行二次开发和定制化。此外,还需要掌握PDMS与其他软件的集成和数据交换,以便更好地与其他工具协同工作。 4. 二次开发PDMS提供了一些API和开发工具,可以进行二次开发和定制化。可以使用PDMS的官方API来编写自己的插件和脚本,或者开发自己的应用程序和工具。此外,还可以使用PDMS的官方开发工具,如PML和MDS,来进行更高级的定制化和二次开发。 总之,要成为一名PDMS专家,需要不断学习和提高自己的技能,并深入了解PDMS的底层原理和算法,以及二次开发和定制化的技术。希望这个教程能对您有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiangcns

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值