杰瑞科技汇

SolidWorks二次开发如何快速入门?

SolidWorks 二次开发全面指南

SolidWorks 二次开发,也称为 API (Application Programming Interface) 开发,允许你使用编程语言来自动化、定制和扩展 SolidWorks 的功能,无论是创建宏来自动化重复性任务,还是开发功能强大的插件,API 都是你强大的工具。

SolidWorks二次开发如何快速入门?-图1
(图片来源网络,侵删)

第一部分:基础入门

什么是 SolidWorks 二次开发?

就是通过编写代码,让 SolidWorks “听你的话”,你可以:

  • 自动化操作:一键完成一系列手动操作,如创建零件、生成工程图、添加注释等。
  • 定制界面:添加自定义菜单、工具栏、属性页,让软件更符合你的工作流。
  • 数据集成:将 SolidWorks 与其他系统(如 ERP、PDM、数据库)集成,实现数据的双向流动。
  • 开发专用工具:针对特定行业或需求,开发独特的功能模块。

开发环境与语言选择

SolidWorks API 主要支持以下几种语言:

语言 优点 缺点 推荐场景
C# (C Sharp) 上手快,语法现代,拥有强大的 .NET Framework 库,社区庞大,调试方便。 性能略低于 C++,但绝大多数场景下足够。 强烈推荐初学者,适合快速开发宏、插件,进行数据处理和界面开发。
C++ 性能最高,功能最强大,可以访问所有底层 API。 学习曲线陡峭,开发复杂,调试困难。 对性能有极致要求的插件开发,或需要与硬件深度交互的场景。
VB.NET / VBA (宏) VBA 是录制宏的默认语言,简单直接,VB.NET 类似 C#。 VBA 只能在 SolidWorks 内部运行,功能受限。 快速录制和修改宏,进行简单的自动化任务。

对于绝大多数开发者,从 C# 开始是最好的选择

环境搭建

C# 为例:

SolidWorks二次开发如何快速入门?-图2
(图片来源网络,侵删)
  1. 安装 SolidWorks:确保你安装了 SolidWorks(推荐较新版本,如 2025 或更新),并记录下版本号(如 SP5)。
  2. 安装 Visual Studio:安装 Visual Studio Community(免费版),在安装时,务必勾选 “.NET 桌面开发” 工作负载。
  3. 安装 SolidWorks API SDK
    • 从 SolidWorks 官网下载对应版本的 API SDK (Software Development Kit)
    • 运行安装程序,它会自动将 SolidWorks 的类型库(.tlb 文件)和必要的引用文件注册到你的系统中。

第二部分:核心概念与 API 结构

SolidWorks 对象模型

SolidWorks API 是一个面向对象的层次结构,你操作的不是功能,而是“对象”,这个结构就像一棵树:

  • SldWorks (根对象):代表整个 SolidWorks 应用程序,这是你操作的起点。
    • ModelDoc2 (文档对象):代表一个打开的文档(零件、装配体或工程图)。
      • PartDoc (零件文档)
      • AssemblyDoc (装配体文档)
      • DrawingDoc (工程图文档)
    • SelectionMgr (选择管理器):用于获取用户在图形区域中选择的对象。
    • FeatureManager (特征管理器):用于操作特征(拉伸、切除等)。
    • ModelView (模型视图):用于操作视图(旋转、缩放、平移)。

核心思想:要操作一个特征,你必须先获取 SldWorks 对象,然后获取活动的 ModelDoc2 对象,再通过 ModelDoc2 获取 FeatureManager,最后才能操作特征。

API 两大核心命名空间

在你写的 C# 代码中,需要引用这两个核心库:

  • SolidWorks.Interop.sldworks:包含了 SolidWorks 的所有对象、接口和枚举(如 ModelDoc2, Feature, SelectionMgr 等),你通过这个命名空间来“读取”和“调用” SolidWorks 的功能。
  • SolidWorks.Interop.swconst:包含了大量的常量、枚举和错误代码(如 swSelectType_e.swSelFACES 表示选择面,swDocumentTypes_e.swDocPART 表示零件类型),它为 Interop.sldworks 提供了“常量值”。

