Konvertieren Sie 3D-Masse in Dxf, wobei der Ursprung beibehalten wird

Hallo 

Ich habe mehrere 3D-Profile auf einem Teil (Teilefamilie), die ich in DXF konvertieren muss, und behalte ihren Konfigurationsnamen als Dateinamen bei, nachdem ich Batchconverter ausprobiert habe, stelle ich fest, dass der Ursprung meines Teils nicht enthalten ist. Ich habe ein Makro ausprobiert, aber mir passiert dasselbe.

Die einzige Lösung, die ich gefunden habe, besteht darin, für jede Konfiguration unter dxf zu speichern. Es ist lang und ich habe mehrere solcher Stücke zu machen. 

Haben Sie eine Lösung für mein Problem? 

Vielen Dank.

Herzliche Grüße

Mein Makro: 

Option Explicit
Sub main()

    Dim swApp                   As SldWorks.SldWorks
    Dim swModel                 As SldWorks.ModelDoc2
    Dim vConfNameArr            As Variant
    Dim sConfigName             As String
    Dim nStart                  As Single
    Dim i                       As Long
    Dim bShowConfig             As Boolean
    Dim bRebuild                As Boolean
    Dim bRet                    As Boolean
  

    Set swApp = CreateObject("SldWorks.Application")
    Set swModel = swApp.ActiveDoc

    vConfNameArr = swModel.GetConfigurationNames

    For i = 0 To UBound(vConfNameArr)

        sConfigName = vConfNameArr(i)

       
bShowConfig = swModel.ShowConfiguration2(sConfigName)

bRebuild = swModel.ForceRebuild3(False)

Dim FilePath As String
Dim PathSize As Long
Dim PathNoExtension As String
Dim NewFilePath As String

FilePath = swModel.GetPathName
PathSize = Strings.Len(FilePath)
PathNoExtension = Strings.Left(FilePath, PathSize - 6)

NewFilePath = PathNoExtension + sConfigName & ".DXF"

'Export Flat Pattern
bRet = swModel.ExportFlatPatternView(NewFilePath, 1)

Next i

End Sub

 

 


meule_heller_pour_dxf.sldprt

Hallo

Die Funktion "ExportFlatPatternView" ist veraltet, in Ihrem Makro müssen Sie die Funktion ExportToDWG2 verwenden und mit dem Parameter "Alignment" sehen, um die Koordinaten des Ursprungs und die Richtungen der Achsen festzulegen.

Herzliche Grüße

Hallo 

Vielen Dank für Ihre Antwort, 

Haben Sie ein Beispiel für die Anwendung? Weil ich nicht verstehe, dass es darum geht, nach DWG zu exportieren, oder?

 

Herzliche Grüße.

Hallo

Wie in den Funktionseinstellungen angegeben, handelt es sich dabei um einen Export in DXF oder DWG:

"FilePath : Pfad und Dateiname der exportierten DXF/DWG-Datei"

Auf dem Link, den ich euch gegeben habe, gibt es bereits ein Beispiel, siehe HIER. Um in diesem Beispiel in DXF zu speichern, ändern Sie einfach die Zeile sPathName = sPathName + "dwg" in sPathName = sPathName + "dxf".

Herzliche Grüße

Hallo 

Ok, ich bin nicht gut genug für Makros.  ^^

Wenn ich möchte, dass die DXF am Dateispeicherort meiner 3D erstellt wird, muss ich etwas anfassen? und ich möchte, dass das Makro für jede Konfiguration einen DXF erstellt

Wenn Sie die Zeit haben, natürlich

 

Herzliche Grüße.

Hier ist ein Beispiel, das auf Ihrem Makro basiert:

Option Explicit

Sub main()

    Dim swApp                   As SldWorks.SldWorks
    Dim swModel                 As SldWorks.ModelDoc2
    Dim swPart                  As SldWorks.PartDoc
    Dim vConfNameArr            As Variant
    Dim sConfigName             As String
    Dim nStart                  As Single
    Dim i                       As Long
    Dim bShowConfig             As Boolean
    Dim bRebuild                As Boolean
    Dim bRet                    As Boolean
    Dim varAlignment            As Variant
    Dim dataAlignment(11)       As Double
    Dim varViews                As Variant
    Dim dataViews(0)            As String

    Set swApp = CreateObject("SldWorks.Application")
    Set swModel = swApp.ActiveDoc
    
    swModel.ShowNamedView2 "*Face", 1
    swModel.ViewZoomtofit2
    
    dataAlignment(0) = 0#
    dataAlignment(1) = 0#
    dataAlignment(2) = 0#
    dataAlignment(3) = 1#
    dataAlignment(4) = 0#
    dataAlignment(5) = 0#
    dataAlignment(6) = 0#
    dataAlignment(7) = 1#
    dataAlignment(8) = 0#
    dataAlignment(9) = 0#
    dataAlignment(10) = 0#
    dataAlignment(11) = 1#

    varAlignment = dataAlignment

    varViews = dataViews

    vConfNameArr = swModel.GetConfigurationNames

    For i = 0 To UBound(vConfNameArr)

        sConfigName = vConfNameArr(i)

        bShowConfig = swModel.ShowConfiguration2(sConfigName)
        
        bRebuild = swModel.ForceRebuild3(False)

        Dim sPathName As String
        Dim sModelName As String
        
        sModelName = swModel.GetPathName
        
        sPathName = swModel.GetPathName
        sPathName = Left(sPathName, Len(sPathName) - 6)
        sPathName = sPathName + sConfigName + ".dxf"
    
        Set swPart = swModel

        swPart.ExportToDWG2 sPathName, sModelName, swExportToDWG_ExportAnnotationViews, False, varAlignment, False, False, 0, varViews

    Next i

End Sub

Herzliche Grüße

1 „Gefällt mir“

Vielen Dank. 

Dies wird mir bei meiner Arbeit und insbesondere beim Erlernen von VBA-Code helfen. 

Herzliche Grüße

Hallo 

Ich erlaube mir, dieses Makro neu zu schreiben, in der Tat möchte ich es verbessern, indem ich den Ordner auswähle, in dem es gespeichert werden soll, aber ich blockiere es dort ein wenig, ich kann den Ordner auswählen, aber es speichert immer noch, wo die Datei ist. 

Welcher Code fehlt mir? Ich versuche, im Internet zu suchen, aber es gibt so viel anderen Code.

Herzliche Grüße.


dxf.swp