Witam
Obecnie jestem w impasie w sprawie tego kodu Pack And Go.
Specyfikacje:
- Pobierz paczkę i przejdź z zestawu /Ok dla mnie/
- Wyświetla listę wszystkich plików, które zawierają " OF " /Ok dla mnie/
- Zachowaj tylko to /Ok dla mnie/
- Zmień ich nazwę na nowy numer /Ok dla mnie/
- Utwórz moją nową listę Pack And Go /Ok dla mnie/
- Wygeneruj pakiet i idź // Nie działa //
Moja tabela filesArray jest dobrze wypełniona, wywołuję ją za pomocą SetDocumentSaveToNames.
Tyle tylko, że ona nie bierze tego pod uwagę.
Funkcja SavePackAndGo nie działa.
Z góry dziękuję za odpowiedzi.
Sub main()
Dim swApp jako SldWorks.SldWorks
Dim swModel As ModelDoc2
Dim swModelDocExt As SldWorks.ModelDocExtension
Przyciemnij swPackAndGo jako PackAndGo
Dim statusArray As Variant
Stan przyciemnienia Jako wartość logiczna
Przyciemnij statusy Jako wartość logiczna
Dim arraySource() As String
Dim arrayResult() As String
Dim i As Long, j As Long
Dim searchString As Ciąg
Słońce LiczbaSzukaj jako Ciąg
Przyciemnij liczbę tak długo
Przyciemnij wynik jako ciąg
Licznik przyciemniony Kolekcja As
Dim numeroOF As Variant
Dim RsultatOF As Ciąg
Przyciemnij filesArray() jako ciąg
Dim listeOF() As Ciąg
' Initialiser SolidWorks
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
' Vérifier si un document est ouvert
If swModel Is Nothing Then
MsgBox "Veuillez ouvrir un document SolidWorks."
Exit Sub
End If
Set swModelDocExt = swModel.Extension
' Créer l'objet Pack and Go
Set swPackAndGo = swModelDocExt.GetPackAndGo
' Include any drawings, SOLIDWORKS Simulation results, and SOLIDWORKS Toolbox components
swPackAndGo.IncludeDrawings = Fałsz
Debug.Print " Dołącz rysunki: " & swPackAndGo.IncludeDrawings
swPackAndGo.IncludeSimulationResults = Fałsz
Debug.Print " Uwzględnij wyniki symulacji SOLIDWORKS: " & swPackAndGo.IncludeSimulationResults
swPackAndGo.IncludeToolboxComponents = Fałsz
Debug.Print " Dołącz komponenty SOLIDWORKS Toolbox: " & swPackAndGo.IncludeToolboxComponents
' Obtenir les informations sur les fichiers
swPackAndGo.GetDocumentNames namesArray
' Structure répertoire
swPackAndGo.FlattenToSingleFolder = True
' Définir la chaîne de recherche
searchString = "OF "
origineOF = "30277"
nouvelOF = "45000"
' Utiliser Filter pour extraire les éléments contenant la chaîne de recherche
tableauResultat = Filter(namesArray, searchString, True, vbTextCompare)
'myPath = "C:\BE\1 Plans 2024\Mathieu"
For i = LBound(tableauResultat) To UBound(tableauResultat)
RsultatOF = tableauResultat(i)
j = j + 1
Debug.Print RsultatOF
Next i
ReDim filesArray(0 To j - 1)
For i = 0 To UBound(tableauResultat)
FileName = GetFileName(CStr(tableauResultat(i)))
' Remplacer la chaîne si spécifié
If origineOF <> "" Then
FileName = Replace(FileName, origineOF, nouvelOF)
FileNames = FileName
End If
filesArray(k) = FileNames
Debug.Print "Nouveau fichier " & filesArray(k)
k = k + 1
'Debug.Print FileNames
Next
myPath = "C:\BE\1 Plans 2024\Mathieu"
status = swPackAndGo.SetSaveToName(True, myPath)
statuses = swPackAndGo.SetDocumentSaveToNames(filesArray)
statusArray = swModelDocExt.SavePackAndGo(swPackAndGo)
Koniec subwoofera
Funkcja GetFileName(ścieżka jako ciąg) jako ciąg
GetFileName = Right(ścieżka, Len(ścieżka) - InStrRev(ścieżka, ""))
Zakończ funkcję
PackAndGo.zip (1.1 MB)
MTD-PackAndGo-teste.swp (40,5 KB)