C#在SolidWorks二次开发中的应用实践

从事Solidworks 二次开发十几年了,一直没有时间好好整理笔记,最近准备花一些时间整理一下。

Solidworks二次开发需要一些C# Vb.net C++ 等编程语言的基础知识,大多使用Visual Studio进行开发。

再一个就是Solidworks要熟悉或者精通,因为任何手工都无法实现的东西,基本上做二次开发也不能实现。

那我们从最基础的连接到solidworks开始:


1.新建一个窗体程序或者控制台应用,我们以窗体程序为例:

加上一个按钮:


2.用NuGet查找solidworks进行dll的引用。自己选择对应版本或者其它包装好的库

(至少包括SolidWorks.Interop.sldworks ,SolidWorks.Interop.swconst,其它的可以删除掉)


3.新建一个公共类

using SolidWorks.Interop.sldworks;using System;using System.Diagnostics;using System.Runtime.InteropServices;using System.Windows.Forms; namespace CSharpAndSolidWorks{    public class Utility    {        public static ISldWorks SwApp { get; private set; }         public static ISldWorks ConnectToSolidWorks()        {            if (SwApp != null)            {                return SwApp;            }            else            {                Debug.Print("connect to solidworks on " + DateTime.Now);                try                {                    SwApp = (SldWorks)Marshal.GetActiveObject("SldWorks.Application");                }                catch (COMException)                {                    try                    {                        SwApp = (SldWorks)Marshal.GetActiveObject("SldWorks.Application.23");//2015                    }                    catch (COMException)                    {                        try                        {                            SwApp = (SldWorks)Marshal.GetActiveObject("SldWorks.Application.26");//2018                        }                        catch (COMException)                        {                            MessageBox.Show("Could not connect to SolidWorks.", "SolidWorks", MessageBoxButtons.OK, MessageBoxIcon.Hand);                            SwApp = null;                        }                    }                }                 return SwApp;            }        }    }}

上面这个代码块是C# 连接Solidworks的代码(EXE程序), 默认是solidworks已经被用户打开了。

这种连接不打开solidworks会提示连接失败。

这样我们可以获取到当前第一个运行的solidworks对象。(exe方式永远只能获取到第一个运行的solidworks对象。dll方式是集成在对应的运行进程中的,所以可以多个同时操作)


4.给按钮增加代码:

 private void BtnConnect_Click(object sender, EventArgs e)        {            ISldWorks swApp = Utility.ConnectToSolidWorks();             if (swApp != null)            {                string msg = "This message from C#. solidworks version is " + swApp.RevisionNumber();                 swApp.SendMsgToUser(msg);            }        }

运行之后,点击按钮,会提示如下消息,表示我们用Visual Studio连接到已经打开的Solidworks成功了 。





免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空