夜雨聆风学习资料网

ARTICLE · 1231872

SolidWorks*Excel+VBA-文档管理器API探讨

SolidWorks*Excel+VBA-文档管理器API探讨
SolidWorks提供的API类型库有中这么一个神奇的东西,叫

SOLIDWORKS Document Manager API

官方介绍是这样的:

https://help.solidworks.com/2026/english/api/swdocmgrapi/Welcome-swdocmgrapi.html?id=8.0

SOLIDWORKS 文档管理器 API:

允许您编写模拟文件管理工具的应用程序,以执行重命名、替换和复制 SOLIDWORKS 设计文档等任务。

独立的软件组件,为 SOLIDWORKS 设计文档提供读写功能。它包含文档和配置的接口。这些接口具有只读和读写属性及方法。

此文档管理器 API 符合 COM 标准,且仅支持符合自动化标准的各种数据类型。它允许您开发应用程序,而无需直接读取或写入 SOLIDWORKS 设计文件内部的二进制数据。事实上,使用此 API 无需在您的系统上安装 SOLIDWORKS 设计软件。但是,必须获取 SOLIDWORKS 文档管理器 API 的许可证密钥。

注意:所有提供的示例代码均按“原样”提供,仅用于演示使用 SOLIDWORKS 文档管理器 API 的方法。SOLIDWORKS 不对这些示例做出任何述或保证。SOLIDWORKS 文档管理器 API 的任何授权用户均可自由使用这些示例的任何或全部内容,用于构建与 SOLIDWORKS 文档管理器 API 应用程序,并被授予这些示例或其部分的免版税、非独占许可。示例的知识产权仍归 SOLIDWORKS 所有。SOLIDWORKS 文档管理器 API许可证的任何保密条款均适用于这些示例。某些示例代码可能包含已过时的 API。

警告:SOLIDWORKS 文档管理器 API 是一款功能强大的编程,如果使用不当,可能会损坏您的数据。只有熟悉 SOLIDWORKS 设计文档引用的经验丰富的 API 程序员才应使用 SOLIDWORKS 文档管理器 API。建议在运行应用程序之前,为应用程序访问的文件创建备份副本。


总结下核心内容,就两点,一是可以脱离主程序不打开文件直接读取数据,二是需要正确密钥才能使用这个功能,密钥需要正版用户去官网申请,也可以找经销商帮你要。

在VBA编程界面,需要先勾选引用这个类型库,如图:

在"无所不能的好兄弟"的帮助下,号主搞到了一套暂时的密钥。

这个API也有查看预览图的功能,经测试,确实不需要主程序介入:

关注
重播 分享 赞

API调用逻辑主程序大致结构如下:

'**********************'Copyright(C) 2025 Xarial Pty Limited'Reference: https://www.codestack.net/solidworks-document-manager-api/getting-started/create-connection/'License: https://www.codestack.net/license/'**********************Const SW_DM_KEY As String = "[CompanyName]:swdocmgr_general-00000-{31 times},swdocmgr_previews-00000-{31 times},swdocmgr_dimxpert-00000-{31 times},swdocmgr_geometry-00000-{31 times},swdocmgr_xml-00000-{31 times},swdocmgr_tessellation-00000-{31 times}"Dim swDmClassFactory As SwDocumentMgr.swDmClassFactoryDim swDmApp As SwDocumentMgr.SwDMApplicationSub main()    Set swDmClassFactory = CreateObject("SwDocumentMgr.SwDMClassFactory")    If Not swDmClassFactory Is Nothing Then        Set swDmApp = swDmClassFactory.GetApplication(SW_DM_KEY)        Debug.Print swDmApp.GetLatestSupportedFileVersion()    Else        MsgBox "Document Manager SDK is not installed"    End IfEnd Sub

从示例中可以看出,完整密钥有6大部分,每一部分解锁其对应的功能。

swdocmgr_general-00000-{31 times}swdocmgr_previews-00000-{31 times}swdocmgr_dimxpert-00000-{31 times}swdocmgr_geometry-00000-{31 times}swdocmgr_xml-00000-{31 times}swdocmgr_tessellation-00000-{31 times}

由于SW官方对这个的版权控制比主程序还要严格,号主不能直接贴出来给大家使用,风险太大。

但是,SW自带的PACK AND GO功能也不用打开主程序文件,说明它本身也是调用的这个库,或许可以想想办法从这方面入手?

相关学习资料