上期我们谈谈了谈EPLAN电气制图二次开发,制图软件EPLAN的安装和破解,今天我们来说说使用C#语言,如何实现Api插件及菜单,今天它来了!!!

关于项目环境的搭建请参考:https://blog.csdn.net/Laity07/article/details/109215518

下面我们一起来看看

我们就以我写的一个例子来看

首先建立一个这样的类,

using Eplan.EplApi.ApplicationFramework;
using Eplan.EplApi.DataModel;
using Eplan.EplApi.HEServices;
using Frm_Eplan_EplanApi;
using Frm_Eplan_EplanApi.ViewModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Forms; namespace Eplan_EplanApi
{
public class MyAction : IEplAction, IEplActionEnable
{
//public delegate //PathFileAcross pathFile;
public bool Execute(ActionCallingContext ctx)
{ return true; } public bool OnRegister(ref string Name, ref int Ordinal)
{
Name = "功能配置";
Ordinal = 20;
return true;
} public void GetActionProperties(ref ActionProperties actionProperties)
{
// actionProperties.Description = "Action test with parameters.";
} public bool Enabled(string strActionName, ActionCallingContext actionContext)
{
return true;
}
}
}

MyAction

第二步,我们再建一个这样的类

using Eplan.EplApi.Base;
using Eplan.EplApi.Gui;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using ContextMenu = System.Windows.Forms.ContextMenu; namespace Eplan_EplanApi
{
public class AddInModule : Eplan.EplApi.ApplicationFramework.IEplAddIn
{
public bool OnExit()
{
return true;
}
public bool OnInit()
{
return true;
} public bool OnInitGui()
{
//菜单栏菜单
Eplan.EplApi.Gui.Menu oMenu = new Eplan.EplApi.Gui.Menu();
//一级菜单
uint num1 = oMenu.AddMainMenu("Test", Eplan.EplApi.Gui.Menu.MainMenuName.eMainMenuHelp, "项目配置", "MyAction", "项目配置", 0); #region 单功能配置显示二级菜单
//我们在一级菜单的基础上新增新的菜单,并在二级菜单显示新的子菜单
//此处的“功能配置”为二级菜单名称
uint menu3 = oMenu.AddPopupMenuItem("功能配置", "此处都为你二级菜单下子菜单的Action类(例如:电源进线)", "电源进线", "电源进线", num1, 1, false, false);
oMenu.AddMenuItem("控制电源", "此处都为你二级菜单下子菜单的Action类(例如:控制电源)", "控制电源", menu3, 1, true, false);
#endregion
return true;
} public bool OnRegister(ref bool bLoadOnStart)
{
bLoadOnStart = true;
return true;
} public bool OnUnregister()
{
return true;
}
}
}

AddInModule

最后一定要把  右击-打开项目属性的程序集名称修改为这样的格式 EPLAN.EplAddin.MyAddIn

这些都设置好了,我们下面看看将生成的.dll的程序集加载到EPLAN中后的效果吧

最后这个东西吧,还是要好好阅读API文档,看懂了就明白了。

https://blog.csdn.net/Laity07/article/details/109236645

Nothing that has meaning is easy.
凡是有意义的事都不简单。

