Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Automation in MS Visual C++ 6.0

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 in MS Visual C++ 6.0 (2628 mal gelesen)
A. Hofmann
Mitglied
CAD/CAM Anwender


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

Beiträge: 17
Registriert: 27.02.2003

erstellt am: 07. Mai. 2003 09:38    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,

weiss jemand wie man Catia V5 mit Visual C++ 6.0 automatisiert, so dass man auch die MFC verwenden kann? Welche Typen-Libraries müssen verwendet werden? Ein Beispiel-Projekt wäre sehr hilfreich.

Vielen Dank im voraus.

A. Hofmann


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

A. Hofmann
Mitglied
CAD/CAM Anwender


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

Beiträge: 17
Registriert: 27.02.2003

erstellt am: 20. Mai. 2003 06: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

Hallo nochmals,

mit dem Klassenassistenten habe ich die Typen-Bibliothek "inftypelib.tlb" aus dem CATIA bin Verzeichnis eingefügt und die Klasse "Application" verwendet.

#include "inftypelib.h"

Im Button-Handler steht folgenden Code:

void CCATIAAutomationDlg: nButtonRunCatia()
{
    Application m_oCatiaApp;
    COleException oe;

    if ( ! m_oCatiaApp.CreateDispatch("Catia.Application", &oe ) )
    {
oe.ReportError();
        return;
    }
}

Mit ReportError() bekomme ich folgende Meldung:
"Das System kann die angegebene Datei nicht finden."
Der Debugger gibt folgendes aus:
Warning: CreateDispatch returning scode = severity: SEVERITY_ERROR, facility: FACILITY_WIN32 ($80070002).

Wenn ich auf die selbe Weise Excel oder Access automatisiere, klappt alles wie gewünscht, Excel, bzw. Access werden gestartet.
Weiß jemand Rat?

Gruß

Arno


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

bloedefeld
Mitglied
Dipl.- Ing.


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

Beiträge: 94
Registriert: 13.08.2002

erstellt am: 30. Mai. 2003 11:19    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 A. Hofmann 10 Unities + Antwort hilfreich

hallo arno,

als erstes hat dassault die freigabe des relaise-interface gesperrt. deshalb funktioniert die klassische umgebung mit automation nicht.

wenn man sich tief mit COM auskennt kann die sperrung umgangen werden.

gruß

bloedefeld

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

A. Hofmann
Mitglied
CAD/CAM Anwender


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

Beiträge: 17
Registriert: 27.02.2003

erstellt am: 06. Jun. 2003 11:03    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


CATIAAutomation.zip

 
Hallo bloedefeld,

das Programm hatte ich mit der R9 getestet.
Wir haben jetzt auf R10 SP3 umgestellt und siehe da die Automation mit R10 funktioniert einwandfrei!
Mit <m_oCatiaApp.CreateDispatch("Catia.Application", &oe )> wird CATIA gestartet. Das Projekt habe ich angehängt, falls wer Interesse daran hat.

Gruß

Arno

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

Laute
Mitglied
Student


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

Beiträge: 26
Registriert: 14.07.2003

erstellt am: 21. Jan. 2004 13:36    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 A. Hofmann 10 Unities + Antwort hilfreich

Hallo,

kennt sich vielleicht jemand näher mit dem obigen Beispiel aus ?
Ich würde es gerne zum laufen bringen - weis aber wegen mangelnder Prog.praxis nicht wie ich das in ein Projekt einbinden muss.

Ich arbeite mit R10 SP3

danke schomal

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

A. Hofmann
Mitglied
CAD/CAM Anwender


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

Beiträge: 17
Registriert: 27.02.2003

erstellt am: 21. Jan. 2004 14:06    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


Dialog.jpg

 
Hallo Laute,

das Projekt habe ich mit Microsoft(R) Visual C++ 6.0 erstellt.
Die Datei CATIAAutomation.dsw ist die Projekt-Datei. Diese musst Du dann ins Studio laden. Wenn Du das Programm startest siehst Du einen Dialog, wie im Anhang.

Gruß

Arno

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

Laute
Mitglied
Student


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

Beiträge: 26
Registriert: 14.07.2003

erstellt am: 21. Jan. 2004 14:55    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 A. Hofmann 10 Unities + Antwort hilfreich

