Hallo Ik deel de code van mijn macro's met je. Tegenwoordig is het om automatisch het STEP- of eDrawing-bestand van de lopende assemblage te maken door het op te slaan in een vooraf gedefinieerde map:
Dim swApp As Object
Dim Part As Object
Sub main()
Set swApp = Application.SldWorks
'bRet = swApp.SetUserPreferenceIntegerValue(swUserPreferenceIntegerValue_e.swStepAP, 214)
'Step = swApp.SetUserPreferenceIntegerValue(swStepAP, 214)
Set Part = swApp.ActiveDoc
sPathName = Part.GetPathName
sPathName = Mid(sPathName, InStrRev(sPathName, "\") + 1, Len(sPathName) - InStrRev(sPathName, "\") - Len(".sldasm"))
'sPathName = sPathName + ".STEP"
folderRoot = "\\nom_du_serveur\nom_du_dossier\"
Part.SaveAs2 folderRoot & sPathName & ".easm", 0, True, False
MsgBox ("Fichier enregistré : sPathName & ".easm")
End Sub
Je moet folderRoot = "\nom_du_serveur\nom_du_dossier" vervangen door je eigen pad Ik heb bewust wat becommentarieerde regels achtergelaten, het is voor de RWZI. Hier kunt u ze gebruiken om bijvoorbeeld versie 214 te definiëren Ik hoop dat dit je helpt Ced
Bedankt voor het delen van @cedric_keiflin ... Ik zal echter de " Stijve " selectie van
door een Windows-browser te openen met het verzoek om de locatie van het op te slaan bestand te selecteren:
Dim fso As FileSystemObject
Dim oF1 As FileSystemObject
Dim folderRoot As folder
Dim fldr As FileDialog
Dim sItem As String
Sub main ()
Set fso = New FileSystemObject 'Appel du script FileSystemObject
Set fldr = Application.FileDialog(msoFileDialogFolderPicker)
With fldr
.Title = "Select a Folder"
.AllowMultiSelect = False ‘False = Ne pas autoriser la Multi-Selection ; True = Autoriser la Multi-Selection
.InitialFileName = "LE NOM DU DOSSIER PREDEFINI" 'Répertoire initial de l'explorateur windows
If .Show <> -1 Then GoTo NextCode
sItem = .SelectedItems(1)
End With
Set folderRoot = fso.GetFolder(sItem) 'Mettre le nom de la racine du dossier à scanner
End sub
Waarschuwing: het is noodzakelijk om de referentie " Microsoft Scripting Runtime" te laden om Windows Verkenner te gebruiken...
Opmerking: In het bovenstaande voorbeeld heb ik voor compatibiliteit de naam "folderRoot" als locatievariabele behouden. Dan moet u de NAAM VAN DE VOORAF GEDEFINIEERDE MAP vervangen door het pad van het startpunt van het navigatievenster...
Voorbeeld: . InitialFileName = " DE NAAM VAN DE VOORAF GEDEFINIEERDE MAP" Wordt . InitialFileName = "G:\3D_Solidworks\Deal" (hier kan " G " een netwerklocatieletter zijn)
Het is aan jou om te zien of het je interessant lijkt om het te associëren met je macro.
Natuurlijk kunnen we ons aanpassen In mijn geval is de moeilijke weg een testament omdat ik wil dat dit bestand altijd in dezelfde map komt (export voor de werkplaats) In mijn code klik je en wordt het bestand met de naam in de gewenste map gemaakt, zonder te hoeven bladeren