[delen] Macro om een 3D van de assemblage, stap of etekening te maken

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

3 likes

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.

3 likes

Natuurlijk kunnen we ons aanpassen :slight_smile:
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

Merci @cedric_keiflin !