Hallo Arno,

hab ich fast alles hinbekommen - habe ebenfalls VisualStudio 6.0
als ich auf den Button klickte bekam ich "ungültiger klassenstring" als Fehler. Daraufhin habe ich deine OnStart Methode etwas geändert weil ich bemerkte, dass Probleme mit oe.ReportError() auftraten.
void CCATIAauto20_01Dlg: nStart()
{
    CoInitialize(0);
    Application m_oCatiaApp;

    if(!m_oCatiaApp.CreateDispatch("Catia.Application"))
    {
      AfxMessageBox("Couldn't start CATIA");
      return;
    }
    else
    {
      m_oCatiaApp.SetVisible(TRUE);
      TRACE("CATIA IS RUNNING");
    }
}
jetzt habe ich die obige AfxMsgBox bekomen "Couldn't start CATIA"
Ich habe auch noch dein ProgID check im Programm entdeckt und diesen aktiviert - nun bekomme ich beim starten "retrieval of ProgID failed"
Weis aber nicht woran das liegt.

Gruß Laute

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

A. Hofmann
Mitglied
CAD/CAM Anwender


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

Beiträge: 17
Registriert: 27.02.2003

erstellt am: 21. Jan. 2004 15: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 Laute,

momentan kann ich es nicht nachvollziehen, wo der Fehler liegt.

Bei mir ist "CATIA V5 R10 SP3" und CATIA V5 R12 SP2" installiert.
Bei beiden funktioniert der Aufruf.

Folgende Fehlerquellen könnten es sein:

Die Objekt-Library von CATIA ist nicht in der Registry installiert, dann findet er den String "catia.application" nicht.
Die CATIA TypeLib "inftypelib" muss neu geladen werden. Das geht mit Klassenassistent/Klasse hinzufügen/Aus Typbibliothek.
Die CATIA Typbibliotheken sind unter \Programme\Dassault Systemes\B<Version>\intel_a\code\bin

Vielleicht hilft Dir das weiter.

Gruß
Arno

PS. Was meinst Du mit "dein ProgID check"?

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

Laute
Mitglied
Student


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

Beiträge: 26
Registriert: 14.07.2003

erstellt am: 21. Jan. 2004 15: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 Nur für A. Hofmann 10 Unities + Antwort hilfreich

Hallo Arno,

danke für die schnelle Antworten!
Das Problem kann nicht zufällig etwas damit zu tun haben, dass CAA nicht installiert ist - oder?!
Beim Hinzufügen der infTypeLib bin ich im Class-Wizard auf den Automation-Reiter oben -war das falsch?
das meinte ich mit deinem ProgID-Check(war auskommentiert) 
//////////////////////////////////////////////////////////////////
  //Identifiziert ob CATIA vorhanden ist
  CLSID clsID;
  HRESULT hr;

  hr= CLSIDFromProgID(OLESTR("Catia.Application"), &clsID);
  if(FAILED(hr))
  {
    AfxMessageBox("Retrieval of ProgID failed");
  return FALSE;
  }
  //////////////////////////////////////////////////////////////////

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

Laute
Mitglied
Student


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

Beiträge: 26
Registriert: 14.07.2003

erstellt am: 21. Jan. 2004 16:24    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 A. Hofmann 10 Unities + Antwort hilfreich

Alles klar,

ich hab's auf nem anderen Rechner ausprobiert - da hat es tadellos funktioniert-auf diesem war aber auch CAA installiert- liegt es etwa doch an CAA. Wird bei der CATIA-Installation nicht defaultmäßig die Object-Library installiert-wenn ja wie macht man das? Das der String nicht gefunden werden kann ist glaube ich mein Problem !

danke -
gruß Laute

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

A. Hofmann
Mitglied
CAD/CAM Anwender


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

Beiträge: 17
Registriert: 27.02.2003

erstellt am: 21. Jan. 2004 16:28    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


ole.jpg

 
Hallo Laute,

den ProgID-Check brauchst Du nicht, das war nur ein Test.
Der Automation-Reiter ist auch ok.
CAA habe ich auch nicht installiert.

