Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Sub vorzeitig beenden

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:  Sub vorzeitig beenden (1099 mal gelesen)
Tiberius
Mitglied
 


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

Beiträge: 414
Registriert: 19.02.2002

SWX 2013 SP2 (unter anderen)
Windows 7 Prof. 64 Bit
Intel Xeon E5-2643
NVIDIA Quadro 4000
32 GB Ram

erstellt am: 27. Jan. 2009 15: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

Hi,

nachdem die Suchfunktion nichts passendes ausgeworfen hat scheib ich nun doch mal.

Angenommen ich hab ne Sub CATMAin() und weitere Subs. Wenn mein Makro sich gerade in einer der anderen Subs (nicht in den CATMain) befindet klappt das beenden irgendwie nicht so recht. Exit, End auch in Kombination mit Sub gehen nicht. Entweder es passiert garnichts oder es kommt ne Fehlermeldung.

Wie beende ich ein Makro wenn es sich in einer Sub xxx() grad befindet?

Als Notlösung hatte ich ne globale Variable mit dem Wert 1 belegt und dann in der CATMain den Wert abgefragt und dann das "Exit Sub" gesetzt - das funktionierte.

Gruß

Tiberius

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: 27. Jan. 2009 15: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 Nur für Tiberius 10 Unities + Antwort hilfreich

Ich glaube das Exit Sub funktioniert nur in catvba / VB und nicht in CATScript, bin mir aber unsicher.
Anonsten ist es aber Exit Sub. Wenn es sich um eine Function handelt dann analog End Function und End For...

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

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: 27. Jan. 2009 21:43    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 Tiberius 10 Unities + Antwort hilfreich

Hallo allerseits,

@Tiberius:
Aus meiner Erfahrung funktioniert das auch nur mit einer Übergabe-Variable. "Exit Sub" beendet eben nur die aktuelle Sub, nicht aber das gesamte Makro. Du landest also in der Abarbeitung des Scriptes wieder hinter dem Aufruf der Sub, die Du mit "Exit Sub" beendet hast!

@HoBLila:
"Exit ..." funktioniert nach meiner Erfahrung sowohl mit catvba als auch mit CATScript und auch noch bei beiden gleich: Es wird nur die aktuelle "Auswahl" beendet, nicht das gesamte Script (s.o.)!


mfg,
Lusilnie

------------------
Alle Aussagen zu DassaultSystemes-Produkten sind sehr optimistisch, selbst diese!!!

frei nach größeren Geistern

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

tomtom1972
Mitglied
dipl ing maschinenbau


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

Beiträge: 605
Registriert: 22.03.2005

NVidia Quadro K4000
Intel Xeon E5-1620, 64GB RAM
Windows10 64bit
R30 <= CATIA V5 > =R19

erstellt am: 28. Jan. 2009 07:31    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 Tiberius 10 Unities + Antwort hilfreich

Hallo,

wenn du Funktionen anstelle von Subs aufrufst, kannst du den Wert der Funktion am Ende zuweisen (wenn diese also komplett abgearbeitet wurde) und dann in der MAIN abfragen. Z.B. ein Boolean, also so:

Sub CATMain()
  Set oRoot = CATIA.ActiveDocument
  If Not bRootIsProd(oRoot) Then
      MsgBox "Das Root ist kein .CATProduct", 16, "Abbruch"
      Exit Sub
  End If
  '--- sonst was
  MsgBox "Fertig.    ", 64, "Info"
End Sub

Function bRootIsProd(oRoot) As Boolean
  If TypeName(oRoot) <> "ProductDocument" Then
      Exit Function  '<--- CATPart geöffnet = Exit Function = End Script
  End If 
  Set oProd = oRoot.Product
  Set oProds = oProd.Products
  '--- sonst was
  bRootIsProd = True  '<--- wird diese Zeile nicht abgearbeitet (wegen Exit Function) ist der Wert der Function = False
End Function


Gruß TomTom

------------------
tomtom1972

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

Tiberius
Mitglied
 


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

Beiträge: 414
Registriert: 19.02.2002

erstellt am: 28. Jan. 2009 08: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

Hi,

danke für die Tipps und Hinweise. Inzwischen hab ich das ganze fertig so wie oben beschrieben.

Gruß

Tiberius

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