使用C#语言,如何实现EPLAN二次开发 Api插件及菜单展示的更多相关文章

  1. 自学Zabbix14.1 二次开发API

    点击返回:自学Zabbix之路 点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 自学Zabbix14.1 二次开发API Zabbix API我们可以做很多,自己开发web界面. ...

  2. openfire spark 二次 开发 服务插件

    ====================  废话 begin   ============================ 最近老大让我为研发平台增加即时通讯功能.告诉我用comet 在web端实现即 ...

  3. 个人微信号二次开发SDK协议,个人微信号二次开发api接口

    通过这个API接口可以做什么? 通过我们提供的API接口您可以开发: 工作手机(如:X创,X码,XX管家等) 微信群讲课软件(如:讲课X师,一起X堂等) 微信社群管理软件(如:小X管家,微X助手等) ...

  4. 个人微信二次开发API接口

    通过这个API接口可以做什么? 通过我们提供的API接口您可以开发: 工作手机(如:X创,X码,XX管家等) 微信群讲课软件(如:讲课X师,一起X堂等) 微信社群管理软件(如:小X管家,微X助手等) ...

  5. 使用C#/.net语言进行ProE/Creo二次开发

    随便哪个版本的Visual studio 设置系统环境变量 通常这个环境变量在安装ProE的时候如果选择安装VBAPI就会自动设置 注意32位和64位操作系统路径是不同的.我的是64位操作系统. 然后 ...

  6. AutoCAD.NET二次开发:创建自定义菜单的两种方法比较

    目前我已经掌握的创建CAD菜单方法有两种: COM方式: http://www.cnblogs.com/bomb12138/p/3607929.html CUI方式: http://www.cnblo ...

  7. AutoCAD.NET二次开发:创建自定义菜单(COM)

    当我们要在CAD中创建自定菜单时,可以引用COM组件来实现. 下面是实现方式: 1.新建类库项目,并引用CAD目录(我这里用的是CAD2008)下的acdbmgd.dll.acmgd.dll,并将引用 ...

  8. AutoCAD.NET二次开发:创建自定义菜单(AcCui)

    从CAD2007之后,Autodesk提供了一个新的程序集AcCui.dll,使用这个程序集,我们可以方便地做一些界面方面的操作,比如创建自定义菜单. 下面介绍一下菜单的创建过程: 1.在项目中添加引 ...

  9. NX二次开发-自定义添加右键菜单RegisterConfigureContextMenuCallback

    首先声明这个知识我以前不知道,是夏天的时候看到别人在唐工的QQ群里问的,唐工说西门子官方有这个例子.那个时候我因为在忙其他事情,也就没去研究那个右键菜单到底是怎么做的.关于自定义添加右键菜单Regis ...

随机推荐

  1. SpringMVC探秘-请求之路

    SpringMVC探秘-请求之路 开始 今天来分析一下SpringMVC的原理,探究SpringMVC如何把请求传递到每个Controller的方法上,从Servlet到Controller,一个请求 ...

  2. 36、python并发编程之多线程(操作篇)

    目录: 一 threading模块介绍 二 开启线程的两种方式 三 在一个进程下开启多个线程与在一个进程下开启多个子进程的区别 四 练习 五 线程相关的其他方法 六 守护线程 七 Python GIL ...

  3. opencv笔记--Active contours

    Active Contours 也称作 Snake,通过定义封闭区域曲线的能量函数,并使其最小化得到最终曲线. Active Contours 被用作物体边界精确定位上,opencv 给出了一个实现, ...

  4. Solution -「SDOI 2017」「洛谷 P3784」遗忘的集合

    \(\mathcal{Description}\)   Link.   给定 \(\{f_1,f_2,\cdots,f_n\}\),素数 \(p\).求字典序最小的 \(\{a_1,a_2,\cdot ...

  5. 还不会使用linux?快来通过VMware安装centos系统吧~

    1.前言 Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发, ...

  6. 【基础知识】CPU指令集

    计算机指令就是指挥机器工作的指示和命令,程序就是一系列按一定顺序排列的指令,执行程序的过程就是计算机的工作过程.指令集,就是CPU中用来计算和控制计算机系统的一套指令的集合,而每一种新型的CPU在设计 ...

  7. 8.StringTable(字符串常量池)

    一.String的基本特性 String:字符串,使用一对 "" 引起来表示 String s1 = "atguigu" ; // 字面量的定义方式 Strin ...

  8. c++刷leetcode记录

    #include<iostream> #include<sstream> #include<vector> std::vector<int> split ...

  9. tensorflow_keras_预训练模型_Applications接口的使用

    在很多复杂的计算机视觉问题上,我们需要使用层次相对较深的卷积神经网络才能得到好结果,但是自己从头去构建卷积神经网络是一个耗时耗力的事情,而且还不一定能训练好.大家通常用到最多的技巧是,使用" ...

  10. jmeter-获取系统最大并发数

    问题:有一个页面,需要测试一下最大支持多少用户并发? 此时需计算的是最大用户并发数,强调的是同时操作,也可以理解为同时发起请求: 针对这个问题,我们可以通过rps定时器或阶梯加压线程组测试每秒最大的请 ...