1. Durchsuche mal die Registry nach "catia.application"
2. Im Studio kannst Du ja mal den OLE/COM Objekt-Katalog unter "Extras" aufrufen. Suche dann unter dem Punkt "Type Libraries" die CATIA V5 Bibliotheken (diese müssen installiert sein!!!), z.B. "CATIA V5 InfInterfaces Object Library".

Ansonsten weiss ich auch nicht woran es liegen könnte.

Gruß

Arno

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

Laute
Mitglied
Student


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

Beiträge: 26
Registriert: 14.07.2003

erstellt am: 21. Jan. 2004 16: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 Nur für A. Hofmann 10 Unities + Antwort hilfreich

Hallo Arno,

danke für die Mühe!
In der Registry hab ich wie zu erwarten war kein "catia.application" gefunden. In meinem OLE-Viewer hab ich genau 1 Catia typelibrary entdeckt.Und zwar "CATIA V5 ApplicationFrame Object-Library (Ver 0.0)"
Da sollten vielleicht ein paar mehr sein?!

Naja - jedenfalls danke Dir!
Nun weis ich woran es liegt.

Gruß Laute

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

A. Hofmann
Mitglied
CAD/CAM Anwender


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

Beiträge: 17
Registriert: 27.02.2003

erstellt am: 21. Jan. 2004 16: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

Hallo Laute,

es kann sein dass CATIA mal auf dem Rechner gelöscht wurde.

Ich hatte mal folgendes Szenario:

1. CATIA V5 R10 war auf meinem Rechner intstalliert. Das Automationsprogramm arbeitete problemlos.

2. Ich installierte dann CATIA V5 R12 zusätzlich.
Das Automationsprogramm arbeitete immer noch problemlos.

3. Jetzt deinstallierte ich CATIA V5 R12 über Systemsteuerung/Software aus bestimmten Gründen.

4. Als ich dann das Automationsprogramm startete, ging es auch nicht mehr. Ich schaute dann im Objekt-Katalog nach, ob die CATIA Objekte noch da waren. Ich stellte dann fest, dass bei der CATIA V5 R12 Deinstallation alle CATIA Objekt Registry-Einträge gelöscht wurden.
Sowohl von der R12 als auch von der R10.

5. Nachdem ich die R10 nochmals installiert hatte, ging das Automationsprogramm wieder.

Gruß
Arno

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

Laute
Mitglied
Student


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

Beiträge: 26
Registriert: 14.07.2003

erstellt am: 22. Jan. 2004 13:57    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 A. Hofmann 10 Unities + Antwort hilfreich

Hallo Arno,

habe ein leeres CATIA-Verzeichnis gefunden..sieht alles schwer nach deinem Szenario aus! Ich habe aber rausgefunden wie man die ganzen TypeLibs wieder in die Registry bekommt und zwar unter CATIA-Tools->SettingsManagemanet kann man unter dem Reiter "MAkros" externe Referenzen hinzufügen, da nimmt man dann alle aus dem bin-Verzeichnis und hat sie nach einem Neustart in der REG.
Jedoch den catia.Application-String hat mir das auch nicht beschert  nun werd ich's vor einer Neuinstallation noch im Environment-Editor probieren.

Gruß Laute

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

A. Hofmann
Mitglied
CAD/CAM Anwender


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

Beiträge: 17
Registriert: 27.02.2003

erstellt am: 22. Jan. 2004 14:09    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 Laute,

am besten CATIA einfach nochmal neuinstallieren. Man muss zwar ein wenig Zeit investieren ;-), hat aber dafür danach wieder ein sauberes System auf dem Rechner :-)
Gruß

Arno

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

RonnyS
Mitglied



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

Beiträge: 97
Registriert: 04.09.2003

erstellt am: 22. Jan. 2004 14:22    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 A. Hofmann 10 Unities + Antwort hilfreich

also bei mir funzt obiges beispiel mit .net 7.1 und R11SP1 ohne probleme

------------------
gr33t7 Ronny

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

Laute
Mitglied
Student


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

Beiträge: 26
Registriert: 14.07.2003

erstellt am: 22. Jan. 2004 15:16    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 A. Hofmann 10 Unities + Antwort hilfreich

Hallo,

es geht doch nix über ein "sauberes System!". Hab R10 deinstalliert und R12 drübergebübgelt- nun läuft es einwandfei.

Danke für den Hinweis!

Gruß

Laute

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