在vbScript中调用SOLIDWORKS API:方法与实践

vbScript是一种基于Visual Basic的流行脚本语言。它是轻量级的,并且由Windows本机支持。代码可以在任何文本编辑器(例如记事本)中编辑。

脚本可以通过直接执行(即双击)或从命令行运行。命令行选项还支持输入参数。

vbScript 是后期绑定的,不需要使用 As 关键字显式声明变量类型。

vbScript 支持通过 ::CreateObject 和 ::GetObject 方法创建或连接到 COM 对象,这意味着它可以使用 SOLIDWORKS API 进行自动化。

使用以下行连接到 SOLIDWORKS 的实例。

Dim swApp
Set swApp = CreateObject("SldWorks.Application")

通过 vbScript 批量导出 SOLIDWORKS 模型

此 vbScript 示例演示如何使用 vbScript 批量导出 SOLIDWORKS 文档。

参数

  • 包含 SOLIDWORKS 模型的文件夹路径。
  • 筛选输入文件扩展名。
  • 输出文件夹的路径。
  • 输出格式的扩展名。
> "export-sw-models.vbs" "C:\Models" sldprt "C:\Output" step

export-sw-models.vbs

Dim dirPath
dirPath = WScript.Arguments.Item(0)

Dim filter
filter = WScript.Arguments.Item(1)

Dim outDir
outDir = WScript.Arguments.Item(2)

Dim outExt
outExt = WScript.Arguments.Item(3)

Dim swApp
Set swApp = CreateObject("SldWorks.Application")
swApp.Visible = True

Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")

Dim folder
Set folder = fso.GetFolder(dirPath)

dim file

For Each file in folder.Files
    If LCase(fso.GetExtensionName(file.Path)) = LCase(filter) Then
        Dim docSpec
        Set docSpec = swApp.GetOpenDocSpec(file.Path)
        docSpec.ReadOnly = True

        Dim swModel
        Set swModel = swApp.OpenDoc7(docSpec)

        If Not swModel is Nothing Then
            Dim outFilePath
            outFilePath = outDir & "\" & fso.GetBaseName(file) & "." & outExt
            swModel.SaveAs outFilePath
            swApp.CloseDoc swModel.GetTitle()
        End If
    End If
Next

swApp.ExitApp

使用 SOLIDWORKS API 脚本提取文件的质量属性

此示例演示如何通过 SOLIDWORKS API 使用 vbScript 从指定文件中提取质量属性。

  • 创建一个文本文件并将其命名为 get-mass-prps.vbs
  • 将以下代码复制并粘贴到文件中。

get-mass-prps.vbs

Dim swApp
Set swApp = CreateObject("SldWorks.Application")

Dim filePath
filePath = InputBox("Specify the path to the part file")

Dim docSpec
Set docSpec = swApp.GetOpenDocSpec(filePath)
docSpec.ReadOnly = True
docSpec.Silent = True

Dim swModel
Set swModel = swApp.OpenDoc7(docSpec)

Dim swMassPrps
Set swMassPrps = swModel.Extension.CreateMassProperty()

MsgBox "Mass: " & swMassPrps.Mass & vbLf & "Volume: " & swMassPrps.Volume & vbLf & "Surface area: " & swMassPrps.SurfaceArea

swApp.CloseDoc swModel.GetTitle()
  • 保存文件。
  • 双击运行脚本。
  • 在显示的输入框中指定 SOLIDWORKS 文件(零件或装配体)的完整路径。
  • 结果,将显示以下消息框,其中包含质量属性值。

指定模型的质量属性显示在消息框中

从 Windows 文件资源管理器以快速视图模式打开 SOLIDWORKS 装配体

从 SOLIDWORKS 开启大型设计审阅模式

SOLIDWORKS 启用在大型设计审阅模式(也称为快速视图)中打开大型装配体或工程图的选项。这允许仅加载装配体和图纸的视图信息,并显着提高性能(大型装配体通常在几秒钟内打开,而不是几分钟甚至几小时)。以后可以根据需要加载单个组件。

在大型设计审阅模式下打开的装配体

但是,从 Windows 文件资源管理器打开文档时不支持此模式。

以下指南介绍了如何直接从 Windows 文件资源管理器启用快速查看模式。

  • 创建新文件夹,其中包含以快速查看模式打开文件的脚本。
  • 创建一个扩展名为 .vbs 的文本文件,并将其命名为 opener.vbs
  • 将以下代码粘贴到此文件中。

opener.vbs

Dim swApp
Set swApp = CreateObject("SldWorks.Application")
swApp.Visible = True

Dim filePath
filePath = WScript.Arguments.Item(0)

If filePath <> "" then

	Dim docSpec
	Set docSpec = swApp.GetOpenDocSpec(filePath)
	docSpec.ViewOnly = True

	Dim swModel
	Set swModel = swApp.OpenDoc7(docSpec)

	If swModel is Nothing Then
		MsgBox "Failed to open document"
	End If

Else
	MsgBox "File path is not specified"
End If
  • 创建另一个文本文件并将其命名为 install.cmd
  • 将以下行添加到 install.cmd 中,这将为装配体启用快速模式。

install.cmd

reg add "HKCR\SldAssem.Document\shell\Quick View\command" /ve /d "wscript.exe """%~dp0opener.vbs""" ""%%1""" /f
  • 如果要为图纸启用快速视图模型,请同时添加以下行。
reg add "HKCR\SldDraw.Document\shell\Quick View\command" /ve /d "wscript.exe """%~dp0opener.vbs""" ""%%1""" /f

保存这两个文件。将这些文件保留在同一文件夹中很重要。

用于从 Windows 资源管理器启用快速模式的文件

  • 运行 install.cmd。您可能需要以管理员身份运行此命令。

快速视图(Quick View)命令将添加到 Windows 文件资源管理器的上下文菜单中。选择任何组件,然后单击鼠标右键。单击“快速查看”,文件将在 SOLIDWORKS 中以快速查看模式打开:

选择装配体时的快速查看上下文菜单

文章翻译自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
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空