[partage] Macro pour créer un 3D de l'assemblage, step ou edrawing

Bonjour,
je vous partage le code de mes macros. Aujourd’hui c’est pour créer automatiquement le fichier STEP ou eDrawing de l’assemblage en cours, en l’enregistrant dans un dossier prédéfini :

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

Il faut remplacer folderRoot = "\nom_du_serveur\nom_du_dossier" par votre propre chemin
J’ai volontairement laissé des lignes commentées, c’est pour le STEP. Vous pouvez ici les utiliser pour définir la version 214 par exemple
J’espère que ça vous aidera
CEd

3 « J'aime »

Merci pour le partage @cedric_keiflin
Cependant, je remplacerai la selection « Rigide » de

par l’ouverture d’un navigateur Windows avec une demande de sélection de l’emplacement du fichier à Sauvegarder:

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

Attention: il est nécessaire de charger la Référence " Microsoft Scripting Runtime" pour utiliser l’explorateur Windows…

Nota : Dans l’exemple ci-dessus, par souci de compatibilité, j’ai conservé le Nom " folderRoot" comme variable d’emplacement.
Il faut ensuite remplacer LE NOM DU DOSSIER PREDEFINI par le chemin du point de départ de la fenetre de navigation…

Exemple :
.InitialFileName = « LE NOM DU DOSSIER PREDEFINI »
devient
.InitialFileName = "G:\3D_Solidworks\Affaire" (ici « G » peut être une lettre d’emplacement Reseau)

A toi de voir s’il te semble interessant de l’associé à ta macro.

3 « J'aime »

bien sur on peut adapter :slight_smile:
dans mon cas le chemin en dur est une volonté car je veux que ce fichier aille toujours dans le même dossier (export pour l’atelier)
dans mon code, tu cliques et ça créé le fichier avec le nom dans le dossier voulu, par besoin de parcourir

Merci @cedric_keiflin !