c# - 为 Solidworks 构建 C# 插件

标签 c# api visual-studio-2017 add-in solidworks

<分区>

在多个站点上看起来相当复杂。使用 Visual Studio 2017 在 C# 中构建 Solidworks 插件的正确步骤是什么?

最佳答案

我想分享我使用 Visual Studio Professional 2017 和 Windows 10 为 Solidworks 2016 构建 C# 插件的经验。我希望我有这样的帖子可以节省我的时间,这样我认为 future 的用户可以在这篇文章中找到帮助.

<强>1。下载并安装适用于 Visual Studio 的 C# 模板

我基本上遵循了 Solidworks 提供的步骤(需要 Solidworks 客户门户帐户),您可以找到 here :

遇到的问题:exe 将被提取到 MSI 中,然后 MSI 将运行。安装完成后,我在 Visual Studio 中找不到模板项目,在它的文件夹中也找不到 (C:\Users[UserName]\Documents\Visual Studio 2017\Templates\ProjectTemplates\Visual C#)

解决方案:我找到了这个 post建议使用 7zip 解压缩 MSI。果然,该解决方案对我有用,我能够将 zip 文件 (swcsharpaddin.zip) 复制到其各自的文件夹中。

<强>2。使用 Visual Studio 创建 C# Soliworks 项目。

您可以找到Solidworks 提供的信息here

一旦 .zip 文件位于 Visual Studio 的模板文件夹中,您应该拥有这个新的 option创建 C# 项目时。

首先,如果你得到这个error ,一旦创建了项目,您就需要更改项目的 .Net Framework 版本。为此,您可以进入“项目属性”并将框架更改为等于或高于其中一个 DLL 的版本。 (此处为 4.0.0.0)

其次,如果你得到这个 error ,您需要包含 C# 引用。只需右键单击引用,添加引用,程序集,选中 Microsot.CSharp。

第三,我个人不得不将项目平台目标更改为 x64,以便我的插件能够注册 COM。

完成这些步骤后,您就可以构建项目了。由于此模板默认为“COM 可见”和“为 COM 互操作注册”,因此应在 Buid 上调用 swAddin.cs 中名为 RegisterFunction 的函数(在 Clean 上调用 UnregisterFunction)。请注意,如果您在此函数中放置断点,则不会命中断点。

然后您应该会在 Computer\HKEY_LOCAL_MACHINE\SOFTWARE\SolidWorks\AddIns[GUID] 中看到您的插件信息,这些信息在您的 SwAddin.cs 顶部提供。

    /// <summary>
/// Summary description for SwCSharpAddin1.
/// </summary>
[Guid("f0a50f9b-7c7f-4d90-8fc2-15d5d34a3a9f"), ComVisible(true)]
[SwAddin(
    Description = "SwCSharpAddin1 description",
    Title = "SwCSharpAddin1",
    LoadAtStartup = true
    )]

Fluff : 你可以在Project Properties/Application/AssemblyInformation中填写你的程序集信息。对于 GUID 部分,您可以使用此 site .不要采用与代码部分相同的 GUID,它们必须不同。如果我可以与您分享我提供版本号的方式:YY.MM.DD.VV,如(Year.Month.Day.Incremental version for the day)

<强>3。调试插件

在项目属性/调试部分,您应该已经使用您的 Solidworks 路径检查了“启动外部程序”。如果是这样,您现在就可以调试您的应用程序了。你可以找到一个例子 here .您可以在 CreateCube 函数中放置一个断点,您将在单击 Solidworks 中的选项时立即命中它。

注意:我没有在此处包含任何代码。我宁愿你从模板开始。更容易理解。

关于c# - 为 Solidworks 构建 C# 插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51823756/

相关文章:

c# - 我在 C# 中创建了另一个类,并将该类放在它自己的文件中,如何访问该类?

c# - ASP.NET Core API 不接受可空类型的空值

api - "transfer start"在 postman 中是什么意思?

ios - 是一种在ios 上阅读Apple API 内部实现的方法吗?

javascript - 标题来自 Id Youtube API v3?

visual-studio - Visual Studio 2017 : QT Add-in

c# - 读取 XML 时出错

visual-studio-2017 - Visual Studio 2017-禁用提供反馈通知

c# - 复制到 Visual Studio 2017 中的输出目录

c# 在文本框中用换行符替换 "\n"文本