Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Catia Events in VBA abfangen

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:  Catia Events in VBA abfangen (2772 mal gelesen)
johann.burghuber
Mitglied



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

Beiträge: 19
Registriert: 06.03.2012

erstellt am: 08. Mrz. 2012 15:01    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,

kann ich in Catia mittels VBA verschiedene Events abfangen?

Ich habe in Catia z.B. 2 Files geöffnet. Ein Part und ein Drawing.
Nun möchte ich ich jedes mal wenn ich zwischen den geöffneten Files hin und her wechsle das ein VBA-Makro ausgeführt wird.

Gibt's da eine Möglichkeit?

Danke
Hans

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

rfriedrich
Mitglied



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

Beiträge: 39
Registriert: 11.05.2005

erstellt am: 09. Mrz. 2012 09:44    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 johann.burghuber 10 Unities + Antwort hilfreich

Hallo Hans,

das geht nur "von außen", aber nicht mit VBA, da dies die CATIA-Applikation während des Makrolaufs blockiert.

Man kann also eine exe programmieren, die zeitgetaktet die CATIA-Applikation abprüft. Auf diese Weise ist es auch möglich, die gewünschten "Events" abzufangen.


Gruß
Roland

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

RSchulz
Moderator²
Head of CAD, Content & Collaboration / IT-Manager



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

Beiträge: 5541
Registriert: 12.04.2007

@Work
Lenovo P510
Xeon E5-1630v4
64GB DDR4
Quadro P2000
256GB PCIe SSD
512GB SSD
SmarTeam V5-6 R2016 Sp04
CATIA V5-6 R2016 Sp05
E3.Series V2019
Altium Designer/Concord 19
Win 10 Pro x64

erstellt am: 09. Mrz. 2012 09: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 johann.burghuber 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von rfriedrich:
Man kann also eine exe programmieren, die zeitgetaktet die CATIA-Applikation abprüft. Auf diese Weise ist es auch möglich, die gewünschten "Events" abzufangen.

Hallo zusammen,
naja zeitgesteuert abfragen und damit die gewünschten Events abfangen, ist IMHO ein Widerspruch in sich. Entweder prüfe ich zeitgesteuert eine Veränderung, auf die ich reagiere, oder ich reagiere auf die Events bzw. werde von diesen ausgelöst. Letzeres wäre die saubere Variante, allerdings müsste man dann in den direkten Code von CATIA eingreifen (können) oder mit einem Backdoorprogramm die Applikation erweitern, aber diese sind nur über sehr problematische Wege einzubinden. Es gibt z.B. eine Möglichkeit ein Backdoorprog via Registry im System so einzubinden, dass es mit jedem! Programm gestartet und in dessen Programmstack geladen wird. Daher möchte ich diese Möglichkeit nicht erklären... Der Schaden bei einer falschen Handhabung wäre viel zu groß!

Ich möchte dir daher nahelegen, in diesem Bereich nicht weiter Zeit zu investieren, da es über einen "einfachen" und vor allem sicheren Weg nicht geht. CATIA selbst sieht es in jedem Fall nicht vor, Eventgesteuert Makros auszuführen...

------------------
MFG
Rick Schulz

Nettiquette (CAD.de)  -  Was ist die Systeminfo?  -  Wie man Fragen richtig stellt.  -  Unities

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: 09. Mrz. 2012 13:49    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 johann.burghuber 10 Unities + Antwort hilfreich

Hallo Rick,

nicht ganz richtig. :-)
Ich würde zwar dennoch davon abraten, da ich vermute, kann mich aber auch irren, die Erfahrung fehlt.
Keine Kritik, aber der Hintergrund ist der, dass das Verfahren, was ich gleich vorschlage relativ unsauber ist und auch Probleme verursachen kann.

Man kann die Events über CAA abfangen, das wäre relativ kompliziert da CAA, aber auch über Polling.
Polling ist das, was Rick mit zeitgesteuerter Abfrage meint, ich würd's jedoch nicht über die Zeit steuern, sondern wirklich aggressiv die ganze Zeit. :-)

Ich habe mal ein Makro geschrieben, welches die Views der geöffneten Teile synchronisiert, also die Ansichtsänderungen auf alle Fenster überträgt.
Dies habe ich, der Einfachkeit halber, im CATVBA gemacht. Einfach Polling und gut ist. War auch erst sehr skeptisch zwecks der Performance, aber juckt unsere Rechner nicht weiter und für diesen Fall hat's gut geklappt. Einziger, für den Anwender wirklich erkennbarer Nachteil: Der Mauszeiger wird ein Kringel oder eine Sanduhr sein, es lässt sich, durch DoEvents aber alles, genauso weiter benutzen.

Ich kann Dir das Makro nicht fertig schreiben, da es mit meiner Arbeit kollidiert, aber nun kennst Du die Werkzeuge:
- Polling
- DoEvents
- Schleife (do while)
- CATIA.ActiveWindow

------------------
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

johann.burghuber
Mitglied



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

Beiträge: 19
Registriert: 06.03.2012

erstellt am: 09. Mrz. 2012 14:53    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

Danke für die Antwort.

Ich kenne das mit den Events noch von Excel.

Es ging darum das ich ein selbst erstelltes UserForm habe welches, je nach dem ob ein Part, Product oder Drawing geöffnet ist, verschiedene Schaltflächen anzeigt.

Da ich bei geöffneten Form zwischen den geöffneten Files hin- und herschalten kann sollte dies idealerweise direkt mit dem Wechsel zwischen den Fenstern geschehen.
Habe es jetzt so gelöst das die Anzeige aktualisiert wird wenn der Benutzer mit der Maus über das Form oder deren Elemente fährt (Move Event).

Ist zwar nicht die sauberste Lösung, aber es genügt für unsere Zwecke.

Danke nochmals

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

RSchulz
Moderator²
Head of CAD, Content & Collaboration / IT-Manager



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

Beiträge: 5541
Registriert: 12.04.2007

@Work
Lenovo P510
Xeon E5-1630v4
64GB DDR4
Quadro P2000
256GB PCIe SSD
512GB SSD
SmarTeam V5-6 R2016 Sp04
CATIA V5-6 R2016 Sp05
E3.Series V2019
Altium Designer/Concord 19
Win 10 Pro x64

erstellt am: 09. Mrz. 2012 15:12    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 johann.burghuber 10 Unities + Antwort hilfreich

Naja wenn du das machen möchtest, dann würde ich das Form aktualisieren, wenn du es aktiviert. Form_Activated
Denn du musst so oder so erst das Programm wieder aktivieren, wenn du im CATIA etwas machst.

------------------
MFG
Rick Schulz

Nettiquette (CAD.de)  -  Was ist die Systeminfo?  -  Wie man Fragen richtig stellt.  -  Unities

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

johann.burghuber
Mitglied



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

Beiträge: 19
Registriert: 06.03.2012

erstellt am: 09. Mrz. 2012 18:10    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

Habe ich bereits gemacht, nur vergessen zu erwähnen.

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