SW: Mehrfacher DXF-Export aus 3D

Hallo ihr alle

Ich bin auf der Suche nach einem Makro, um .dxf-Exporte aller in einer Datei vorhandenen 3D-Dateien durchzuführen. Lassen Sie mich erklären, dass sich alle meine 3D-Blechdateien in einem Kundenordner befinden und ich möchte, dass jedes Teil entfaltet wird, wenn ich das Makro ausführe und es als .dxf-Datei für Blechoptionen speichere. 

Ich habe mir angeschaut, was es im Netz gibt, aber ich konnte kein Äquivalent zu meiner Forschung finden. 

Vielen Dank im Voraus

Hallo

Schauen Sie sich den Aufgabenplaner an, um zu sehen, ob es ein paar Dinge gibt.

Batch-Konverter (Tool der mycadservices Premium Suite)

1 „Gefällt mir“

Erklärung hier, siehe am Ende des Videos für die Möglichkeiten zum Exportieren von Blechteilen in dxf:  http://youtu.be/wJeSg5cO06s

1 „Gefällt mir“

Leider habe ich nur die Standardversion von SW, daher wollte ich ein Makro durchgehen.

Hier ist die grundlegende Funktion, die in Solidworks enthalten ist (ohne dass ein Tool eines Drittanbieters erforderlich ist...):

DXF-DWG Export - Seite 1

DXF-DWG Export - Seite 2

Wenn man sich dann seine Funktionen auf der Makroseite ansieht, sollte es eine Möglichkeit geben, es zu automatisieren...

Bei der Makroseite kann ich nicht helfen.

Danke Olivier, ich kenne diese Methode, aber wenn man einen Ordner mit mehreren Teilen hat, die man in eine .dxf-Datei umwandeln muss, ist er super lang...

Also wollte ich den gleichen Weg wie dieses Makro = > dwg zu pdf , aber von Sldprt zu .dxf gehen

 

 

Hallo

Hier ist ein Code-Schnipsel, mit dem Sie aus einer sldprt die Entfaltung eines Blechs in dxf aufzeichnen können.

Sub main()

    Dim swApp As SldWorks.SldWorks
    Dim swmodel As SldWorks.ModelDoc2
    Dim stPath As String
    Dim lgFichier As Long
    Dim blretval As Boolean
    
    Set swApp = Application.SldWorks

    'on récupére le document actif
    Set swmodel = swApp.ActiveDoc
    
    If Not swmodel Is Nothing Then
       'on vérifie que le fichier est enregisté
        If swmodel.GetPathName = "" Then
            MsgBox "Veuillez enregistrer votre document avant de lancer la macro", vbInformation
            End
        Else
            'on récupére l'emplacement du fichier
            stPath = swmodel.GetPathName

            'on récupére le nombre de caractére jusqu'au . de l'extension
            lgFichier = InStrRev(stPath, ".", -1, vbTextCompare) - 1
            'on récupére le chemin sans l'extention
            If lgFichier > 0 Then
                  stPath = Left(stPath, lgFichier)
            End If
        End If
        
        'si le document est une pièce
        If swmodel.GetType = swDocPART Then
           'on créer le déplié
            blretval = swmodel.ExportFlatPatternView(stPath & ".DXF", 1)
            'on créer le DXF
            blretval = swmodel.SaveAs3(stPath & ".DXF", 0, 0)
        End If
    End If

End Sub

 

Sie müssen noch den Code für den Analyseteil des Ordners schreiben, den Teil laden und dann diesen Teil schließen.

Herzliche Grüße

2 „Gefällt mir“

Danke für Ihre Hilfe

Mein Programm funktioniert jetzt! Es wird geöffnet, speichert die DXF-Datei und schließt alle Teile im ausgewählten Ordner.

Ich teile

 

 

'-------------------------------------------------------------------------------------------------------------


Option Explizit

Private Const BIF_RETURNONLYFSDIRS so lang = &h1
Private Const BIF_DONTGOBELOWDOMAIN so lang = &h2
Private Const BIF_RETURNFSANCESTORS so lang = &h8
Private Const BIF_BROWSEFORCOMPUTER Solange = &H1000
Private Const BIF_BROWSEFORPRINTER Solange = &H2000
Private Const BIF_BROWSEINCLUDEFILES Solange = &H4000
Private Const MAX_PATH Solange = 260

Funktion BrowseFolder(Optional Caption As String, Optional InitialFolder As String) Als String

Dim SH As Shell32.Shell
Dim F As Shell32.Folder

Set SH = Neue Shell32.Shell
Setze F = SH. BrowseforFolder(0&, Caption, BIF_RETURNONLYFSDIRS, InitialFolder)
Wenn nicht, ist F nichts, dann
    Wenn F = "Desktop" dann
        BrowseFolder = Über("BENUTZERPROFIL") & "\Desktop"
    Oder
        BrowseFolder = F.Items.Item.Path
    Ende, wenn
Ende, wenn

Ende-Funktion

Sub main()
Dim swApp        als SldWorks.SldWorks
Dim swmodel      As SldWorks.ModelDoc
Dim sFileName    als Zeichenfolge
Pfad         als Zeichenfolge dimmen
Dim nErrors      so lange
Dimmen    nWarnungen so lange
Dim swPart       als SldWorks.PartDoc
Dim PartNoDes    As String
Dim stPath As String
Dim lgFile so lange
Dim blretval As Boolean


    Legen Sie swApp = Application.SldWorks fest
   ' Set swExportPDFData = swApp.GetExportFileData(1)
  
    
    Path = BrowseFolder("Pfad/Ordner auswählen")
    Wenn Pfad = "" dann
        MsgBox "Bitte wählen Sie den Pfad aus und versuchen Sie es erneut"
        Ende
    Oder
    Pfad = Pfad + "\"
    Ende, wenn
         
    sFileName = Verzeichnis(Pfad & "*.sldprt")
    Ausführen, bis sFileName = ""
        Set swmodel = swApp.OpenDoc6(Pfad + sFileName, swDocPART, swOpenDocOptions_Silent, "", nErrors, nWarnings)
        Legen Sie swmodel = swApp.ActiveDoc fest.
        Legen Sie swPart = swApp.ActiveDoc fest
           
                   Wenn swmodel. GetPathName = "" dann
            MsgBox "Bitte speichern Sie Ihr Dokument, bevor Sie das Makro starten", vbInformation
            Ende
        Oder
            "Wir erhalten den Speicherort der Datei
            stPath = swmodel. GetPathName (Englisch)

            "Wir bringen die Anzahl der Zeichen auf . der Erweiterung
            lgFile = InStrRev(stPath, ".", -1, vbTextCompare) - 1
            "Wir gewinnen den Weg ohne die Verlängerung zurück
            Wenn lgFile > 0 ist, dann
                  stPath = Links(stPath, lgFile)
            Ende, wenn
        Ende, wenn
        
        "Handelt es sich bei dem Dokument um ein Dokument
        Wenn swmodel. GetType = swDocPART Dann
           "Wir erschaffen das Entfaltete
            blretval = swmodel. ExportFlatPatternView(stPath & ". DXF", 1)
            Das DXF wurde erstellt
            blretval = swmodel. SaveAs3(stPath & ". DXF", 0, 0)
        Ende, wenn
           
             swApp.QuitDoc swPart.GetPathName
        Set swPart = Nichts
        Set swmodel = Nichts
        sFileName = Verzeichnis
    Schleife

MsgBox "Alles erledigt"
Ende Sub

'-------------------------------------------------------------------------------------------------------------

4 „Gefällt mir“