第三部分:实战演练 - 从第一个 C# 插件开始

我们将创建一个简单的插件,点击按钮后,弹出一个消息框显示当前打开文件的名称。

SolidWorks二次开发如何快速入门?-图3
(图片来源网络,侵删)

步骤 1:创建项目

  1. 打开 Visual Studio,创建一个新项目。
  2. 选择 “类库 (.NET Framework)” 模板,命名为 MyFirstPlugin
  3. 确保你的项目框架版本是 .NET Framework 4.x(不是 .NET 5/6/7)。

步骤 2:添加引用

  1. 在“解决方案资源管理器”中,右键点击“引用” -> “添加引用”。
  2. 切换到“COM”选项卡。
  3. 找到并勾选以下两项:
    • SolidWorks 20XX Type Library (版本号根据你的 SolidWorks 版本而定)
    • SolidWorks Constant Type Library
  4. 点击“确定”,Visual Studio 会自动为你生成 Interop 程序集。

步骤 3:编写插件代码

Class1.cs 的代码替换为以下内容:

using System;
using System.Runtime.InteropServices; // 需要这个库来使用 DllImport
using SolidWorks.Interop.sldworks;
using SolidWorks.Interop.swconst;
namespace MyFirstPlugin
{
    // GUID 必须是唯一的,你可以用 Visual Studio 的工具生成
    [Guid("A1B2C3D4-E5F6-7890-ABCD-EF1234567890")]
    [ComVisible(true)]
    [ProgId("MyFirstPlugin.Connect")]
    public class Connect : SwAddin
    {
        #region "插件生命周期"
        private SldWorks swApp;
        private int nLastConnected = 0;
        // 插件连接时被调用
        public bool ConnectToSW(object ThisSW, int cookie)
        {
            swApp = (SldWorks)ThisSW;
            nLastConnected = cookie;
            // 设置插件信息
            swApp.SetAddinInfo(nLastConnected, true, this.GetType().GUID.ToString("B"), null);
            // 创建自定义菜单
            CreateMenu();
            return true;
        }
        // 插件断开连接时被调用
        public void DisconnectFromSW()
        {
            // 清理资源
        }
        #endregion
        #region "创建界面"
        private void CreateMenu()
        {
            // 在“工具”菜单下添加一个子菜单
            swApp.AddMenu2("工具", "我的插件", 0);
            // 为这个子菜单添加一个命令
            swApp.AddMenuCommand2("显示文件名", "显示文件名", ShowFileName, nLastConnected);
        }
        // 点击菜单项时执行的方法
        public void ShowFileName()
        {
            ModelDoc2 swModel = swApp.ActiveDoc;
            if (swModel == null)
            {
                swApp.SendMsgToUser("请先打开一个 SolidWorks 文档。");
                return;
            }
            string fileName = swModel.GetTitle();
            swApp.SendMsgToUser($"当前打开的文件是: {fileName}");
        }
        #endregion
    }
}

步骤 4:注册与部署

  1. 生成程序集:在 Visual Studio 中,选择 Release 模式,生成 -> 生成解决方案,你会在 bin/Release 目录下找到 MyFirstPlugin.dll
  2. 注册 DLL:SolidWorks 插件是 COM 组件,必须注册才能被识别。
    • 管理员权限:右键点击“开始”按钮,选择“Windows PowerShell 管理员”或“命令提示符管理员”。
    • 进入目录cd "C:\path\to\your\project\bin\Release"
    • 执行注册regsvr32 MyFirstPlugin.dll
    • 如果出现错误:尝试先 regsvr32 /u MyFirstPlugin.dll 卸载,再重新注册。

步骤 5:在 SolidWorks 中加载插件

  1. 打开 SolidWorks。
  2. 点击 工具 -> 插件
  3. 在列表中找到 MyFirstPlugin,勾选它,并勾选 启动时加载
  4. 点击 确定

