Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  VBasic / vb.net / vbs / wsh
  Probleme beim Aufrufen einer AutoCAD Zeichnung

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:  Probleme beim Aufrufen einer AutoCAD Zeichnung (3355 mal gelesen)
WolfgangSCH
Mitglied



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

Beiträge: 145
Registriert: 01.10.2002

AutoCAD 2021 64-bit
Windows 10 64-bit Home Premium
AMD Phenom II X6 1055T, 2,8GHz, 8GB RAM

erstellt am: 29. Okt. 2010 12:34    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,

ich bin VB6 Umsteiger und schreibe mit VB 2010 derzeit ein Programm, mit dem AutoCAD gestartet und eine Zeichnung aufgerufen werden soll.
Das Starten von AutoCAD funktioniert einwandfrei.
Im Direktfenster stehen keine Warnungen bzw. Fehlermeldungen.
Beim Aufrufen der Zeichnung erhalte ich aber folgende Warnung:
COMException wurde nicht behandelt
Aufruf wurde durch Aufgerufenen abgelehnt. (Ausnahme von HRESULT: 0x80010001 (RPC_E_CALL_REJECTED))
Methode im MDI-Modus nicht verfügbar. Verwenden Sie die Open-Methode der Dokumentengruppierung.
Überprüfen Sie die ErrorCode-Eigenschaften der Ausnahme...

Leider kann ich mit dieser Meldung nichts anfangen. Wer kann mir hier weiter helfen.

Vielen Dank vorab.

Gruß

Wolfi


Hier das Code-Beispiel:

Imports Autodesk.AutoCAD.Runtime
Imports Autodesk.AutoCAD.ApplicationServices
Imports Autodesk.AutoCAD.DatabaseServices
Imports Autodesk.AutoCAD.EditorInput

Module Module1
     Public AcadApp As Object


     Public Function StartAutoCADSession() As Object

On Error Resume Next

Dim AcadApp As Object
         Dim objDoc As Object
         'Überprüfe, ob AutoCAD schon geladen ist
         AcadApp = GetObject(, "AutoCAD.Application")
         If Err.Number <> 0 Then
             Err.Clear()
             'AutoCAD wird geladen
             AcadApp = CreateObject("AutoCAD.Application")
         End If

If Err.Number <> 0 Then
             StartAutoCADSession = Nothing
             Exit Function
         End If

'wenn Laden erfogreich war, mache sichtbar
         AcadApp.Visible = 1

'Öffnen ist OK
         Return AcadApp

End Function

Sub Main()
         Dim objDoc As New Autodesk.AutoCAD.Interop.AcadDocument

AcadApp = StartAutoCADSession()

Try
             objDoc.Open("C:\Test\Test.dwg") ' AutoCAD-Zeichnung wird aufgerufen
         Catch ex As System.IO.IOException
             MsgBox("Ein Fehler ist aufgetreten")
         End Try
         AcadApp.Visible = True
         objDoc = AcadApp.ActiveDocument
     End Sub

End Module

[Diese Nachricht wurde von WolfgangSCH am 29. Okt. 2010 editiert.]

[Diese Nachricht wurde von WolfgangSCH am 29. Okt. 2010 editiert.]

[Diese Nachricht wurde von WolfgangSCH am 29. Okt. 2010 editiert.]

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


Ex-Mitglied

erstellt am: 29. Okt. 2010 21:39    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

Mit diesem Statement:
Dim objDoc As New Autodesk.AutoCAD.Interop.AcadDocument
kriegst Du kein neues Dokument erstellt, die Klasse ...Interop.AcadDocument bietet keine New-Instanzierung an.

Anstatt dessen solltest Du dieses durchführen:

Code:
Dim objDoc As Autodesk.AutoCAD.Interop.AcadDocument = Nothing
Try
  AcadApp = StartAutoCADSession()
  objDoc= AcadApp.Documents.Open("C:\Test\Test.dwg")

HTH, - alfred -

------------------
www.hollaus.at

WolfgangSCH
Mitglied



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

Beiträge: 145
Registriert: 01.10.2002

erstellt am: 30. Okt. 2010 18:05    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 Alfred,

vielen Dank für Deine schnelle Hilfe.
Ich habe das Programm entsprechend abgeändert,
aber die Meldung "COMException wurde nicht behandelt..." erscheint immer noch. Ich denke ich muß noch eine fehlende Bibliothek laden?
Zusätzlich steht im Direktfenster:
Eine Ausnahme (erste Chance) des Typs "System.Runtime.InteropServices.COMException" ist in mscorlib.dll aufgetreten.
Eine Ausnahme (erste Chance) des Typs "System.Exception" ist in Microsoft.VisualBasic.dll aufgetreten.
Eine Ausnahme (erste Chance) des Typs "System.Runtime.InteropServices.COMException" ist in mscorlib.dll aufgetreten.
Eine Ausnahme (erste Chance) des Typs "System.Runtime.InteropServices.COMException" ist in mscorlib.dll aufgetreten.

