PML调用PDMS内核命令研究

一、 概述

本文介绍通过PMLNET包装PDMS的内核命令, 实现pml调用常用的内置Command命令。

 

二、 实现方法

写一个PMLNET的dll, 开放一个callback(string commandKey)函数给pml。代码如下:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Reflection;
 6 
 7 using Aveva.ApplicationFramework;
 8 using Aveva.ApplicationFramework.Presentation;
 9 using Aveva.Pdms.Presentation;
10 using Aveva.PDMS.PMLNet;
11 
12 [assembly: PMLNetCallable()]
13 namespace wttech
14 {
15     [PMLNetCallable()]
16     public class PmlCoreCall
17     {
18         [PMLNetCallable()]
19         public PmlCoreCall(){ }
20         [PMLNetCallable()]
21         public void Assign(PmlCoreCall that) { }
22         [PMLNetCallable()]
23         public void callback(string commandKey)
24         {
25             CommandManager.Instance.Commands[commandKey].Execute();
26         }
27     }
28 }

 

三、 PML调用实例

1 import 'PmlCoreCall'
2 handle any 
3 endhandle
4 using namespace 'wttech'
5 !corecall = object PmlCoreCall() 
6 !corecall.callback('AVEVA.View.WalkTo.DrawList')

 

AVEVA.View.WalkTo.DrawList为PDMS的内核命令, 在这里PmlCoreCall对象为PMLNET对象, 用其callback函数将Command的key传递进去,执行内核命令。

 

四、 总结

通过上面的实例我们看到PML可以通过PMLNET调用C#代码的形式对他进行扩展。实现了PML调用内核命令的需求。

 dll下载链接: https://files.cnblogs.com/files/jevon1982/PmlCoreCall.zip

posted on 2018-08-24 12:37  Jevon先生  阅读(1883)  评论(0编辑  收藏  举报

导航