你应该能在 工具 菜单下看到 我的插件 子菜单,点击 显示文件名 就会弹出提示框了!


第四部分:进阶学习与资源

宏 - 学习 API 的最佳起点

在深入学习插件开发前,强烈建议你先学会录制和编辑宏

  • 录制宏工具 -> -> 录制,然后你在 SolidWorks 中进行一系列操作,停止录制后,会生成一个 VBA 文件 (.swp)。
  • 编辑宏工具 -> -> 编辑,这会打开 VBA 编辑器,你可以查看 SolidWorks 为你生成的 VBA 代码,并将其“翻译”成 C# 代码,这是学习 API 方法名和参数最快的方式。

官方文档

  • SolidWorks API 帮助:这是最权威、最全面的资料,在 SolidWorks 中,按 F1 或通过 帮助 -> SolidWorks API 帮助 打开,你可以按对象名(如 IModelDoc2)或功能(如 How to create a feature)进行搜索。

视频教程

  • SolidWorks 官方 YouTube 频道:搜索 "SolidWorks API Tutorials",有官方出品的系列教程。
  • YouTube 上的个人开发者:搜索 "C# SolidWorks API tutorial",有很多优秀的开发者分享实战项目。

社区与论坛

  • SolidWorks 论坛 - API 板块:遇到问题时,这里是提问和寻找答案的最佳地方,在提问前,请先搜索,因为 99% 的问题都已经被问过了。
  • Eng-Tips Forum:一个工程师技术论坛,SolidWorks API 板块也很活跃。

示例代码

  • SolidWorks API SDK 示例:在安装 API SDK 的目录下,有大量的 C++ 和 C# 示例代码,覆盖了大部分 API 功能,是绝佳的学习材料。
  • GitHub:搜索 solidworks-api-csharpsolidworks-api-cpp,可以找到很多开源的插件项目,阅读别人的代码是提高水平的捷径。

第五部分:常见问题与技巧

  1. 调试插件

    • 在 Visual Studio 中,右键项目 -> 属性 -> 调试
    • 勾选 启用非托管代码调试
    • 启动操作 中选择 启动外部程序,并浏览到 sldworks.exe 的安装路径。
    • 你可以在 C# 代码中设置断点,然后点击 Visual Studio 的“启动”按钮,它会自动打开 SolidWorks 并加载你的插件,当代码执行到断点时,就会暂停。
  2. 性能优化

    • 批量操作:尽量使用 IModeler 接口下的方法(如 CreateFeatureFromBody2)来一次性创建复杂几何,而不是通过 UI 模拟(先创建草图,再拉伸,再打孔...)。
    • 减少选择/取消选择:频繁地选择和取消选择对象会严重影响性能,尽量在内存中操作对象,而不是依赖图形区域的选择。
    • 释放 COM 对象:在使用完 swApp 或其他 COM 对象后,最好调用 System.Runtime.InteropServices.Marshal.ReleaseComObject(obj) 来释放资源,尤其是在循环中操作大量对象时。
  3. 错误处理

    • 始终使用 try...catch 块来包裹你的 API 调用。
    • 使用 swApp.SendMsgToUser() 向用户显示友好的错误信息,而不是直接让程序崩溃。

SolidWorks 二次开发是一个充满创造力的领域,能够极大地提升个人和团队的工作效率。

学习路径建议

  1. 从宏开始:录制宏,理解基本 API 调用。
  2. 学习 C#:掌握 C# 基础语法。
  3. 编写第一个插件:按照本教程,成功创建并运行一个简单插件。
  4. 深入研究 API:阅读官方文档,尝试实现更复杂的功能(如创建自定义属性、生成 BOM 表等)。
  5. 阅读与贡献:在社区和 GitHub 上学习他人的代码,并尝试解决一些实际问题。

祝你开发顺利!

分享:
扫描分享到社交APP
上一篇
下一篇