Solidwoks PDM Add-ins (C#) 创建Add-ins

2023-10-12 09:10
文章标签 c# 创建 .net add pdm ins solidwoks

本文主要是介绍Solidwoks PDM Add-ins (C#) 创建Add-ins,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本主题演示如何在Microsoft Visual Studio Enterprise 中使用Visual C#创建并调试add-in。

注意: 因为 SOLIDWORKS PDM Professional无法强制重新加载在 .NET 中编写的add-in程序,则必须重新启动所有客户端计算机,以确保使用最新版本的add-in程序。

  • 启动 Visual Studio 
  • File(文件) > New(新建) > Project(项目) > Visual C# > Windows > Class Library(类库)
  • 选择版本。更多信息见 Using .NET Framework for Add-in Applications 
  • 在“名称”中键入项目的名称。
  • 单击浏览并选择创建项目路径。
  • 单击确定(ok)。

  • 修改类名(可选)

  • 在“解决方案资源管理器”中右击项目名称,然后单击“添加引用”。 
    • 单击左侧面板中的 COM,选择PDMWorks Enterprise 2019 Type Library,确定。
    • 单击左侧面板中的程序集->框架,选择System.Windows.Forms(WF),或者选择Presentation-Framework(WPF),确定。
    • 关闭窗口。 
    • 需要把EdmLib嵌入互操作设置为False

  • 在“解决方案资源管理器”中右击项目名称,然后单击“属性”。
    • “应用程序>程序集信息”。
    • 取消勾选“使程序集 COM 可见(M)”。
    • 在“生成”选项卡上,勾选“为 COM 互操作注册(C)”。

  • 将此设置为调试加载项:
    • 选择调试选项卡。
    • 选择 启动外部程序(X) 选择 C:\Windows\System32\notepad.exe
  • 如果在64位计算机上创建Add-in,在记事本中编辑 project_path\project_name\project_name\project_name.csproj 
    • 在 <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> 下方
      和 <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> 下方插入以下行:<PlatformTarget>AnyCPU</PlatformTarget>
    • 保存文件并退出记事本。

  • 双击“解决方案资源管理器”中的 MyAddin.cs 以打开代码窗口。
  • 在窗口代码的顶部,键入:
    using System.Windows;//新增
    using System.Runtime.InteropServices;//新增
    using EdmLib;//新增
  • 替换
    public class MyAddin 更改为
    [Guid(""), ComVisible(true)]public class MyAddin : IEdmAddIn5{}
  • 填写上面的Guid(""
    • 工具->创建GUID
    • 选择GUID Format 5,单击复制,单击退出。用复制的字符串填充 [guid(“”), ...]。

   //范例:[Guid("192F935A-C45F-4591-8233-1B90BA534E82"), ComVisible(true)]public class MyAddin : IEdmAddIn5{}

  • 在代码中,右键 IEdmAddIn5,选择快速操作和重构 > 实现接口
    • 实现 IEdmAddIn 5::GetAddInInfo
          public class MyAddin : IEdmAddIn5{//添加public void GetAddInInfo(ref EdmAddInInfo poInfo, IEdmVault5 poVault, IEdmCmdMgr5 poCmdMgr){//指定要在Add-in程序的“属性”对话框中显示的信息poInfo.mbsAddInName = "C# Add-in";poInfo.mbsCompany = "My Company";poInfo.mbsDescription = "Menu add-in that shows a message box.";poInfo.mlAddInVersion = 1;//指定 SolidWorks PDM Professional的最低要求版本 poInfo.mlRequiredVersionMajor = 6;poInfo.mlRequiredVersionMinor = 4;//注册菜单命令poCmdMgr.AddCmd(1, "C# Add-in", (int)EdmMenuFlags.EdmMenu_Nothing);}}
  • 实现 IEdmAddIn5::
        public class MyAddin : IEdmAddIn5{//添加public void OnCmd(ref EdmCmd poCmd, ref Array ppoData){// 处理菜单命令(调用MyAddinUI)if (poCmd.meCmdType == EdmCmdType.EdmCmd_Menu){if (poCmd.mlCmdID == 1){new MyAddinUI("C# Add-in").Show();//MessageBox.Show("C# Add-in");}}}}

  • 在“解决方案资源管理器”中右键单击项目名称,然后单击“添加现有项”>(我在其他项目复制的WPF窗体,WF可以选择添加类)。由于是类库,需要添加引用PresentationCore、PresentationFramework、System.Xaml、WindowsBase等。由于是复制的,需要修改名称空间、内容。
//.cs文件using System;
using System.Windows;namespace Add_in_Demo
{/// <summary>/// MainWindow.xaml 的交互逻辑/// </summary>public partial class MyAddinUI : Window{public MyAddinUI(string s){InitializeComponent();myTextBlock.Text = s;}}
}
//.xaml 文件
<Window x:Class="Add_in_Demo.MyAddinUI"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"xmlns:local="clr-namespace:Add_in_Demo"mc:Ignorable="d"Title="SW PDM Add-in范例" Height="450" Width="800"><Grid><TextBlock x:Name="myTextBlock"/></Grid>
</Window>

Add-in程序使用菜单命令处理程序通过调用MyAddinUI.cs MyAddin.cs中的OnCmd去显示message box

  • 单击“生成”>“生成解决方案” ,生成Add-in。
  • 安装加载项,用 SOLIDWORKS PDM Professional 管理工具进行调试

        1.打开 SOLIDWORKS PDM Professional 专业管理工具(管理)。

        2.展开要安装此加载项的库,然后以管理员身份登录。

        3.右键单击“加载项”(Add-ins),然后选择“调试加载项”(Debug Add-ins)。

        4.单击“添加加载项”(Add Add-in),浏览到 project_path\project_name\project_name\bin\Debug,单击“project_name.dll”,然后单击“打开”(Open)。Add-in程序的名称、路径和类 ID 应显示在“安装在此计算机上进行调试的外接程序”(Add-ins installed for debugging on this machine)列表中。

        5.确定。

  • 在 Microsoft Visual Studio 中,单击“调试”>“开始调试”或按 F5。
  • 打开记事本,然后单击文件>打开。
  • 在“打开”对话框中,单击安装此加载项的库的名称。
  • 在库视图中单击鼠标右键,然后单击“C# 加载项”(# Add-in)。显示消息“C# Add-in”。
  • 单击“确定”关闭消息框。
  • 单击取消。
  • 关闭记事本  

完整的源代码

using System.Windows;//新增
using System.Runtime.InteropServices;//新增
using EdmLib;//新增
using System;namespace Add_in_Demo
{[Guid("192F935A-C45F-4591-8233-1B90BA534E82"), ComVisible(true)]public class MyAddin : IEdmAddIn5{public void GetAddInInfo(ref EdmAddInInfo poInfo, IEdmVault5 poVault, IEdmCmdMgr5 poCmdMgr){//指定要在Add-in程序的“属性”对话框中显示的信息poInfo.mbsAddInName = "C# Add-in";poInfo.mbsCompany = "My Company";poInfo.mbsDescription = "Menu add-in that shows a message box.";poInfo.mlAddInVersion = 1;//指定 SolidWorks PDM Professional的最低要求版本 poInfo.mlRequiredVersionMajor = 6;poInfo.mlRequiredVersionMinor = 4;//注册菜单命令poCmdMgr.AddCmd(1, "C# Add-in", (int)EdmMenuFlags.EdmMenu_Nothing);}public void OnCmd(ref EdmCmd poCmd, ref Array ppoData){MessageBox.Show("C# Add-in 1");//处理菜单命令(调用MyAddinUI)if (poCmd.meCmdType == EdmCmdType.EdmCmd_Menu){if (poCmd.mlCmdID == 1){MessageBox.Show("C# Add-in 1");new MyAddinUI("C# Add-in 2").Show();}}}}
}

调试的时候,VS不能以管理员方式运行,不然加载不了DLL。

Demo完整资源打包

https://download.csdn.net/download/hd51cc/87878684

这篇关于Solidwoks PDM Add-ins (C#) 创建Add-ins的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/194820

相关文章

2. c#从不同cs的文件调用函数

1.文件目录如下: 2. Program.cs文件的主函数如下 using System;using System.Collections.Generic;using System.Linq;using System.Threading.Tasks;using System.Windows.Forms;namespace datasAnalysis{internal static

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount

在cscode中通过maven创建java项目

在cscode中创建java项目 可以通过博客完成maven的导入 建立maven项目 使用快捷键 Ctrl + Shift + P 建立一个 Maven 项目 1 Ctrl + Shift + P 打开输入框2 输入 "> java create"3 选择 maven4 选择 No Archetype5 输入 域名6 输入项目名称7 建立一个文件目录存放项目,文件名一般为项目名8 确定

Java 创建图形用户界面(GUI)入门指南(Swing库 JFrame 类)概述

概述 基本概念 Java Swing 的架构 Java Swing 是一个为 Java 设计的 GUI 工具包,是 JAVA 基础类的一部分,基于 Java AWT 构建,提供了一系列轻量级、可定制的图形用户界面(GUI)组件。 与 AWT 相比,Swing 提供了许多比 AWT 更好的屏幕显示元素,更加灵活和可定制,具有更好的跨平台性能。 组件和容器 Java Swing 提供了许多

用命令行的方式启动.netcore webapi

用命令行的方式启动.netcore web项目 进入指定的项目文件夹,比如我发布后的代码放在下面文件夹中 在此地址栏中输入“cmd”,打开命令提示符,进入到发布代码目录 命令行启动.netcore项目的命令为:  dotnet 项目启动文件.dll --urls="http://*:对外端口" --ip="本机ip" --port=项目内部端口 例: dotnet Imagine.M

顺序表之创建,判满,插入,输出

文章目录 🍊自我介绍🍊创建一个空的顺序表,为结构体在堆区分配空间🍊插入数据🍊输出数据🍊判断顺序表是否满了,满了返回值1,否则返回0🍊main函数 你的点赞评论就是对博主最大的鼓励 当然喜欢的小伙伴可以:点赞+关注+评论+收藏(一键四连)哦~ 🍊自我介绍   Hello,大家好,我是小珑也要变强(也是小珑),我是易编程·终身成长社群的一名“创始团队·嘉宾”

Maven创建项目中的groupId, artifactId, 和 version的意思

文章目录 groupIdartifactIdversionname groupId 定义:groupId 是 Maven 项目坐标的第一个部分,它通常表示项目的组织或公司的域名反转写法。例如,如果你为公司 example.com 开发软件,groupId 可能是 com.example。作用:groupId 被用来组织和分组相关的 Maven artifacts,这样可以避免

批处理以当前时间为文件名创建文件

批处理以当前时间为文件名创建文件 批处理创建空文件 有时候,需要创建以当前时间命名的文件,手动输入当然可以,但是有更省心的方法吗? 假设我是 windows 操作系统,打开命令行。 输入以下命令试试: echo %date:~0,4%_%date:~5,2%_%date:~8,2%_%time:~0,2%_%time:~3,2%_%time:~6,2% 输出类似: 2019_06

ORACLE 11g 创建数据库时 Enterprise Manager配置失败的解决办法 无法打开OEM的解决办法

在win7 64位系统下安装oracle11g,在使用Database configuration Assistant创建数据库时,在创建到85%的时候报错,错误如下: 解决办法: 在listener.ora中增加对BlueAeri-PC或ip地址的侦听,具体步骤如下: 1.启动Net Manager,在“监听程序”--Listener下添加一个地址,主机名写计