Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  CATIA-Funktionsaufrufe aus CATScript-Makros

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-Funktionsaufrufe aus CATScript-Makros (3920 mal gelesen)
Steffen Hohmann
Mitglied
 


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

Beiträge: 446
Registriert: 06.03.2002

erstellt am: 14. Mai. 2002 09: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


CATIABefehle.zip

 
Hallo,

da in letzter Zeit öfters nach Möglichkeiten gesucht wurde, innerhalb von CATScripts bestimmte CATIA-Funktionen aufzurufen, die nicht Bestandteil der CATScript-Sprache sind, stelle ich ein kleines Tool zur Verfügung. Mit diesem Tool kann jeder CATIA-Befehl aus einem CATScript-Makro aufgerufen werden. Folgende Syntax ist anzuwenden:

deutsche Spracheinstellung:

CATIA.SystemService.ExecuteBackgroundProcessus( "C:\CATIABefehl.exe CATIABEFEHL" )

englische Spracheinstellung

CATIA.SystemService.ExecuteBackgroundProcessus( "C:\CATIACommand.exe CATIABEFEHL" )

Im Anhang sind beide Programme in der zip-Datei verfügbar.
Für CATIABEFEHL ist der jeweilige CATIA-Befehl einzutragen,z.B.

CATIA.SystemService.ExecuteBackgroundProcessus( "C:\CATIABefehl.exe Alles einpassen" ) 'Die Geometrie wird vollständig auf dem Bildschirm angezeigt

Folgende Regeln sind jedoch einzuhalten:
Der Aufruf muß über die Methode 'ExecuteBackgroundProcessus' erfolgen, damit sich kein Wartezyklus ergibt.
Erfolgt der Aufruf über 'ExecuteProcessus', wartet das Makro auf das Ende des Programmes. Damit ist CATIA im Wartezustand und kann keine Befehle empfangen bzw. keine Interaktion ausführen. Das führt dazu, das CATIA nur über den Taskmanager beendet werden kann.

Die Methode 'ExecuteBackgroundProcessus' führt jedoch das Makro fort, so daß CATIA-Funktionen, die eine Interaktion erforden (z.B. 'Block', 'Linie', 'Ebene'), nur am Ende eines Makros ausgeführt werden sollten.

Typische nicht interaktive Befehle sind:

Alles einpassen          'die Geometrie wird vollständig auf dem Bildschirm angezeigt
Alles ausblenden        'der Baum wird komplett zugeklappt
Erste Ebene erweitern    'der Baum wird auf die 1. Ebene erweitert
Zweite Ebene erweitern  'der Baum wird auf die 2. Ebene erweitert
Schattierung mit Kanten  'die Geometrie wird schattiert mit Kanten dargestellt
Perspektive              'Schaltet zur perspektifischen Darstellung um
Parallel                'Schaltet zur parallelen Darstellung um
* iso                    'wechselt zur isometrischen Darstellung

usw.

Interaktive Funktionen:
sämtliche Geometriefunktionen (Block, Tasche, Kantenverrundung usw., aber nicht zu empfehlen, da Interaktion erwartet wird, besser die Standardmethoden zur Geometrieerzeugung verwenden)

Optionen                'zeigt den Optionendialog (Tools - Optionen)

Für Meinungen und Anregungen wäre ich dankbar.

Gruss

Steffen

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

Axel.Strasser
Ehrenmitglied V.I.P. h.c.
Selbstständig im Bereich PLM/CAx



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

Beiträge: 4107
Registriert: 12.03.2001

Früher war vieles gut, und das wäre es heute immer noch, wenn man die Finger davon gelassen hätte!

erstellt am: 14. Mai. 2002 12: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 Nur für Steffen Hohmann 10 Unities + Antwort hilfreich

Hallo Steffen

danke für Deine Ausführungen, sie sind sehr hilfreich. Hast Du auch noch eine Möglichkeit gefunden die aktuellen Spracheinstellung herauszufinden ?

Axel

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

torspezialist
Mitglied



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

Beiträge: 44
Registriert: 29.06.2003

erstellt am: 17. Okt. 2004 11: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 Nur für Steffen Hohmann 10 Unities + Antwort hilfreich


Kantenverrundung.JPG

 
Hallo Steffen,

dieses kleine Programm erscheint mir sehr hilfreich :-)
Allerdings ergibt sich bei mir ein Problem, wenn ich selektierte Kanten verrunden will. Dazu brauche ich die "Kantenverrundung" aus dem PartDesign (linkes Icon in dem beigefügten Bild).
Nachdem ich Dein Programm mit der Funnktion "Kantenverrundung" aufrufe, erscheint aber immer der Funktionsdialog aus dem GenerativeShapeDesign (siehe rechtes Icon in dem beigefügten Bild)!
Für Deinen Ratschlag zur Lösung dieses Problemens sind dir die unities sicher!!!!

Außerdem noch eine Frage: Wenn ich vorher die zu verrundenen Kanten mit "SelectElement" auswähle, werden sie in den Funktionsdialog übernommen. Kann ich nun irgendwie im Makro den OK-Schalter drücken (SendKeys?!?!?). Danke!
Gruß
Spezi

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

Bartleby
Mitglied



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

Beiträge: 102
Registriert: 17.06.2004

Win XP V5R12 SP3, SP5
Win 2000 SP4 V5R12 SP3

erstellt am: 28. Okt. 2004 16:14    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 Steffen Hohmann 10 Unities + Antwort hilfreich

Hallo Steffen,
ich habe die CATIABefehl.exe schon seit einiger zeit mit eingebaut, allerdings habe ich immer das problem dass die exe nur als ExecuteBackgroundProzessus läuft. Damit tritt der Effekt auf, dass im Script schon Befehle ausgeführt werden, die sich auf Elemente beziehen, die unter Umständen in dem parrallel in Hintergrund laufenden Prozess erst zu spät erzeugt werden. es müsste doch eigentlich möglich sein von der CATIABefehl.EXE ein Feedback !WEITER! zu bekommen sodass man auch mit executeProcessus arbeiten kann und die verzögerung des BackgroundP.s ausschaltet. Das problem ist dann nur noch dass man checken müsste ob der CatiaBefehl beendet ist, der startet ja erst in der exe und dauert wahrscheinlich länger als die EXE selbst...
Woher ist die EXE(unkomp. Quelltext)???
Schöne Grüsse,
Ronny

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

Steffen Hohmann
Mitglied
 


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

Beiträge: 446
Registriert: 06.03.2002

erstellt am: 28. Okt. 2004 17: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

Hallo Ronny,

in der exe-Datei steckt nichts weiter drin als:

AppActivate("CATIA V5")
SendKeys "b:" & CATIA_Befehl & Chr(13)

Das funktioniert für interaktive Befehle in jedem Fall nur mit ExecuteBackgroundProcessus. Das habe ich auch schon oben beschrieben warum das so ist.

Gruss
Steffen

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