Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Automation API per CAA erweitern

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:  Automation API per CAA erweitern (3169 mal gelesen)
tobias.t
Mitglied



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

Beiträge: 11
Registriert: 07.05.2007

WinXP x64
CATIA V5R19-SP9

erstellt am: 03. Apr. 2012 10:50    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

Guten Tag,

ich stecke gerade an einer grundsätzlichen Stelle fest.

Ich möchte von einem Programm aus auf ein laufendes CATIA zugreifen und dort dann Dateien öffnen, Parameter auslesen usw. Da ich den Zugriff per CAA nicht hinbekommen habe, bin ich dafür auf die Automation API (in C/C++) ausgewichen, wo das mit GetActiveObject() ja relativ leicht geht. Diese API bietet allerdings einige benötigte Befehle nicht, so dass ich diese mit CAA irgendwie bereitstellen muss.

Dazu gibt es auf http://catiatutor.com/CAA-V5/Advanced-topics-of-CAA-V5/ eine einfache Schritt-für-Schritt-Anleitung, mit der man neue Interfaces für Automation erstellen kann. Die erstellten DLLs befinden sich dann auch in meiner CATIA-Environment.

Das Problem, was ich jetzt habe, ist, dass ich in meinem externen Programm einfach nicht auf mein neues Interface zugreifen kann. In der Anleitung wird in VB der Application-Pointer einfach dem Interface zugewiesen. In C habe ich das auch versucht mit

Code:
TestIntf *myIntf = (TestIntf*) pApp;

und alternativ mit
Code:
pApp->QueryInterface (IID_TestIntf, (void**)&myIntf);

aber beide Versuche führen nicht zum gewünschten Erfolg.

Hat jemand von euch schon mal ein eigenes Interface erfolgreich in Automation eingebunden und könnte mir mal erklären, wo mein Ansatz fehlerhaft ist?
Was noch besser wäre: gibt es mit CAA eine Möglichkeit, ein bereits laufendes CATIA anzusprechen? Dann würde ich mir den Umweg über Automation sparen.

Vielen Dank.
Tobias

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

HoBLila
Mitglied
Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx


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

Beiträge: 1118
Registriert: 29.05.2008

DELL PRECISION T3500
Intel(R) Xeon(R) CPU W3540 @ 2.93GHz
12285 MB RAM
NVIDIA Quadro FX 1800
Microsoft Windows 7 Enterprise Service Pack 1
CATIA V5 R19 SP09 HF69
VB6.5
CAA RADE CDC

erstellt am: 04. Apr. 2012 10:17    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 tobias.t 10 Unities + Antwort hilfreich

Hallo Tobias,

zunächst einmal: Nein ich habe das noch nicht gemacht, aber es steht auf meiner Liste. :-)

Was ich noch nicht so ganz verstehe: Wenn Du ein CAA schreibst, dann bist Du doch schon im CATIA und zwar in den Internas, direkt an allem dran. Gut okay, es ist nichts dokumentiert und Du musst alles erraten, wie man es genannt haben könnte, aber wieso jetzt noch das CATIA aus der Prozessliste fischen? Du bist Doch das CATIA. :-)

Oder verstehe ich da was grundlegend falsch? CAA wird meiner Meinung nach in das CATIA eingebettet.

Edit: Der Link liefert übrigens: Database Error: Unable to connect to the database:Could not connect to MySQL
Edit2: Was hast Du in pApp stehen und von welchem Typ ist es?

------------------
Mit freundlichen Grüßen,
Henry Schneider
alias Lila

Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren:
Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen,
die Natur versucht, immer bessere Idioten zu bauen

Xing

[Diese Nachricht wurde von HoBLila am 04. Apr. 2012 editiert.]

[Diese Nachricht wurde von HoBLila am 04. Apr. 2012 editiert.]

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

tobias.t
Mitglied



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

Beiträge: 11
Registriert: 07.05.2007

WinXP x64
CATIA V5R19-SP9

erstellt am: 04. Apr. 2012 14:35    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 Henry,

in CAA kann man Programme schreiben, die zur Laufzeit intern ein CATIA starten, dort alle angegebenen Befehle ausführen und sich dann beenden. Quasi ein richtig schöner Batch-Betrieb. Evtl. kann man auch eigene Programme / Kommandos in CATIA einbetten, die dort per Knopfdruck gestartet werden können.
Beides sind aber Abläufe, die ich nicht möchte. Ich möchte ein eigenständiges Programm starten, welches sich bei Bedarf zu einem separaten CATIA verbinden und dort Befehle ausführen kann. Wenn ich in diesem Programm nun mit CAA anfange, dann bedienen diese CAA-Befehle nur ein CATIA, welches ich Batch-mäßig innerhalb des Programms gestartet haben müßte, aber eben nicht das externe CATIA.

Um die Fragen nach den Variablentypen zu beantworten:

Code:

CLSID clsid;
IUnknown *pIUnk;
INFITF::Application *pApp;

::CoInitialize (NULL);
::CLSIDFromProgID (L"CATIA.Application", &clsid);
GetActiveObject (clsid, NULL, &pIUnk);
pIUnk->QueryInterface (__uuidof(INFITF::Application), (void**)&pApp);


Auf den Link habe ich übrigens eben noch mal draufgedrückt und er funktioniert - braucht zwar eine Ewigkeit zum Laden, aber immerhin. Vielleicht ist da ja zeitweise die Internetleitung down.

MfG
Tobias

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

HoBLila
Mitglied
Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx


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

Beiträge: 1118
Registriert: 29.05.2008

DELL PRECISION T3500
Intel(R) Xeon(R) CPU W3540 @ 2.93GHz
12285 MB RAM
NVIDIA Quadro FX 1800
Microsoft Windows 7 Enterprise Service Pack 1
CATIA V5 R19 SP09 HF69
VB6.5
CAA RADE CDC

erstellt am: 05. Apr. 2012 13:56    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 tobias.t 10 Unities + Antwort hilfreich

Hallo Tobias,

zunächst einmal: Danke, ich hab's jetzt verstanden.
Allerdings muss ich da leider passen, da ich so etwas noch nie gebaut habe. :-(

------------------
Mit freundlichen Grüßen,
Henry Schneider
alias Lila

Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren:
Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen,
die Natur versucht, immer bessere Idioten zu bauen

Xing

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