Hot News aus dem CAD.de-Newsletter:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  VBasic / vb.net / vbs / wsh
  Problem beim Öffnen von SolidWorks-Dateien

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:   Problem beim Öffnen von SolidWorks-Dateien (534 mal gelesen)
AF13
Mitglied


Sehen Sie sich das Profil von AF13 an!   Senden Sie eine Private Message an AF13  Schreiben Sie einen Gästebucheintrag für AF13

Beiträge: 1
Registriert: 06.12.2017

erstellt am: 06. Dez. 2017 11:25    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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

HenryV
Mitglied
Konstrukteur, Engineering


Sehen Sie sich das Profil von HenryV an!   Senden Sie eine Private Message an HenryV  Schreiben Sie einen Gästebucheintrag für HenryV

Beiträge: 693
Registriert: 18.05.2005

SolidWorks 2018 x64 SP4.0
Dell T3600 Workstation
Intel XENON 6x3.2 GHz
NVIDIA Quadro 4000 2 GB
16GB RAM
2x Dell U2412M, 24" TFT
Windows 7 Professional x64 SP1
Microsoft Office Pro 2010 SP2
Kaspersky Anti-Virus 10.2.4.674
Microsoft VB 2010 Express
SpacePilot von 3Dconnexion

erstellt am: 08. Dez. 2017 17:14    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für AF13 10 Unities + Antwort hilfreich

Hallo Andreas

1. longstatus und longwarnings werden in vb.net als Integer deklariert.
Dim longstatus As Integer, longwarnings As Integer

2. oDrw.FullFileName gibt es nicht.
Es gibt oDrw.GetPathName, aber ich würde gleich deine Variable "Datei" verwenden.

3. oDrw.Close() ist nicht mehr implementiert, verwende swApp.CloseDoc(Datei).

Gruss Andreas

PS: Wenn du Verweise auf die DLLs von SolidWorks setzt, kannst du auch Typensicher programmieren (Also mit Option Strict = On) und auch IntelliSense würde funktionieren.
Die DLLs findest du hier "C:\Program Files\SolidWorks Corp\SolidWorks\api\redist\"
Die wichtigsten sind: "SolidWorks.Interop.sldworks.dll", "SolidWorks.Interop.swconst.dll" und "SolidWorks.Interop.swcommands.dll".

------------------
21 ist nur die halbe Antwort.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2019 CAD.de | Impressum | Datenschutz