出现该问题的原因是Solidworks 2022 VBA修改零件名称后打包函数Pack and Go无法正常工作。
您可以尝试使用以下代码来替代原有的VBA代码来重新命名零件,并且可以正常进行打包:
'获取所有零件文档
Dim swDocs As Variant
swDocs = swApp.GetDocuments
Dim swModel As SldWorks.ModelDoc2
Dim swPart As SldWorks.PartDoc
'遍历所有的文档
For i = 0 To UBound(swDocs)
Set swModel = swDocs(i)
If swModel.GetType = swDocPART Then
Set swPart = swModel
'修改零件名称
swPart.CustomInfo2("文件名", "") = "新的零件名称"
End If
Next
'执行打包操作
PackAndGo(swApp)
其中,PackAndGo函数是一个自定义函数,代码如下:
Function PackAndGo(ByVal swApp As SldWorks.SldWorks) As Boolean
' 弹出打包对话框
Dim savePath As String
savePath = "C:\Users\admin\Desktop\Pack and Go Files" '这里替换成你自己的路径
If Not swApp.RunCommand(swCommandsPackAndGo) Then
MsgBox "Failed to open Pack and Go"
End If
'获取Pack and Go对象
Set packngo = swApp.ActiveDoc
'设置输出位置和选项
packngo.Extension.SaveAs savePath & "Pack and Go Files.zip"
packngo.FileSaveOptions = swPackAndGoSaveAsOptions_e.swPackAndGoSaveAsCurrentVersion
packngo.SavePackAndGo
'关闭和清理Pack and Go对象
packngo.Close
Set packngo = Nothing
PackAndGo = True
End Function