Creating Serial Numbers (C#)

这篇具有很好参考价值的文章主要介绍了Creating Serial Numbers (C#)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

此示例展示如何使用Visual C#编写的Add-ins为文件数据卡生成序列号。

注意事项:

SOLIDWORKS PDM Professional无法强制重新加载用.NET编写的Add-ins,必须重新启动所有客户端计算机,以确保使用Add-ins的最新版本。

SOLIDWORKS PDM Professional建议使用内置格式字符串或列表生成序列号。它们提供了比Add-ins生成的序列号或文件序列号更好的性能。仅当内置格式字符串或列表不足时,才编写Add-ins以生成序列号。

序列号编码器与其他类型挂钩的区别在于:

  • 在IEdmAddIn5::GetAddInInfo方法中注册你的钩子。
  • 在IEdmAddIn5::OnCmd方法中编写内容。
  1.  启动VS。
  2. 新建项目,选择类库。Creating Serial Numbers (C#)Creating Serial Numbers (C#)
  3. 在“解决方案资源管理器”中右键单击项目名称 ,然后单击添加引用。
    1. 单击 COM 在 左侧面板,单击PDMWorks Enterprise 2019 Type Library,然后单击添加Creating Serial Numbers (C#)

    2. 如果需要,引入相关的程序集。
    3. 设置Interop.EdmLib的嵌入互操作类型为False。Creating Serial Numbers (C#)
  4. 在“解决方案资源管理器”中右击项目名称,然后单击“属性”。
    1. “应用程序>程序集信息”。Creating Serial Numbers (C#)
    2. 取消勾选“使程序集 COM 可见(M)”。Creating Serial Numbers (C#)
  5. 修改Class1.cs。这里修改类名为MySerial.cs。
    1. 添加和创建GUID。Creating Serial Numbers (C#)Creating Serial Numbers (C#)
    2. 修改代码
      using System;
      using System.Runtime.InteropServices;//添加
      using EdmLib;//添加
      
      namespace Creating_Serial_Numbers​​
      {
          [Guid("90C81B4A-560D-4FBF-9F08-E670D4ABB892"), ComVisible(true)]
          public class MySerial:IEdmAddIn5
          {
      
          }
      }

  1. 实现 IEdmAddIn5::GetAddInInfo 和IEdmAddIn5::OnCmd         Creating Serial Numbers (C#)Creating Serial Numbers (C#)
    using System;
    using System.Runtime.InteropServices;//添加
    using EdmLib;//添加
    
    
    namespace Creating_Serial_Numbers​​
    {
        [Guid("90C81B4A-560D-4FBF-9F08-E670D4ABB892"), ComVisible(true)]
        public class MySerial:IEdmAddIn5
        {
            public void GetAddInInfo(ref EdmAddInInfo poInfo, IEdmVault5 poVault, IEdmCmdMgr5 poCmdMgr)
            {
                //Return information about this add-in to the Administrate Add-ins dialog           
                poInfo.mbsAddInName = "My serial number generator";
                poInfo.mbsCompany = "The name of my company";
                poInfo.mbsDescription = "Implements serial numbers";
                poInfo.mlAddInVersion = 1;
                poInfo.mlRequiredVersionMajor = 5;
                poInfo.mlRequiredVersionMinor = 2;
    
                //Notify that a serial number needs to be generated
                poCmdMgr.AddHook(EdmCmdType.EdmCmd_SerialNo); ​​
            }
    
            public void OnCmd(ref EdmCmd poCmd, ref Array ppoData)
            {
                //Check the upper and lower bounds of the array 
                int Index = ppoData.GetLowerBound(0);//获取数组中指定维度第一个元素的索引。
                int last = ppoData.GetUpperBound(0);//获取数组中指定维度最后一个元素的索引。
    
                if (Index <= last)
                {
                    int cnt;
                    cnt = last - Index + 1;//ppoData的总数
    
                    //Create a temporary array to which you have full access
                    //创建一个您可以完全访问的临时阵列
                    EdmCmdData[] tmpArr;
                    tmpArr = (EdmCmdData[])ppoData;
    
                    //Generate serial numbers for all of the affected files 
                    //为所选的文件生成序列号
                    String CounterVal;
    
                    while (Index <= last)
                    {
                        //https://help.solidworks.com/2019/english/api/epdmapi/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdData.html
                        //EdmCmdData Structure :Contains command data.
                        //OnCmd的第二个参数是EdmCmdData结构的数组。数组中每个受调用影响的文件都有一个元素。有关成员的完整列表及其说明,请参阅EdmCmdData
                        CounterVal = tmpArr[Index].mlLongData1.ToString();  //mlLongData1这里是Serial number counter value
                        String s;
                        s = "My serno(" + CounterVal + ")";
                        tmpArr[Index].mbsStrData1 = s;
                        Index++;
                    }
    
                    //Return the updated data 
                    ppoData = tmpArr;
                }
            }
        }
    }
  2. 单击“生成”>“生成解决方案” ,生成Add-in。
  3. 安装生成的Add-in。
    1. 打开PDM 管理工作。
    2. 登录。
    3. 在插件中添加新插件。 Creating Serial Numbers (C#) 
  4. 右键序列号,选择新序列号 Creating Serial Numbers (C#) Creating Serial Numbers (C#)  

  5. 选择卡-> 文件卡 -> Text Card,选择Title后面的Textbox,在右侧窗口选择序列号,我的序列号,保存数据卡。 Creating Serial Numbers (C#) Creating Serial Numbers (C#)  

  6. 在库中新建text文件。 Creating Serial Numbers (C#) Creating Serial Numbers (C#)  

 打包:https://download.csdn.net/download/hd51cc/87887157文章来源地址https://www.toymoban.com/news/detail-477322.html

到了这里,关于Creating Serial Numbers (C#)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序的订阅消息是一个允许开发者向用户发送重要通知的功能。这里为您展示如何实现小程序订阅消息的基本步骤和代码示例

    步骤 1: 获取模板 ID 首先,您需要登录微信公众平台,进入「小程序管理」后台,找到“设置” “开发设置” “订阅消息”,然后选择并配置所需的模板,记录模板 ID。 步骤 2: 小程序前端请求订阅 在小程序的某个页面或组件中,当用户执行某个操作(例如点击按钮)时,可

    2024年02月04日
    浏览(91)
  • 华为eNSP模拟器中,路由器如何添加serial接口

    在ensp模拟器中新建拓扑后,添加2个路由器。 在路由器图标上单击鼠标右键,选择设置选项。 在【视图】选项卡的【eNSP支持的接口卡】窗口查找serial接口卡。 选择2SA接口卡,将其拖动到路由器空置的卡槽位。 如上图所示,已经完成路由器添加serial接口,其他路由器添加se

    2024年02月11日
    浏览(53)
  • Vue使用Serial连接串口

    本来只是随手记录一下,发现看的人多了,想着还是修复一下bug吧,供各位看官指正 2022-10-24本次更新: 1、修复在不支持Serial的情况下,控制台报错 2022-09-19本次更新:  1、修复了传输数据接收分隔的情况(增加数据缓存)  2、修复串口连接没有使用选择的波特率等参数 1、 Ser

    2024年02月20日
    浏览(38)
  • Serial Studio简单使用说明

    Serial Studio是一个跨平台的软件,支持将串口,TCP/UDP,MQTT等协议传输数据,并将数据可视化显示,方便嵌入式开发人员实现数据的可视化展示,呈现和分析其项目和设备生成的数据,而无需为每个项目编写专门的上位机软件,仅需做json配置即可快速启动上位机展示界面。 S

    2024年02月09日
    浏览(43)
  • ESP32-USB Serial/JTAG Controller使用

    ESP32-c3内部带有1个USB Serial/JTAG控制器,可用于下载flash程序、JTAG调试、虚拟串口通信等功能。硬件框图如下: 其主要特性如下: 支持usb全速设备(12Mbps),不支持高速(480Mbps) 固定为CDC-ACM设备(Communication Device Class - Abstract Control Model) 64byte硬件缓冲区 大多数操作系统即插即用

    2024年02月09日
    浏览(39)
  • Visual Studio如何使用插件改变主题

    Visual Studio自带的主题太过于枯燥,此篇文章将详细讲述如何改变主题。 此时浏览器会跳转到这个页面。选择一款自己喜欢的主题(可以搜索)点击,这里推荐 One Dark Pro 主题(本人VS里面有这个主题了,演示的时候使用Goodnight Theme)。 点开之后选择Download下载这个插件。 安装

    2024年02月02日
    浏览(46)
  • WordPress实现的首页幻灯片展示功能示例【附demo源码】

    本文实例讲述了WordPress实现的首页幻灯片展示功能。分享给大家供大家参考,具体如下: 对于WordPress拓展性这么优秀的程序来说,是没有什么不能实现的。很多在建站的时候,都会选择在首页使用幻灯片,可以展示比较醒目的内容。今天就来一个首页幻灯片的制作教程,相信

    2023年04月24日
    浏览(61)
  • Visual Studio 2022如何安装和使用MSDN

    我是荔园微风,作为一名在IT界整整25年的老兵,在后台收到提问,问我Visual Studio 2022如何安装和使用MSDN,这个我之前也没有在这个版本上装过MSDN,我之前是在Visual Studio 2017版上装过MSDN,那既然有人问了,我们就一起来探索一下吧。 MSDN全称是 Microsoft Developer Network,你可以把

    2024年02月05日
    浏览(51)
  • Visual Studio如何使用Qt开发桌面软件?

      笔者熟悉的第一门编程语言是C#,当初本科毕业设计需要进行Qgis的二次开发,本想利用C#编程,但网上资料较少,多是利用Qt进行Qgis的二次开发,Qt是利用C++编程,当时利用Qt编译器进行编程,相比Visual Studio还是多有不习惯,虽然知道VS有Qt插件可以使用,但当初嫌麻烦,

    2024年02月13日
    浏览(51)
  • 如何使用Midjourney辅助建筑设计,常用的提示和使用效果展示(内附Midjourney提示词网站)

    生成式AI大火,特别是在AI绘图方面Midjourney,DALL·E 2 。世界各地的建筑师和建筑公司一直在试验 Midjourney,发现它可以让他们快速生成和迭代设计理念, **而且它可以令人陶醉地进行无限制的设计 ** 。 将人工智能集成到建筑设计过程中,将极大地有助于简化设计过程。能够快

    2024年02月13日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包