[Teilen] Makro zum Erstellen einer 3D-Datei der Baugruppe, des Schritts oder der E-Zeichnung

Hallo
Ich teile mit Ihnen den Code meiner Makros. Heute geht es darum, die STEP- oder eDrawing-Datei der laufenden Baugruppe automatisch zu erstellen, indem sie in einem vordefinierten Ordner gespeichert wird:

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

Sie müssen folderRoot = "\nom_du_serveur\nom_du_dossier" durch Ihren eigenen Pfad ersetzen
Ich habe bewusst einige kommentierte Zeilen hinterlassen, es ist für die Kläranlage. Hier können Sie diese verwenden, um z.B. die Version 214 zu definieren
Ich hoffe, das hilft Ihnen
Ced

3 „Gefällt mir“

Vielen Dank für das Teilen @cedric_keiflin ...
Ich werde jedoch die " Starr " -Auswahl von

durch Öffnen eines Windows-Browsers mit der Aufforderung, den Speicherort der zu speichernden Datei auszuwählen:

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

Achtung: Es ist notwendig, die Referenz " Microsoft Scripting Runtime" zu laden, um den Windows Explorer zu verwenden...

Hinweis: Im obigen Beispiel habe ich aus Kompatibilitätsgründen den Namen "folderRoot" als Speicherortvariable beibehalten.
Dann müssen Sie den NAMEN DES VORDEFINIERTEN ORDNERS durch den Pfad des Startpunkts des Navigationsfensters ersetzen...

Beispiel:
. InitialFileName = " DER NAME DES VORDEFINIERTEN ORDNERS"
Wird
. InitialFileName = "G:\3D_Solidworks\Deal" (hier kann " G " ein Buchstabe für den Netzwerkstandort sein)

Es liegt an Ihnen zu sehen, ob es Ihnen interessant erscheint, es mit Ihrem Makro zu verknüpfen.

3 „Gefällt mir“

Natürlich können wir uns anpassen :slight_smile:
In meinem Fall ist der harte Pfad ein Testament, weil ich möchte, dass diese Datei immer im selben Ordner abgelegt wird (Export für die Werkstatt)
In meinem Code klicken Sie auf und es wird die Datei mit dem Namen im gewünschten Ordner erstellt, ohne dass Sie sie durchsuchen müssen

Merci @cedric_keiflin !