Casting System.__ComObject

Casting System.__ComObject

georg_troska
Contributor Contributor
390Aufrufe
4Antworten
Nachricht 1 von 5

Casting System.__ComObject

georg_troska
Contributor
Contributor

Hallo, ich versuche einen BRep-Zylinder in VB.Net zu erzeugen:

 

Private Sub CreateCylinder(Pnt1 As Point, Pnt2 As Point, diameter As Double)
        Dim oTBRep = invApp.TransientBRep
        Dim oCylinder As SurfaceBodies
        oCylinder = oTBRep.CreateSolidCylinderCone(Pnt1, Pnt2, diameter, diameter, diameter)
        Dim oBaseFeature As NonParametricBaseFeature
        oBaseFeature = partDef.Features.NonParametricBaseFeature.Add(oCylinder)
End Sub

 

Leider bekomme ich folgenden Lautzeitfehler

Exception thrown: 'System.InvalidCastException' in WindowsApp4Inventor.exe
An exception of type 'System.InvalidCastException' occurred in WindowsApp4Inventor.exe but was not handled in user code
Das COM-Objekt des Typs "System.__ComObject" kann nicht in den Schnittstellentyp "Inventor.SurfaceBodies" umgewandelt werden. Dieser Vorgang konnte nicht durchgeführt werden, da der QueryInterface-Aufruf an die COM-Komponente für die Schnittstelle mit der IID "{5DF860AE-6B16-11D3-B794-0060B0F159EF}" aufgrund des folgenden Fehlers nicht durchgeführt werden konnte: Schnittstelle nicht unterstützt (Ausnahme von HRESULT: 0x80004002 (E_NOINTERFACE)).

 

invApp und parfDef sind folgendermaßen definiert:

Dim invApp As Inventor.Application
invApp = GetObject(, "Inventor.Application")
Dim partDoc As PartDocument = invApp.ActiveDocument

Ich vermute das hier hilft mir für VB.NET auch nicht weiter, oder? 

 

Vielleicht hatte jemand sowas schonmal?

 

Georg

0 „Gefällt mir“-Angaben
Akzeptierte Lösungen (1)
391Aufrufe
4Antworten
Antworten (4)
Nachricht 2 von 5

jeremy.goenen
Advocate
Advocate
Akzeptierte Lösung

Hallo,

ich denke du hast dich bei der Deklaration verhauen,

Das COM-Objekt des Typs "System.__ComObject" kann nicht in den Schnittstellentyp "Inventor.SurfaceBodies" umgewandelt werden

Dim oCylinder As SurfaceBodies

SurfaceBodies ist eine ObjectCollection.

CreateSolidCylinder

gibt einen SurfaceBody zurück.

jeremygoenen_0-1736234084379.png

die Deklaration muss also so sein

Dim oCylinder As SurfaceBody

 

Fanden Sie diesen Beitrag hilfreich? Fühlen Sie sich frei, diesen Beitrag zu liken.
Wurde Ihre Frage erfolgreich beantwortet? Klicken Sie dann auf die Schaltfläche LÖSUNG AKZEPTIEREN

Inventor Versionen:
2025.2
Nachricht 3 von 5

georg_troska
Contributor
Contributor
Danke das wars!
Nachricht 4 von 5

sara_elsayed15
Alumni
Alumni

Hi Georg!


Danke für dein Update und das Markieren der Lösung! Freut uns sehr, dass Jeremy helfen konnte!

Beste Grüße,
Sara

 

 

Ihr fandet einen Beitrag hilfreich? Dann vergebt dafür Likes

 

Eure Anfrage wurde erfolgreich gelöst? Dann einfach auf den 'Als Lösung akzeptieren'-Button klicken! 

 

Sara Elsayed

Community Manager

0 „Gefällt mir“-Angaben
Nachricht 5 von 5

sara_elsayed15
Alumni
Alumni

Hi Jeremy,

 

vielen Dank fürs Teilen des Lösungsweg!

 

Gruß,

Sara

 

Ihr fandet einen Beitrag hilfreich? Dann vergebt dafür Likes

 

Eure Anfrage wurde erfolgreich gelöst? Dann einfach auf den 'Als Lösung akzeptieren'-Button klicken! 

 

Sara Elsayed

Community Manager