从事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成功了 。

免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删
武汉格发信息技术有限公司,格发许可优化管理系统可以帮你评估贵公司软件许可的真实需求,再低成本合规性管理软件许可,帮助贵司提高软件投资回报率,为软件采购、使用提供科学决策依据。支持的软件有: CAD,CAE,PDM,PLM,Catia,Ugnx, AutoCAD, Pro/E, Solidworks ,Hyperworks, Protel,CAXA,OpenWorks LandMark,MATLAB,Enovia,Winchill,TeamCenter,MathCAD,Ansys, Abaqus,ls-dyna, Fluent, MSC,Bentley,License,UG,ug,catia,Dassault Systèmes,AutoDesk,Altair,autocad,PTC,SolidWorks,Ansys,Siemens PLM Software,Paradigm,Mathworks,Borland,AVEVA,ESRI,hP,Solibri,Progman,Leica,Cadence,IBM,SIMULIA,Citrix,Sybase,Schlumberger,MSC Products...