Hallo zusammen,
ich sitze nun schon seit einiger Zeit an diesem Problem und komme alleine durch Foren- und Internetrecherche nicht weiter. Vermutlich liegt das Problem in meinem Verständnis (Knoten im Kopf).
Vor einiger Zeit, habe ich ein Inventor-Tool mit Visual Basic programmiert (vb.NET), das alle Zeichnungen eines Ordners öffnet und als PDF, DXF und TIF speichert. Das ganze wollte ich jetzt abändern, damit SolidWorks 2016 das gleiche macht. Die Einstellungen für das Speichern von PDF, DXF und TIF sind in SolidWorks bereits eingestellt und sollen übernommen werden.
Kurzer Programmablauf:
Ordner wählen --> alle Dateipfade werden in einer CheckedListBox aufgeführt --> man kann aus- und abwählen, ebenso die Auswahl der drei Dateiformate --> Solidworks öffnet Zeichnung und speichert je nach Auswahl alles ab --> SolidWorks schließt Zeichnung und öffnet die nächste und zählt dabei die gespeicherten Zeichnungen für jedes Format.
Aus-und Abwählen klappt alles, SolidWorks öffnen auch, nur Dateiöffnen nicht, demnach auch alles weiter noch nicht. Habe mir Fehlercodes eingebaut, um den Fehler zu finden. Es wird immer "Fehler 02" angezeigt. Der westentliche Quelltext sieht folgendermaßen aus:
Dim pfad As String 'Ordnerpfad
Dim Datei As String 'Dateiname
Dim anz_ges As Integer 'anzahl der zeichnungen
Dim anz_gew As Integer 'gewählte zeichnungen
Dim anz_tif As Integer 'anzahl der ausgewählten zeichnungen TIF
Dim anz_dxf As Integer 'anzahl der ausgewählten zeichnungen DXF
Dim anz_pdf As Integer 'anzahl der ausgewählten zeichnungen PDF
Dim swApp As Object 'SolidWorks
Dim oDrw As Object 'zeichnungsdokument
Dim longstatus As Long, longwarnings As Long
Private Sub SpeichernUnter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SpeichernUnter.Click
Try
swApp = CreateObject("SldWorks.Application")
Catch ex As Exception
MsgBox("Fehler 01 - SW öffnen")
End Try
swApp.Visible = True
Me.TopMost = False
anz_tif = 0
anz_dxf = 0
anz_pdf = 0
For Each Datei As String In Liste.CheckedItems
Try
oDrw = swApp.OpenDoc6(Datei, 3, 0, "", longstatus, longwarnings)
Catch ex As Exception
MsgBox("Fehler 02 - Öffnen")
End Try
If tif.Checked = True Then
Try
oDrw.SaveAs3(Replace(oDrw.FullFileName, Microsoft.VisualBasic.Right(oDrw.FullFileName, 6), "tif"), 0, 0)
Catch ex As Exception
MsgBox("Fehler 03 - TIF")
End Try
anz_tif = anz_tif + 1
End If
If dxf.Checked = True Then
Try
oDrw.SaveAs3(Replace(oDrw.FullFileName, Microsoft.VisualBasic.Right(oDrw.FullFileName, 6), "dxf"), 0, 0)
Catch ex As Exception
MsgBox("Fehler 04 - DXF")
End Try
anz_dxf = anz_dxf + 1
End If
If pdf.Checked = True Then
Try
oDrw.SaveAs3(Replace(oDrw.FullFileName, Microsoft.VisualBasic.Right(oDrw.FullFileName, 6), "pdf"), 0, 0)
Catch ex As Exception
MsgBox("Fehler 05 - PDF")
End Try
anz_pdf = anz_pdf + 1
End If
oDrw.Close()
Next
Der Fehler liegt vermutlich auch irgendwie in der Deklaration der Variable "oDrw". Ich habe nur die Möglichkeit, sie als Object zu deklarieren, eigentlich wäre aber SldWorks.ModelDoc2 richtig oder?
Stehe vollkommen auf dem Schlauch.
Danke schonmal für hilfreiche Antworten.
Gruß Andreas
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP