| |
 | CATIA V5 Grundkurs | Einsteiger - 5 Std. 15 Min 48 |
| |
 | Erfolgreich unterwegs mit der KISTERS 3DViewStation, ein Whitepaper
|
Autor
|
Thema: V5 Automation in C++ (2759 mal gelesen)
|
Andy M Mitglied Praktikant im Bereich Informatik
 Beiträge: 6 Registriert: 14.11.2001
|
erstellt am: 12. Dez. 2001 11:30 <-- editieren / zitieren --> Unities abgeben:         
|
mz Mitglied Software Development
 
 Beiträge: 182 Registriert: 15.09.2000
|
erstellt am: 12. Dez. 2001 11:42 <-- editieren / zitieren --> Unities abgeben:          Nur für Andy M
Hi, alles was unter vba/vbs geht lauft auch unter c++ ohne Probleme. Da Catia V5 ein COM Server ist geht das sehr schoen. Vorraussetzung es gibt tlb oder Dll files die man mit dem c++ pragma #import in den Source einblenden kann. Dannach ist jedes Object als C++ Wrapper verfuegbar. CU mz Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Günther Roll Mitglied
 Beiträge: 3 Registriert: 06.02.2002 V5 R9 SP2 Win 2000/NT
|
erstellt am: 10. Okt. 2002 18:24 <-- editieren / zitieren --> Unities abgeben:          Nur für Andy M
Hallo MZ, könntest Du die Vorgehensweise bitte mal etwas detaillierter beschreiben. Das mit den *.tlb- und den daraus erstellten Wrapper-Files ist mir noch klar - aber wie bekomme ich Kontakt zu Catia? Was muss ich - grob skizziert - machen, wenn ich z.B. ein Miniprojekt wie sub Main() DIM CATIA as INFITF.Application SET CATIA = GetObject(,"CATIA.Application") DIM Doc as Document SET Doc = CATIA.ActiveDocument MsgBox Doc.Fullname end sub in C++ realisieren will? Ich versuche sowas wie # import "InfTypeLib.tlb" in StdAfx.h und dann hab ich schon alles mögliche probiert, komme aber nicht weiter. if (AfxOleInit()) { ??????? } else { AfxMessageBox("Error when Initialising COM."); } Würdest Du mir da mal bitte auf die Sprünge helfen? Im voraus vielen Dank! Günther
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mz Mitglied Software Development
 
 Beiträge: 182 Registriert: 15.09.2000
|
erstellt am: 10. Okt. 2002 18:34 <-- editieren / zitieren --> Unities abgeben:          Nur für Andy M
Hi, hier ein kleines Bsp. ApplicationPtr entspricht dem Object as den importierten TLBS, es koennte sein das dies bei dir etwas anderst heisst. CU mz int connectToSE(ApplicationPtr & seApp,int create) { HRESULT Result=NOERROR; BOOL bVisible=FALSE, bDone=FALSE; CLSID AppClsid; IUnknown *pAppUnk=NULL; : leInitialize(NULL); Result = ::CLSIDFromProgID (L"CATIA.Application", &AppClsid); Result = ::GetActiveObject (AppClsid, NULL, &pAppUnk); if (FAILED (Result)) { if (!create) return 0; if ((CoCreateInstance(AppClsid,NULL,CLSCTX_LOCAL_SERVER ,IID_IUnknown,(void**)&pAppUnk)) != S_OK) return 0; } Result = pAppUnk->QueryInterface (__uuidof(Application), (void **) &seApp); pAppUnk->Release(); pAppUnk = NULL; return seApp.GetInterfacePtr()!=NULL; } int main(...) { CoInitialize(0) ApplicationPtr myCatiaApp; connectToSE(myCatiaApp,1); } Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Günther Roll Mitglied
 Beiträge: 3 Registriert: 06.02.2002 V5 R9 SP2 Win 2000/NT
|
erstellt am: 11. Okt. 2002 17:22 <-- editieren / zitieren --> Unities abgeben:          Nur für Andy M
|
A. Hofmann Mitglied CAD/CAM Anwender

 Beiträge: 17 Registriert: 27.02.2003
|
erstellt am: 27. Feb. 2003 07:45 <-- editieren / zitieren --> Unities abgeben:          Nur für Andy M
Hallo MZ, woher bekomme ich ApplicationPtr? Wenn ich das Programm kompiliere bekomme ich folgende Fehlermeldung: 'ApplicationPtr' : nichtdeklarierter Bezeichner Steht der Bezeichner in der InfTypeLib.tlb Datei? Ich verwende MS Visual C++ 6. Vielen Dank im voraus Arno Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |