SolidWorks API C#开发的一些新手引导(一)

 

本人是机械专业,机械行业,属于Solidworks的使用者,最近在研究API这块,希望给新手带来一点帮助。

一、Solidworks API

Solidworks自带API帮助,虽然是英文的,但是结构很明确。可与结合本站作者 Paine_Zeng 翻译的API 2018中文版使用(文章末尾给出链接)。

首先说下API大致分类


  • SOLIDWORKS API 

接口:

  • Application Interfaces
  • Annotation Interfaces
  • Assembly Interfaces
  • Drawing Interfaces
  • Configuration Interfaces
  • DimXpert Interfaces
  • Enumeration Interfaces
  • Feature Interfaces
  • Model Interfaces
  • Motion Studies Interfaces
  • Sketch Interfaces
  • Utility Interfaces
  • User-interface Interfaces
  • Custom Interfaces

主要是包含应用程序本身的接口,注释、装配、配置、草图等一些包含在SolidworksCAD中的API。

名称空间

  • SolidWorks.Interop.sldworks Namespace
  • SolidWorks.Interop.swmotionstudy Namespace
  • SolidWorks.Interop.swdimxpert Namespace
  • SolidWorks.Interop.swpublished Namespace
  • SolidWorks.Interop.sw3dprinter Namespace
  • SolidWorks.Interop.dsgnchk Namespace
  • SolidWorks.Interop.swhtmlcontrol Namespace
  • SolidWorks.Interop.swscanto3d Namespace
  • SolidWorks.Interop.swconst Namespace
  • SolidWorks.Interop.swcommands Namespace

看名称对号入座就行,主要是针对SolidWorks、Motion插件、DimXpert、Published、3D打印、设计检查等。

 

  • SOLIDWORKS FeatureWorks API 

名称空间

SolidWorks.Interop.fworks Namespace

主要针对FeatureWorks功能,也就是中间格式文件的特征识别

 

  • SOLIDWORKS Costing API 

名称空间

SolidWorks.Interop.sldcostingapi Namespace

主要是针对Costing模块,也就是成本估算这块

 

  • SOLIDWORKS Document Manager API

名称空间

SolidWorks.Interop.swdocumentmgr Namespace

主要是针对文档操作的,看功能应该是针对ESOLIDWORKS Explorer的API

 

  • SOLIDWORKS PDM Professional API 

名称空间

EPDM.Interop.epdm Namespace

EPDM.Interop.EPDMResultCode Namespace

主要是针对PDM的API

 

  • SOLIDWORKS Routing API 

名称空间

SolidWorks.Interop.SWRoutingLib Namespace

主要是针对Rounting,也就是管路的API

 

  • SOLIDWORKS Simulation API  

名称空间

SolidWorks.Interop.cosworks Namespace

主要是指针对Simulation模块,也就是模拟算例的一些API

 

  • SOLIDWORKS Sustainability API 

名称空间

SolidWorks.Interop.cosworks Namespace

Sustainability ,可持续这一块的API,貌似没发展中国家什么用。

 

  • SOLIDWORKS Toolbox Browser API   

名称空间

SolidWorks.Interop.sldtoolboxconfigureaddin Namespace
SolidWorks.Interop.swbrowser Namespace

Toolbox Browser ,工具箱的API。

 

  • SOLIDWORKS Utilities API Help 

名称空间
SolidWorks.Interop.gtswutilities Namespace

官方的解释是检查模型的几何形状和比较,照这个翻译,应该是针对工具菜单下的比较功能的API。

 

  • eDrawings API  

名称空间

eDrawings.Interop.EModelMarkupControl Namespace
eDrawings.Interop.EModelViewControl Namespace

针对eDrawings的API,可以实现图形浏览(eDrawings Viewer),非常实用。


用的比较多的是SOLIDWORKS API、eDrawings API。所以SolidWorks.Interop.sldworks 、SolidWorks.Interop.swconst、SolidWorks.Interop.swcommands、eDrawings.Interop.EModelMarkupControl、eDrawings.Interop.EModelViewControl 等几个名称空间可以着重了解下。

 

二、Solidworks二次开发

 

二次开发主要分四大类:SOLIDWORKS宏、应用程序(App)、加载项(Addin)、其他程序。

SOLIDWORKS宏有很蛮多的书本有提及,可以参考这些数据。宏运行依赖Solidworks的宏功能。

应用程序,独立于Solidworks的应用程序。一般需要你打开SolidWorks,然后该程序实现与SolidWorks的连接,然后才能实现你自定义的功能。

加载项,就相当于Solidworks的插件,随Solidworks启动。

其他程序这里不做说明。


  • SOLIDWORKS宏

根据官方论坛坛友的反应,win7系统和老版本的SOLIDWORKS可以把宏保存为C#格式,这对C#开发很有帮助。

开发环境的话,只需要安装Solidworks就可以了。

 

  • 应用程序

你需要安装编程软件,比如Visual Studio。

然后需要Solidworks的API库,也就是DLL文件。如果你的Solidworks安装了API,那么它就在 你的安装目录\SOLIDWORKS Corp\SOLIDWORKS\api\redist ,这个文件夹下面。

包含了19个文件,18个DLL和一个文本文档。

如果你用C#开发,那么你需要新建一个项目,比如说WPF,然后在项目引用中添加这些DLL(右键引用,添加引用,浏览,找到这些文件即可)。

然后用using 添加你需要引用的名称空间,简化代码。比如

using SolidWorks.Interop.sldworks;
using SolidWorks.Interop.swconst;

最后,你可以在你的代码中使用这些API了。

 

  • 加载项

这个开发环境的搭建有点悬,大致说下。

用光盘中的SOLIDWORKS API SDK安装就可以了,但是,安装完后,在你的Visual Studio新建中可能没有Addin的项目。

这时候,你可能需要自己解包安装文件,然后找到swcsharpaddin这个压缩文件,然后解压的Visual Studio的模板目录下。

这时,Visual Studio虽然有了Addin的项目,但是新建后会报错,原因好像是这个东西是基于.NET4.0的和一些其他原因。

具体大家可以参考这里:

https://www.jianshu.com/p/10cd1b7ff18d

https://blog.csdn.net/liuzpzp007/article/details/83304965

https://www.jianshu.com/p/ac539ab68279

或者自行百度


最后给出资源

这里主要推荐的是Paine_Zeng的,比较全面,有源代码。

https://blog.csdn.net/zengqh0314/article/details/101025815

 

SOLIDWORKS API SDK 2019 SP5.rar

https://download.csdn.net/download/hd51cc/12370373

 

Solidwoks.Dll Of API.2019sp5.rar

https://download.csdn.net/download/hd51cc/12370368

你可能感兴趣的:(SolidWorks)