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