Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  CATIA.StartCommand synchron?

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.StartCommand synchron? (2118 mal gelesen)
AlexE78
Mitglied
Ing.


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

Beiträge: 49
Registriert: 29.08.2005

erstellt am: 05. Okt. 2005 15:48    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 allerseits,

ist jemandem von euch eine Möglichkeit bekannt, wie man einen CATIA.StartCommand("CommandX")-Befehl (CommandX ist in meinem Fall eine CAA-Funktion) innerhalb eines .catvbs- oder .catscript-Makros synchron ablaufen läßt? D.h., daß das Script erst dann weiterläuft, wenn StartCommand beendet ist oder zumindest eine gewisse Zeit wartet.
Das ganze muß auf Unix und XP laufen, daher kann ich's nicht mit einem out-process-macro realisieren.

Mit externen Sleep-Prozessen (z.b. CATIA.SystemService.ExecuteProcessus "sleep 1") hab ichs schon versucht, scheint aber nix zu bewirken. Im Moment funktioniert es nur, wenn ich jeweils eine "MsgBox" danach aufzurufe... aber das kanns auf Dauer auch nicht sein.

vielen dank schonmal...

mfg
alex

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

crash
Mitglied



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

Beiträge: 158
Registriert: 12.06.2004

erstellt am: 06. Okt. 2005 16:18    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 AlexE78 10 Unities + Antwort hilfreich

Hallo AlexE78,

wenn du in V5Automation schaust unter SystemService, gibt es dort
u.a.
ExecuteBackgroundProcessus = Executes an asynchronous process.
ExecuteProcessus = Executes a synchronous process

gruss
crash

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

AlexE78
Mitglied
Ing.


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

Beiträge: 49
Registriert: 29.08.2005

erstellt am: 12. Okt. 2005 08:40    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 den Rat, aber das meinte ich nicht damit.
Es geht nicht um ein synchron ausgeführtes externes Programm, sondern um einen synchronen, INTERNEN CATIA-Befehl. Und der startet mit "CATIA.StartCommand" leider nur asynchron.

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

Jens Hansen
Mitglied
Senior Consult


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

Beiträge: 1055
Registriert: 05.08.2000

Win7
CATIA V5 R19
VB.Net
C#

erstellt am: 12. Okt. 2005 09: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 Nur für AlexE78 10 Unities + Antwort hilfreich

Moin Alex,
das ist aber bei V5 so, dass Prozesse nur asynchron ausgeführt werden können. Im Grunde genommen arbeitet V5 wie ein Schachspiel; erst wenn der eine Zug fertig ist, kann ein anderer gemacht werden.
Mir ist keine Funktion oder Prozess bekannt, wo innerhalb von V5 wirklich 2 Sachen gleichzeitig ablaufen.

Schöne Grüße

Jens Hansen

------------------
Inoffizielle CATIA-Hilfeseite
http:\\catia.cad.de

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

Lusilnie
Mitglied



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

Beiträge: 1486
Registriert: 13.07.2005

erstellt am: 12. Okt. 2005 20:04    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 AlexE78 10 Unities + Antwort hilfreich

Hallo Jens Hansen,

entschuldige, daß ich mich hier einmische, aber vielleicht liegt hier ein Verständigungsproblem mit synchron und asynchron vor.
Die wirkliche Frage ist aus meiner Sicht, wie man dem Script beibringt, daß es auf die Vollendung des mittels CATIA.StartCommand() gestarteten Prozesses wartet.
Dies ist nämlich nicht immer der Fall, treffsicher zu Testen mit dem Command "Generate CATPart from Product..." bei R14, z.B.:

Sub CATMain()
CATIA.StartCommand "Generate CATPart from Product..."
MsgBox "Fertig!!!"
End Sub

Hier ist das Script längst beendet, eh man die Abfrage vom Befehl bekommt, und auch die Message-Box ist schon eher aufgeblendet.

Allerdings bringst Du mich hier auf eine Idee. Wenn CATIA SELBST nur einen Schritt nach dem anderen macht, müßte man nur eine von CATIA abzuarbeitende ?Routine? oder ?Abfrage? als nächste Programmzeile einfügen und es sollte das gewünschte Ergebnis erzielt werden. Hast Du oder hat jemand anderes dazu eine Idee oder gar schon Lösung?


mfg,
Lusilnie

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

Jens Hansen
Mitglied
Senior Consult


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

Beiträge: 1055
Registriert: 05.08.2000

Win7
CATIA V5 R19
VB.Net
C#

erstellt am: 12. Okt. 2005 21: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 Nur für AlexE78 10 Unities + Antwort hilfreich

Hallo Lusilnie,
außerhalb von V5 wäre es leichter; ich erschalge solche Probleme mittles "LateBinding"-Methoden; d.h. ich greife von außen auf V5 zu und muss logischerweise warten, bis V5 mit der Funktion fertig ist.
Innerhalb eines Makros könnte man eine Do-While-Schleife einbauen, die z.B. fragt, ob ein Part vorhanden ist. Das wäre son ein Ansatz.

schöne grüße

Jens Hansen

------------------
Inoffizielle CATIA-Hilfeseite
http:\\catia.cad.de

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

AlexE78
Mitglied
Ing.


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

Beiträge: 49
Registriert: 29.08.2005

erstellt am: 13. Okt. 2005 09:02    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 Morgen allerseits,

das mit dem Zugriff eines externen Programms auf CATIA hab ich schon getestet und funktioniert auch prima... aber halt nur unter XP. Wenn allerdings da jemand ne Idee hat, wie man das unter UNIX anstellt, laß ich mich gerne eines besseren belehren.

und was die abfrage des ergebnisses angeht, bin ich eher skeptisch. soweit ich CATIA verstehe, ist CATIA.StartCommand "CommandX" gleichzusetzen mit einem Mausklick auf das entsprechende Icon bzw. der Eingabe von "c:CommandX" ... und solange da noch ein Makro läuft, das z.B. auf das Ergebnis wartet, stellt sich der befehl hinten an. zumindest bin ich da schon ein paar mal in endlosschleifen geraten.


mfg alex

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

TimoT
Mitglied



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

Beiträge: 16
Registriert: 25.03.2003

erstellt am: 18. Nov. 2005 08:37    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 AlexE78 10 Unities + Antwort hilfreich

Hallo Alex,

wenn Du eine selbst implementierte CAA Funktion innerhalb von Catia aufrufen möchtest kannst Du auch einen Corba oder SOAP Server als eigenständigen Thread beim starten von Catia hochfahren.

Dieser Server bietet Dir dann eine Schnittstelle die Du von außen aufrufen kannst. Das funktioniert sowohl unter Windows als auch unter Unix. Wir haben solche Funktionen bereits auf WIN32, AIX, HP und Solaris realisiert.


Viele Grüße
Timo

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