SolidWorks API开发入门:从零开始

SolidWorks API可用于任何兼容 COM 的语言(即 C++、C#、VB.NET 和 Visual Basic)。可以使用 SolidWorks API开发不同类型的应用程序。请参阅下面的比较表,以选择适合要求的正确应用类型。

.NET 项目的参考

SolidWorks 是一个基于 COM 的应用程序,因此当从 .NET 应用程序使用 SolidWorks API 时,需要添加程序集互操作以实现与 COM 的通信。

获取所需类型库一般有两种方法。

COM 类型库

通过将类型库 (*.tlb) 文件的引用直接添加到 .NET 项目 (sldworks.tlb, swconst.tlb, swpublish.tlb)。这可以通过浏览相应的类型库文件或在 COM 选项卡中查找注册的引用来完成。这些步骤等效于使用 tlbimp(类型库导入程序,https://learn.microsoft.com/zh-cn/dotnet/framework/tools/tlbimp-exe-type-library-importer),因为 Visual Studio 将在后台将类型库转换为互操作。转换后的等效 .NET 互操作将在项目中使用。

主互操作程序集 (PIA)

通过添加随 SolidWorks 安装一起提供的互操作程序集(SolidWorks.Interop.sldworks.dll、SolidWorks.Interop.swconst.dll、SolidWorks.Interop.swpublish.dll)。这些类型的互操作称为主互操作程序集 (PIA)。互操作库文件位于以下目录中,SolidWorks 安装文件夹\api\redist(面向框架 4.0 及更高版本的项目)和 SolidWorks 安装文件夹\api\redist\CLR2(面向框架 2.0 和 3.5 的项目)。

对于面向框架 4.0 的项目,我建议将“嵌入互操作类型(https://learn.microsoft.com/zh-cn/dotnet/framework/interop/type-equivalence-and-embedded-interop-types)”选项设置为 False。否则,由于类型转换问题,在调用 SolidWorks API 时,应用程序可能会出现不可预测的行为,但是这种情况在极少数情况下会发生。

差异

区别之一是名称和命名空间不同。对于从类型库生成的互操作,默认命名空间为 SldWorks、SWPublished 等(可以使用 tlbimp 实用程序更改默认命名空间),而命名空间名称中的 SldWorks.Interop 前缀在其他情况下使用。

但还有另一个主要区别。

从 COM 类型库生成的互操作不是强类型名称(https://learn.microsoft.com/zh-cn/dotnet/standard/assembly/create-use-strong-named)。

而随 SolidWorks 安装一起提供的主互操作程序集(PIA)是强类型名称。

如果您正在构建进程外独立应用程序(https://www.codestack.net/solidworks-api/getting-started/stand-alone/)(除非您的 *.exe 支持插件机制并且可以加载引用 SolidWorks 互操作的库),则几乎没有区别,但如果多个加载项引用不同版本的未签名(非强名称)互操作,则可能会导致进程内加载项应用程序(https://www.codestack.net/solidworks-api/getting-started/add-ins/)出现重大问题。这个视频(P1)中也展示了类似的问题。

最佳实践

  • 使用安装附带的主互操作程序集 (PIA),避免使用 COM 类型库。
  • 不要直接从安装文件夹引用互操作。这将导致在互操作未放在同一目录中或未添加到 GAC 的其他计算机上编译项目时失败。特别地,这将不利于实施持续集成/持续交付 (CI/CD,https://blog.xarial.com/ci-cd/)。
  • 最好是将互操作放在 NuGet 服务器上(https://www.nuget.org/),并将其添加为包。您可以使用内部托管服务器或使用公共服务器。
  • 如果上述选项不可行,则将库添加到与项目相同的文件夹中(例如,在解决方案 *.sln 文件旁边创建文件夹 threepty 并在其中复制互操作)并浏览此文件夹中的互操作以添加相对路径引用。

文章翻译自https://www.codestack.net/

仅供学习使用。

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

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

* 公司名称:

姓名不为空

手机不正确

公司不为空