分享
基于PDMS平台系统性二次开发的初步研究_黄捷.pdf
下载文档

ID:2249728

大小:971.98KB

页数:4页

格式:PDF

时间:2023-05-04

收藏 分享赚钱
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
基于 PDMS 平台 系统性 二次开发 初步 研究
科技视界Science&Technology VisionDOI:10.19694/ki.issn2095-2457.2022.30.03基于 PDMS 平台系统性二次开发的初步研究黄捷1肖韵菲1蔡鼎阳1苏应斌1陈超2(1.中国核动力研究设计院核反应堆系统设计技术重点实验室,四川 成都610213;2.四川电力设计咨询有限责任公司,四川 成都610041)【摘要】本 文 主 要 对 核 电 工 程 上PDMS的 二 次 开 发 做 出 系 统 性 的 分 析,对.NET语 言 和PML语 言 实 现 单 一 编 程 和混合编 程的 方 法 进行 了研 究,对PDMS二次 开 发提 供 的SDK接口 和 数 据 库 连接 做出 简 要 分 析 并研 究 其利 用 方式。【关 键词】PDMS;二 次开发;.NET和PML语言 混编0引言PDMS(Plant Design Management System)即工厂三维布置设计管理系统,该软件主要有以下功能特点:(1)实现全比例三维实体建模。(2)多专业组可以实时协同设计真实的现场环境,以建立详细的 3D 数字工厂模型。(3)交互设计过程中,在各专业设计之间实现元件的实时三维碰撞检查,整体上保证设计结果的准确性。(4)利用 PML 可编程宏语言,与通用数据库连接,实现开放的开发环境。在核电行业,随着 PDMS 在工程中的大量使用,各个设计院都有自己独立的需求,在 PDMS 平台上做出符合自己工程的二次开发,已经被越来越多的设计院所需要1。二次开发的种类大致包含:便利操作类2、批量操作类、结构分析模型接口类及载荷便利提资类等。但简单的二次开发已经不能满足这些需求,直接提供的 C+,C#的访问接口也不够全面,除此之外,某些操作功能需要用到多种语言混合编程。本文通过.NET 语言单一编程及.NET 和 PML 语言混合编程对 PDMS 平台的二次开发做了初步研究,下面进行简单的介绍说明。1PDMS二次开发可行性和知识储备1.1PDMS二次开发可行性PDMS 平台采用 PML语言编程,并预留了二次开发的接口。考虑采用以下两种方案对 PDMS 进行二次开发:(1)采用 PML 语言进行二次开发。输入命令“PML REHASH ALL”,然后在 PDMS 命令窗口就可以直接调用自己的命令。(2)采用.NET 语言进行二次开发。PDMS 针对.NET 语言提供了相关的动态链接库,如图 1 所示,提供了“IAddin”作为入口,如图 2 所示,同时提供了“WindowManager”、“CommandBarManager”和“Command”类来完成窗体,菜单和命令的接口。作 者 简介:黄 捷,工 程 师,研 究 方 向为 核 动力 装 置 设 计 工 作。新技术应用008Science&Technology Vision科技视界综上所述,通过 PML 语言和.NET 语言的单一编程或混合编程都可以实现 PDMS 的二次开发。图1PDMS动态链接库图2IAddin接口1.2相关的知识储备为实现 PDMS 平台的二次开发,需要掌握以下几个方面的专业知识。(1)软件开发:需要掌握 PML 语言和 C+,C#的基本语法,熟练使用 VS 平台。(2)PDMS 软件的操作:需要掌握 PDMS 动态链接库中接口和工程的元件库、点集库、属性库以及自定义属性的操作。(3)其他:熟悉结构分析软件、其他三维平台数据格式和图形显示规则。2.NET和PML语言编程分析2.1.NET语言单一编程采用.NET 语言对 PDMS 进行二次开发,首先定义一个“class”继承“IAddin”,以打开入口进入 PDMS,如图3 所示。图3继承IAddin在 Start 中,通过“CommandBarManager”和“Command”类实现加载自己定义的菜单和命令。在“CommandBarManager”中调用“AddUICustomizationFile(string pathname,string name)”接口可以快速地加载我们自己定义的菜单,然后在图 4“CommandManager”类中通过“CommandsCollection Commands”将我们自定义的命令注册到 PDMS 中,比如“mandManager.Commands.Add(command)”。加入了菜单,创建了命令,就新技术应用009科技视界Science&Technology Vision可以在自己的菜单命令下完成自己具体的功能开发。图4CommandManager类2.2.NET和PML语言混合编程在 2.1 节中说明了如何用.NET 语言开启 PDMS 的入口,加载菜单完成自己需求的开发,但是对于某些功能,如果我们单纯用.NET 语言来开发,将难以实现或无法实现,针对此类问题,考虑采用.NET 和 PML 语言混编的方法来解决,下面举例简单介绍一下。在进行混编的时候,我们通过“PMLNetCallable”这个类来实现.NET 和 PML语言之间的参数传递和结果获取。在引用“PMLNetCallable”这个类之后,创建一个自己的类用来处理相关数据。在.NET 语言中做了这个准备后,接下来就要处理 PML 文件中的算法以得到我们在.NET 中的数据。在 PML 文件的开头,利用“USING NAMESPACE”加入我们需要的空间,用“object”来存放我们新建的“TestPMLNet”,这样在后文的算法中我们就可以直接用“object”对象来访问或者返回我们需求的数据。在 PML 语言中,一个算法结束后,只需要在 PML 语言的结尾处,调用我们在“TestPMLNet”中留下的“SetResult”函数即可返回。在“SetResult”函数中输入在 PML 语言中定义的对象,即可以将该对象返回到.NET 语言中,从而进行后面的操作,完成混合编程。2.3PDMS自定义属性、实体开发在 PDMS 中,所有元件都有自己的属性,但是在开发需求的时候,往往会用到自定义属性或者自定义实体。自定义属性和自定义实体可以通过两种方式来实现:(1)直接文本导入。(2)进入“LEXICON”模块创建。在完成了自定义的创建之后,我们在.NET 语言中,通过“DbAttribute.GetDbAttribute”可以获得自定义的属性,通过“DbElementType.GetElementType”可以获得自定义实体。3混编的实例以及注意事项3.1混编的实例本节通过开发“桥架辅助工具”的实例演示如何利用.NET 和 PML 语言混编完成 PDMS 的二次开发。(1)第一步,编写 PDMS 入口,创建命令。创建一个“class”继承“IAddin”,实现 Start 和 Stop 方法,如上图 3所示。新技术应用010Science&Technology Vision科技视界(2)第二步,创建自己的菜单,以及口令。创建“Menu“和”Button”,并在“Button”的“command”中创建相关的命令,用于直接加载。(3)第三步,加载菜单,加入自定义命令。在第二步中生成的 UIC 文件,利用函数“commandBarManager.AddUICustomizationFile(string pathname,string name)”进行加载,然后将“button”的命令加入。编写一个自己的“class”来继承 PDMS 自身的“Command”类,然后重写“Command”的“Execute”函数即可完成自己的功能。最后在 PDMS 中加载上自己需要的菜单和功能。(4)第四步,对话框上的拾取功能,单纯用.NET 语言来实现比较麻烦,这里我们调用 PML 语言来实现混编。用 PML 语言来获取视图上的任何一点,编写好 PML 语言文本,然后在.NET 语言中,编写一个函数来运行这个 PML 语言文件,观察结果的返回,实时更新对话框中的内容。点击对话框中的拾取,完成拾取操作,则可以返回视图中任意位置的空间坐标,从而完成混编操作。3.2二次开发注意事项在 PDMS 的二次开发中,需要注意以下两点:(1)在加载菜单创建“DockedWindow”的时候,注意在调用“CreateDockedWindow;”的过程中“key”的命名,一旦冲突将不能加载程序。(2)在自定义时候,自定义属性的命名,避开在其他插件中已经使用过的。(3)在获取自定义的过程中,输入“GetDbAttribute(string name)”和“GetElementType(string name)”的时候,注意在自定义的名称前面加“:”。除此之外,在获取属性对应值的时候,注意类型和方法的匹配,比如“string”对应“GetString()”。4总结PDMS 采用 PML 语言编程,并提供了.NET 语言的动态链接库,无论采用那种语言,都能方便地完成二次开发,同时提供的“PMLNet”、“PMLNetUtilities”能方便地实现两种语言的混合编程,解决编程中的困难。PDMS 的二次开发具有多样性,可以满足核电工程上绝大多数的需求,同时每种需求都可以采用多种途径去解决,如此的开放性留给二次开发很大的空间。二次开发的插件能提供大量便捷式的操作,提高工作效率,有效缩短工程的周期。上述文章不能详尽PDMS 二次开发遇到的所有问题,其存在的问题有待进一步研究、完善和相关的回归测试。【参考文献】1覃路,王佺.PDMS二次开发在核电站工程经济中的应用J.AVEVA2012论文专刊,2012:109-114.2朱威力,金普新.核电工程支吊架三维设计软件的二次开发与应用J.AVEVA2012论文专刊,2012:173-180.新技术应用011

此文档下载收益归作者所有

下载文档
你可能关注的文档
收起
展开