Attribute VB_Name = "DXF_erzeugen" ' ****************************************************************************** ' created on 09/25/09 by FAWEMA / Lueghausen ' ' exportiert die Abwicklung als DXF in das UserExport-Verzeichnis auf ' \\fawema-tb\gain\gain\edm\user\%username%\export ' mit dem Dateinamen in der Form Artikelnr_Index.dxf ' ****************************************************************************** Dim swApp As Object Dim Part As Object Dim boolstatus As Boolean Dim longstatus As Long, longwarnings As Long Dim ExportPath As String, DXFName, LogFilename As String, Artikelnummer As String, Dateiname As String Dim UserName, ErrorMSG As String Dim value As Boolean Dim numConfigs As Long Dim Names As Variant Dim K As Integer Dim i As Integer Dim lBlechteil, ldebug As Boolean Dim cFilename As String Sub main() UserName = GetUserName() ExportPath = "\\fawema-tb\gain\gain\edm\user\" + UserName + "\export\" Set swApp = Application.SldWorks Set Part = swApp.ActiveDoc ldebug = False ' wenn true dann kommen zusätzlich zum Logfile Meldungen hoch If ldebug = False Then LogFilename = "\\fawema-profile\SolidWorks\DXF-Logfile.txt" Else LogFilename = "\\fawema-profile\SolidWorks\DXF-Logfile-debug.txt" End If ' prüfen ob aktive Dokument ein Part ist If Part.GetType() <> swDocPART Then If ldebug = True Then MsgBox ("aktives Dokument ist nicht vom Typ Modell !") End If ErrorMSG = "Fehler Export als DXF am " + FormatDateTime(Now) + ": " + Part.CustomInfo("F-Artikelnr") + " / " + Part.CustomInfo("F-Zeichnungsnr") + " / " + Part.CustomInfo("Procad@dokid") + " / " + UserName + ": kein PART!" Open LogFilename For Append Access Write Shared As #1 ' Datei schließen, bevor sie in einem anderen Modus erneut ' geöffnet wird. Write #1, ErrorMSG Close #1 Exit Sub End If cFilename = Part.GetTitle Dim myModelView As Object Set myModelView = Part.ActiveView myModelView.FrameState = swWindowState_e.swWindowMaximized Part.ShowNamedView2 "*Isometrisch", 7 boolstatus = Part.ShowConfiguration2("StandardSM-FLAT-PATTERN") If boolstatus = False Then If ldebug = True Then retvalue = MsgBox("keine Abwicklungskonfiguration vorhanden!", vbOKOnly, "Fehler") End If ErrorMSG = "Fehler keine AbwicklungsConfig am " + FormatDateTime(Now) + ": " + Part.CustomInfo("F-Artikelnr") + " / " + Part.CustomInfo("F-Zeichnungsnr") + " / " + Part.CustomInfo("Procad@dokid") + " / " + UserName + ": keine passende Konfiguration!" Open LogFilename For Append Access Write Shared As #1 ' Datei schließen, bevor sie in einem anderen Modus erneut ' geöffnet wird. Write #1, ErrorMSG Close #1 Exit Sub End If ' Dateinamen generieren Artikelnummer = Part.CustomInfo("F-Artikelnr") + "_" + Part.CustomInfo("F-ZGIndex") ' exportieren boolstatus = Part.ExportFlatPatternView(ExportPath + Artikelnummer + ".DXF", 1) If boolstatus = False Then If ldebug = True Then retvalue = MsgBox("Fehler beim DXF-Export!", vbOKOnly, "Fehler") End If ErrorMSG = "Fehler Export als DXF am " + FormatDateTime(Now) + ": " + Part.CustomInfo("F-Artikelnr") + " / " + Part.CustomInfo("F-Zeichnungsnr") + " / " + Part.CustomInfo("Procad@dokid") + " / " + UserName + ": keine passende Konfiguration!" Open LogFilename For Append Access Write Shared As #1 ' Datei schließen, bevor sie in einem anderen Modus erneut ' geöffnet wird. Write #1, ErrorMSG Close #1 Exit Sub End If 'boolstatus = Part.ShowConfiguration2("Standard") swApp.CloseDoc (cFilename) If ldebug = False Then value = swApp.ExitApp() End If Set Part = Nothing Set swApp = Nothing End Sub Function GetUserName() As String On Error Resume Next Dim objWSHNetwork As Object Set objWSHNetwork = CreateObject("WScript.Network") GetUserName = objWSHNetwork.UserName 'Debug.Print objWSHNetwork.ComputerName 'Debug.Print objWSHNetwork.UserDomain Set objWSHNetwork = Nothing End Function