当前位置: 首页 > news >正文

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. 新建项目,选择类库。
  3. 在“解决方案资源管理器”中右键单击项目名称 ,然后单击添加引用。
    1. 单击 COM 在 左侧面板,单击PDMWorks Enterprise 2019 Type Library,然后单击添加

    2. 如果需要,引入相关的程序集。
    3. 设置Interop.EdmLib的嵌入互操作类型为False。
  4. 在“解决方案资源管理器”中右击项目名称,然后单击“属性”。
    1. “应用程序>程序集信息”。
    2. 取消勾选“使程序集 COM 可见(M)”。
  5. 修改Class1.cs。这里修改类名为MySerial.cs。
    1. 添加和创建GUID。
    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         
    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 generatedpoCmdMgr.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结构的数组。数组中每个受调用影响的文件都有一个元素。有关成员的完整列表及其说明,请参阅EdmCmdDataCounterVal = tmpArr[Index].mlLongData1.ToString();  //mlLongData1这里是Serial number counter valueString 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. 在插件中添加新插件。  
  4. 右键序列号,选择新序列号    

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

  6. 在库中新建text文件。    

 打包:https://download.csdn.net/download/hd51cc/87887157

相关文章:

Creating Serial Numbers (C#)

此示例展示如何使用Visual C#编写的Add-ins为文件数据卡生成序列号。 注意事项&#xff1a; SOLIDWORKS PDM Professional无法强制重新加载用.NET编写的Add-ins&#xff0c;必须重新启动所有客户端计算机&#xff0c;以确保使用Add-ins的最新版本。 SOLIDWORKS PDM Professio…...

pycharm使用之torch_geometric安装

正式安装之前要先查看一下torch的版本 一、查看torch版本 1、winR &#xff0c;输入cmd 2、输入python 3、 输入import torch&#xff0c;然后输入torch.__version__&#xff0c;最后回车 可以看到我的torch版本是1.10.0 二、下载合适的版本 1、打开链接 https://pytorch-…...

spring-mvc 工作流程

一、概述 spring-mvc 主要是DispatcherServlet工作流程流程可以分为两块&#xff0c;第一块为DispatcherServlet的加载&#xff0c;第二块为请求处理 二、DispatcherServlet的加载 主要依靠三个对象 DispatcherServletRegistrationBean&#xff1a;实现了ServletContextInit…...

物联网Lora模块从入门到精通(六)OLED显示屏

一、前言 获取到数据后我们常需要在OLED显示屏上显示&#xff0c;本文中我们需要使用上一篇文章(光照与温湿度数据获取)的代码&#xff0c;在其基础上继续完成本文内容。 基础代码&#xff1a; #include <string.h> #include "board.h" #include "hal_ke…...

平面坐标变换(单应性变换/Homography变换)

单应性(homography)变换用来描述物体在两个平面之间的转换关系&#xff0c;可以用于描述平移、翻转、缩放、旋转、仿射变换等。其是对应齐次坐标下的线性变换&#xff0c;可以通过矩阵表示&#xff1a; 其中&#xff0c;H为单应性变换矩阵&#xff0c;假设变换前坐标为(x,y)&am…...

大数据项目常识

大数据项目 随着社会的进步&#xff0c;大数据的高需求&#xff0c;高薪资&#xff0c;高待遇&#xff0c;促使很多人都来学习和转行到大数据这个行业。学习大数据是为了什么&#xff1f;成为一名大数据高级工程师。而大数据工程师能得到高薪、高待遇的能力在哪&#xff1f;自…...

Linux系统:常用服务端口

目录 一、理论 1.端口分类 2.传输协议 3.常用端口 一、理论 1.端口分类 一个计算机最多有65535个端口&#xff0c;端口不能重复。Linux 只有 root 用户可以使用1024以下的端口。 表1 端口分类 端口范围说明公认端口&#xff08;Well-KnownPorts&#xff09;0 - 1023这类…...

前端和后端分别是什么?

从技术工具来看&#xff1a; 前端&#xff1a;常见的 html5、JavaScript、jQuery... 后端&#xff1a;spring、tomcet、JVM&#xff0c;MySQL... 毕竟&#xff0c;如果这个问题问一个老后端&#xff0c;他掰掰手指可以给你罗列出一堆的名词来&#xff0c;比如设计模式、数据库…...

Spring基础知识(一)

目录 1.Spring Framework 2.Spring Framework优点 3.Spring Framework的功能模块 4.Spring配置文件 5.Spring应用配置步骤 6.Spring的IoC是什么 7.IoC的理念 8.IoC体系的好处 9.Spring中的 IoC 容器 10.依赖注入的方式 1.Spring Framework Spring Framework即Spring框…...

易语言使用node编译的js文件

环境配置 npm install -g cnpm babel-preset-env babel-cli babel-polyfill browserifynpm install -g crypto-js nodejs转js 例如加密模块 browserify -r babel-polyfill -r crypto-js -o es6.txt browserify file.js -o es6.txt易语言 使用v8 推荐 直接生成导入js即…...

计算机网络笔记:动态主机配置协议(DHCP)

协议配置&#xff1a; 为了把协议软件做成通用和便于移植的&#xff0c;协议软件的编写者不会把所有的细节都固定在源代码中&#xff0c;相反&#xff0c;他们把协议软件参数化&#xff0c;这就使得在很多台计算机上有可能使用同一个经过编译的二进制代码。一台计算机和另一台…...

新买的电脑怎么用U盘重装系统?新买的电脑用U盘重装系统教程

新买的电脑怎么用U盘重装系统&#xff1f;用户新买了电脑&#xff0c;想知道怎么用U盘来重装新买的电脑&#xff0c;用U盘来重装电脑其实非常简单&#xff0c;用户需要准备一个U盘&#xff0c;然后完成U盘启动盘的安装&#xff0c;接着按照以下分享的新买的电脑用U盘重装系统教…...

图像边缘检测原理

文章目录 图像边缘检测原理1:2:3:基本边缘检测算子 图像边缘检测原理 1: 图像的边缘指的是图像中像素灰度值突然发生变化的区域&#xff0c;如果将图像的每一行像素和每一列像素都描述成一个关于灰度值的函数&#xff0c;那么图像的边缘对应在灰度值函数中是函数值突然变大的…...

爬虫利器 Beautiful Soup 之遍历文档

Beautiful Soup 简介 Beautiful Soup 是一个可以从 HTML 或 XML 文件中提取数据的 Python 库&#xff0c;它提供了一些简单的操作方式来帮助你处理文档导航&#xff0c;查找&#xff0c;修改文档等繁琐的工作。因为使用简单&#xff0c;所以 Beautiful Soup 会帮你节省不少的工…...

12、Nginx高级之高级模块(secure_link/secure_link_md5)

一、功能 防盗链&#xff1b; ngx_http_secure_link_module模块用于检查所请求链接的真实性&#xff0c;保护资源免受未经授权的访问&#xff0c;并限制链接寿命。 该模块提供两种可选的操作模式。 第一种模式由 secure_link_secret 指令启用&#xff0c;用于检查所请求链接的真…...

【python】数据可视化,使用pandas.merge()对dataframe和geopandas类型数据进行数据对齐

目录 0.环境 1.适用场景 2.pandas.merge()函数详细介绍 3.名词解释“数据对齐”&#xff08;来自chatGPT3.5&#xff09; 4.本文将给出两种数据对齐的例子 1&#xff09;dataframe类型数据和dataframe类型数据对齐&#xff08;对齐NAME列&#xff09;&#xff1b; 数据对…...

大模型入门(三)—— 大模型的训练方法

参考hugging face的文档介绍&#xff1a;https://huggingface.co/docs/transformers/perf_train_gpu_many#naive-model-parallelism-vertical-and-pipeline-parallelism&#xff0c;以下介绍聚焦在pytorch的实现上。 随着现在的模型越来越大&#xff0c;训练数据越来越多时&…...

人机交互学习-4 交互设计过程

交互设计过程 交互设计过程基本活动关键特征 设计过程中的问题如何选取用户&#xff1f;如何明确需求&#xff1f;如何提出候选方案&#xff1f;如何在候选方案中选择&#xff1f; 交互设计生命周期模型星型生命周期模型可用性工程生命周期模型 交互设计过程管理界面设计的4个支…...

大话Stable-Diffusion-Webui之kohya-ss主题更改

文章目录 kohya-sskohya-ss主题更改添加背景图片更改组件样式自定义主题规范更改主题的另一种方式kohya-ss kohya-ss是一个专门用于训练Dreambooth、LoRA等小模型的项目,本身没有GUI界面,需要通过python命令去调用使用,这对于不懂python的同学来说门槛稍微有点高,于是有人…...

搜索在计算机中的地位十分重要

无论是在内部系统还是在外部的互联网站上&#xff0c;都少不了检索系统。数据是为了用户而服务。计算机在采集数据&#xff0c;处理数据&#xff0c;存储数据之后&#xff0c;各种客户端的操作pc机或者是移动嵌入式设备都可以很好的获取数据&#xff0c;得到 想要的数据服务。 …...

Flask RESTful 示例

目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题&#xff1a; 下面创建一个简单的Flask RESTful API示例。首先&#xff0c;我们需要创建环境&#xff0c;安装必要的依赖&#xff0c;然后…...

工业安全零事故的智能守护者:一体化AI智能安防平台

前言&#xff1a; 通过AI视觉技术&#xff0c;为船厂提供全面的安全监控解决方案&#xff0c;涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面&#xff0c;能够实现对应负责人反馈机制&#xff0c;并最终实现数据的统计报表。提升船厂…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql

智慧工地管理云平台系统&#xff0c;智慧工地全套源码&#xff0c;java版智慧工地源码&#xff0c;支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求&#xff0c;提供“平台网络终端”的整体解决方案&#xff0c;提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)

文章目录 1.什么是Redis&#xff1f;2.为什么要使用redis作为mysql的缓存&#xff1f;3.什么是缓存雪崩、缓存穿透、缓存击穿&#xff1f;3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...

Objective-C常用命名规范总结

【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名&#xff08;Class Name)2.协议名&#xff08;Protocol Name)3.方法名&#xff08;Method Name)4.属性名&#xff08;Property Name&#xff09;5.局部变量/实例变量&#xff08;Local / Instance Variables&…...

第25节 Node.js 断言测试

Node.js的assert模块主要用于编写程序的单元测试时使用&#xff0c;通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试&#xff0c;通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI

前一阵子在百度 AI 开发者大会上&#xff0c;看到基于小智 AI DIY 玩具的演示&#xff0c;感觉有点意思&#xff0c;想着自己也来试试。 如果只是想烧录现成的固件&#xff0c;乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外&#xff0c;还提供了基于网页版的 ESP LA…...

GitHub 趋势日报 (2025年06月08日)

&#x1f4ca; 由 TrendForge 系统生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日报中的项目描述已自动翻译为中文 &#x1f4c8; 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...

Device Mapper 机制

Device Mapper 机制详解 Device Mapper&#xff08;简称 DM&#xff09;是 Linux 内核中的一套通用块设备映射框架&#xff0c;为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程&#xff0c;并配以详细的…...

代理篇12|深入理解 Vite中的Proxy接口代理配置

在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...