#vba #api #solidworks
Вопрос:
У меня есть код, который «Упаковывается и отправляется» отдельно, и таблица чертежей и дизайна перемещается в новое место, и все три файла имеют одинаковые имена. И теперь у меня возникла проблема с обновлением этой упакованной детали из таблицы дизайна, поскольку у меня нет таблицы дизайна, связанной с этой деталью, потому что код, который у меня есть для «Упаковать и уйти», не переименовывает файлы, если он подключен.
Option Explicit
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swModelDocExt As SldWorks.ModelDocExtension
Dim swPackAndGo As SldWorks.PackAndGo
Dim OpenFilePath As String
Dim OpenFileName As String
Dim SavePath As String
Dim SaveName As String
Dim myFileName As String
Dim myExtension As String
Dim pgFileNames As Variant
Dim pgFileStatus As Variant
Dim status As Boolean
Dim statuses As Variant
Dim i As Long
Dim partDocExt As SldWorks.ModelDocExtension
Sub PackAndGo()
Call Calculate_TFVPM_FormatSketchFileName
OpenFilePath = "E:FORMATFormatSketch.SLDPRT"
SavePath = "E:FORMATTemp"
SaveName = NewSaveName
Set swApp = GetObject(, "SldWorks.Application")
Set swModel = swApp.OpenDoc(OpenFilePath, swDocPART)
'Set swModel = swApp.ActiveDoc
OpenFilePath = swModel.GetPathName
OpenFileName = Mid(OpenFilePath, InStrRev(OpenFilePath, "") 1, InStrRev(OpenFilePath, ".") - InStrRev(OpenFilePath, "") - 1)
Set swModelDocExt = swModel.Extension
'Update part from design table
'Get Pack and Go object
Set swPackAndGo = swModelDocExt.GetPackAndGo
'Include any drawings
swPackAndGo.IncludeDrawings = True
'Set folder where to save the files
status = swPackAndGo.SetSaveToName(True, SavePath)
'Get files path
status = swPackAndGo.GetDocumentSaveToNames(pgFileNames, pgFileStatus)
For i = 0 To UBound(pgFileNames)
myFileName = Mid(pgFileNames(i), InStrRev(pgFileNames(i), "") 1, InStrRev(pgFileNames(i), ".") - InStrRev(pgFileNames(i), "") - 1)
myExtension = Right(pgFileNames(i), Len(pgFileNames(i)) - InStrRev(pgFileNames(i), ".") 1)
'Replace name
If LCase(myFileName) = LCase(OpenFileName) Then
pgFileNames(i) = SavePath amp; SaveName amp; myExtension
End If
Next
'Set files path
status = swPackAndGo.SetDocumentSaveToNames(pgFileNames)
'Flatten the Pack and Go folder structure; save all files to the root directory
swPackAndGo.FlattenToSingleFolder = True
'Pack and Go
statuses = swModelDocExt.SavePackAndGo(swPackAndGo)
'Close initial template
swApp.CloseDoc (swModel.GetPathName)
End Sub
Не совсем уверен, как найти в Google то, что я ищу, но то, что я нашел, это:
http://help.solidworks.com/2018/english/api/sldworksapi/get_excel_design_table_worksheet_example_vb.htm
Пытаясь понять это, может быть, кто-то здесь уже знает решение?