Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  COMException in Visual Studio (PowerCopy)

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:  COMException in Visual Studio (PowerCopy) (475 mal gelesen)
afaliwan
Mitglied
Ingenieur

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

Beiträge: 8
Registriert: 10.06.2016

CatiaV5 R32 SP2
Windows 10 Enterprise
HP ZBook Fury 17.3 inch G8
Mobile Workstation

erstellt am: 24. Mai. 2023 13:32    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,

spiele grade ein bisschen mit Visual Studio rum und bin am versuchen eine PowerCopy zu benutzen. Dazu nutze ich aktuell folgenden VB-Code (Auszug):

Code:

Imports INFITF
Imports KnowledgewareTypeLib
Imports MECMOD

[...]

Dim catiaApp As INFITF.Application
catiaApp = CType(GetObject(, "CATIA.Application"), INFITF.Application)

Dim PartDocumentDest As PartDocument
PartDocumentDest = catiaApp.ActiveDocument

Dim PartDest As Part
PartDest = PartDocumentDest.Part

Dim factory As InstanceFactory
factory = PartDest.GetCustomerFactory("InstanceFactory")

factory.BeginInstanceFactory("Test", "C:\[...]\PowerCopy.CATPart")

factory.BeginInstantiate()

[...]


Der Code ist ähnlich aufgebaut zu der VBA Version. Die funktioniert auch super, aber in VS bekomme in der Zeile:

Code:
factory.BeginInstanceFactory("Test", "C:\[...]\PowerCopy.CATPart")

eine "HRESULT E_FAIL-Fehler" Fehlermeldung.

Weiß jemand woher das kommen könnte? Oder hat hier jemand schonmal ähnliches probiert? Ich vermute aktuell, dass ich über VS aktuell keinen Zugriff auf die CATIAInstanceFactory habe.
 
 
Danke vorab 
 
 
Zusatzinfo:
CATIA V5 R32 SP2 + KT1 Lizenz
Visual Studio Enterprise 2022
.NET Framework 4.8.1

detaillierte Fehlermeldung:

Zitat:
System.Runtime.InteropServices.COMException
  HResult=0x80004005
  Message=Beim Aufruf einer COM-Komponente wurde ein HRESULT E_FAIL-Fehler zurückgegeben.
  Source=TEST
  StackTrace:
  at MECMOD.InstanceFactory.BeginInstanceFactory(String& iNameOfReference, String& iNameOfDocument)
  at TEST.Form1.Button5_Click(Object sender, EventArgs e) in C:\[...]\source\repos\WindowsApp1\WindowsApp1\Form1.vb:line 539
  at System.Windows.Forms.Control.OnClick(EventArgs e)
  at System.Windows.Forms.Button.OnClick(EventArgs e)
  at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
  at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
  at System.Windows.Forms.Control.WndProc(Message& m)
  at System.Windows.Forms.ButtonBase.WndProc(Message& m)
  at System.Windows.Forms.Button.WndProc(Message& m)
  at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
  at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
  at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
  at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
  at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
  at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
  at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
  at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
  at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
  at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)
  at TEST.My.MyApplication.Main(String[] Args) in :line 83

------------------
"Die Genialität einer Konstruktion liegt in ihrer Einfachheit. Kompliziert bauen kann jeder." - Sergej P. Koroljow

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

bgrittmann
Moderator
Konstrukteur


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

Beiträge: 11824
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 24. Mai. 2023 15:59    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 afaliwan 10 Unities + Antwort hilfreich

Servus

Hast du in der entsprechenden Catia Instanz die KT1-Lizenz?
Hast du in dieser Instanz zuvor schon mal eine Powercopy versucht einzufügen? Wurde dann auch per EndInstanceFactory diese richtig beendet (auch im Fehlerfall)?
Ggf vor BeginInstanceFactory dem erst ein EndInstanceFactory  ausführen (um sicher zu gehen).

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

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



Konstrukteur / Technischer Zeichner Mechanik (m/w/d)
<...
Anzeige ansehenKonstruktion, Visualisierung
afaliwan
Mitglied
Ingenieur

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

Beiträge: 8
Registriert: 10.06.2016

CatiaV5 R32 SP2
Windows 10 Enterprise
HP ZBook Fury 17.3 inch G8
Mobile Workstation

erstellt am: 24. Mai. 2023 17:21    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 Bernd,


ja, ich habe die KT1-Lizenz in der aktuellen Catia Instanz. Ich kann in dieser Instanz problemlos Powercopies benutzen und einfügen. Ich kann diese auch ohne Probleme über VBA einfügen. Nur eben über Visual Studio geht es nicht. Ich bin gerade in einer komplett neuen Instanz mit gleichen Randbedingungen, auch hier das gleiche Muster. PowerCopy über VBA und direkt in Catia benutzen geht, aber in VS der gleiche Fehler. Ein zusäzliches EndInstanceFactory habe ich auch ausprobiert.

Während ich den Text hier am schreiben bin, konnte ich das ganze zum laufen bringen. Ich hab ein komplett neues VS Projekt erstellt und jetzt funktionierts... 
Anscheinend hab ich mich in dem alten Projekt wohl etwas verschachtelt mit den Referenzen, da sind auch ein paar zu viel. 

Falls das irgendwann mal jemand braucht:

Code:
Imports INFITF
Imports MECMOD

Public Class Form1

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        Dim catiaApp As Application
        catiaApp = CType(GetObject(, "CATIA.Application"), Application)

        Dim PartDocumentDest As PartDocument = catiaApp.ActiveDocument
        Dim PartDest As Part = PartDocumentDest.Part
        Dim factory As InstanceFactory = PartDest.GetCustomerFactory("InstanceFactory")

        factory.BeginInstanceFactory("PowerCopy.1", "C:\[...]\PowerCopy.CATPart")
        factory.BeginInstantiate()

        Dim oAxis As Object = PartDest.FindObjectByName("Axis")
        Dim oPart As Object = PartDest.FindObjectByName("TestBody")

        factory.PutInputData("Absolute Axis System", oAxis)
        factory.PutInputData("PartBody", oPart)

        Dim Instance As ShapeInstance = factory.Instantiate

        factory.EndInstantiate()
        factory.EndInstanceFactory()
        PartDest.Update()

    End Sub

End Class



Danke 

------------------
"Die Genialität einer Konstruktion liegt in ihrer Einfachheit. Kompliziert bauen kann jeder." - Sergej P. Koroljow

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