Wenn ich das Programm ein zweites Mal starte wird AutoCAD mit geöffneter Zeichnung angezeigt.
Vielleicht hast Du noch einen Tipp für mich.

Hier nochmals der Code:

Code:
Imports Autodesk.AutoCAD.Runtime
Imports Autodesk.AutoCAD.ApplicationServices
Imports Autodesk.AutoCAD.DatabaseServices
Imports Autodesk.AutoCAD.EditorInput

Module Module1
    Public AcadApp As Object


    Public Function StartAutoCADSession() As Object

        On Error Resume Next

        Dim AcadApp As Object
        Dim objDoc As Object
        'Überprüfe, ob AutoCAD schon geladen ist
        AcadApp = GetObject(, "AutoCAD.Application")
        If Err.Number <> 0 Then
            Err.Clear()
            'AutoCAD wird geladen
            AcadApp = CreateObject("AutoCAD.Application")
        End If

        If Err.Number <> 0 Then
            StartAutoCADSession = Nothing
            Exit Function
        End If

        'wenn Laden erfogreich war, mache sichtbar
        AcadApp.Visible = 1

        'Öffnen = ok
        Return AcadApp

    End Function


    Sub Main()

        Dim objDoc As Autodesk.AutoCAD.Interop.AcadDocument = Nothing
        Try
            AcadApp = StartAutoCADSession()
            objDoc = AcadApp.Documents.Open("C:\Test\Test.dwg")    ' AutoCAD-Zeichnung wird aufgerufen
        Catch ex As System.IO.IOException
            MsgBox("Ein Fehler ist aufgetreten")
        End Try
        AcadApp.Visible = True
        objDoc = AcadApp.ActiveDocument
    End Sub

End Module


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


Ex-Mitglied

erstellt am: 31. Okt. 2010 11:42    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

wenn Du AutoCAD vor Deiner EXE startest, funktioniert's dann?

Noch viel wichtiger: an welcher Zeile tritt der Fehler denn auf?

- alfred -

------------------
www.hollaus.at

WolfgangSCH
Mitglied



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

Beiträge: 145
Registriert: 01.10.2002

erstellt am: 02. Nov. 2010 08:13    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 Alfred,

wenn ich AutoCAD vor dem Ausführen des Programmes starte, wird die Zeichnung einwandfrei aufgerufen.
Ist AutoCAD geschlossen wird es zwar durch das Programm gestartet, aber beim Aufrufen der Zeichnung tritt in der Zeile " objDoc = AcadApp.Documents.Open("C:\Test\Test.dwg") " oben beschriebene Meldung auf.

Gruß
Wolfi

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


Ex-Mitglied

erstellt am: 02. Nov. 2010 10:04    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

wirklich die gleiche Fehlermeldung wie oben mit ...MDI...?
Schau mal im AutoCAD nach, wie die Variable SDI steht (sollte auf 0 stehen), tut sie meiner Meinung nach zwar auch, denn startest Du AutoCAD vorher, dann geht's ja.

Im Code selbst sehe ich keinen Fehler, höchstens Warnungspotential:
a) die Variable AcadApp verwendest Du zweifach, einmal global deklariert, einmal als lokale Variable in StartAutoCADSession
b) wird mit late-binding gearbeitet, was nicht gerade vorteilhaft in bezug auf Fehlerhandling ist. Probier mal die Variable AcadApp richtig zu deklarieren und nicht als Object, stelle in den Projekteingeschaften late-bindung um auf 'generiert Fehler'.

Um dem schneller auf die Sprünge zu kommen, wäre vorteilhaft, wenn Du die ganze Solution hier hochladen könntest, geht das nicht, dann zumindest mal einen Screenshot von der Fehlermeldung, damit hab ich die dann genau.

- alfred -

------------------
www.hollaus.at

WolfgangSCH
Mitglied



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

Beiträge: 145
Registriert: 01.10.2002

erstellt am: 02. Nov. 2010 12:49    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


Screen-2.jpg


Screen-1.jpg

 
Hallo Alfred,

danke für Deine Antwort.
SDI steht in AutoCAD auf 0.
Die lokale Definition von AcadApp habe ich entfernt und die öffentliche Definition richtig deklariert (so hoffe ich).
Nur die Projekteingeschaften late-bindung auf 'generiert Fehler' umzustellen habe ich nicht gefunden. (Als Hintergrundinfo: Ich bin Umsteiger von VB6 auf VB 2010 und versuche mich gerade in VB 2010 einzuarbeiten um später meine bisherigen Projekte auf VB 2010 umzustellen).
Einen Screenshot der Fehlermeldung habe ich angehängt.

Gruß
Wolfi

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


Ex-Mitglied

erstellt am: 02. Nov. 2010 13:03    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

Danke für die Screenshots, damit jetzt gefunden: >>>dieses<<& lt; behandelt ein Workaround, welches scheinbar Dein Problem betrifft (Problem mit WPF, aber erst seit ServicePack1 von AutoCAD 2011).

- alfred -

------------------
www.hollaus.at

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)2023 CAD.de | Impressum | Datenschutz