Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  script 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:  script beenden (1025 mal gelesen)
snow
Mitglied
Ingenieur


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

Beiträge: 20
Registriert: 18.02.2008

CATIA V5 R28

erstellt am: 06. Mai. 2010 18:23    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 cad-gemeinde 

ich habe ein relativ aufwändiges CATScript mit zahlreichen
unterroutinen und funktionen. taucht irgendwo ein fehler
auf, so soll er zu einer unterroutine "springen", die eine
einheitliche fehlermeldung ausgibt und das makro beendet.

sicherlich ein leichtes problem, aber weder Wscript.Quit
noch der verpönte GoTo-befehl funktionieren.
Exit Sub und Exit Function beenden nur die jeweilige
routine/funktion.
CATIA.Quit ist mir als lösung etwas zu ruppig 

würde mich über einen tipp oder gar eine lösung freuen,
snow

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

bgrittmann
Moderator
Konstrukteur


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

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 06. Mai. 2010 18:58    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 snow 10 Unities + Antwort hilfreich

Servus
Schau mal hier eine kleine Einführung in die Fehlerbehandlung.
IMHO ist es der sauberste Weg, die Fehlerrückgabe einer Unterroutine wieder bis in die CATMain weiter zu geben und dort zentral die Fehlerauswertung und Fehlerausgabe zu erledigen.

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

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

snow
Mitglied
Ingenieur


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

Beiträge: 20
Registriert: 18.02.2008

CATIA V5 R28

erstellt am: 06. Mai. 2010 22: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

danke für den link, eine ganze reihe interessanter und
wichtiger punkte 

mhhh alles zurückzugeben ist nat. nicht sinn der sache.
gibt es eine möglichkeit einen fehler zu erzwingen, so dass
das makro (vlt sogar ohne fehlermeldung) abgebrochen wird?
dann könnte ich in meiner subroutine zur ausgabe des
fehlers diesen gewollten fehler anhängen und das makro
beenden lassen...

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

DanielFr.
Moderator
Manager


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

Beiträge: 2506
Registriert: 10.08.2005

HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3

erstellt am: 07. Mai. 2010 14: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 Nur für snow 10 Unities + Antwort hilfreich

Hallo Snow,

du kannst doch ganz am Anfang des CATSCripts ein "On Error Resume next" Statement schreiben. Nach den Funktionen musst du dir halt dann mit einem If Err.Number <> 0 weiterhelfen. Ist die Fehlernummer nicht 0 dann springst du in eine Funktion, gibst deine MsgBox aus und beendest noch innerhalb deiner If Schleife die Sub CATMain (und somit das komplette Script).

Ich habe hier mal ein kleines Beispiel angehängt in dem in einer Fehlerfunktion mit Hilfe der Methode Err.Raise ein Fehler ausgelöst wird. Das Err Objekt ist global. Somit kann ich in der CATMain Routine die Fehlernummer abfragen und dementsprechend reagieren.

Das ist zwar auch nicht schön da du immer die If-Abfrage nach deinen Funktionen brauchst aber wenn du das Script sauber von oben nach unten aufbaust dann setzt du diese Zeile eben nur an strategischen Punkten

Code:

Sub CATMain()

'***Fehlerbehandlung einschalten
    On Error Resume next

'***Funktion lösst Fehler aus
    Fehlerfunktion

'***Abfrage ob die Funktion einen Fehler ausgelöst hat
If Err.Number <> 0 then
AppErr
Exit Sub
End If
               

End Sub


'***Testfunktion
Private Function Fehlerfunktion()

    Err.Raise 99, "Fehlerfunktion", "Testfehler"
   
End Function


'***Funktion zum ausgeben eines Fehlers
Private Function AppErr()

MsgBox "Es ist ein Fehler aufgetretten:" + Chr(10) + Chr(10) + _
                      "Fehlernummer:" + chr(9) + CStr(Err.Number) + Chr(10) + _
                "Fehlerquelle:" + chr(9) + CStr(Err.Source) + Chr(10) + _
                "Beschreibung:" + chr(9) + CStr(Err.Description), vbCritical, "FEHLER"

End Function


ANMERKUNG: Spricht etwas dagegen das ganze Projekt auf VBA zu realisieren? Dann hättest du wenigsten die Sprungmarken zur Verfügung. Am besten wäre natürlich das ganze Projekt auf VB.NET aufzusetzen. Erstens ist das die bessere Technologie und zweitens hast du hier du Möglichkeit der strukturierten Fehlerbehandlung mit Try...Catch

------------------
MFG Daniel

Systeminformation | Inoffizielle CATIA Hilfeseite | CATIA FAQ | Suche | TraceParts (Normteile...) | 3D Content Central (noch mehr Normteile...)

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



Technischen Zeichner / Konstrukteur Anlagenplanung Walzwerk (m/w/d)

Wir sind ein smarter unabhängiger Mittelständler, der die Welt des Stahls besser macht. Wir sind die Pioniere der renommierten 3-Walzentechnologie in der internationalen Stahlbranche. Engineering bedeutet bei uns, über das Bestehende hinauszudenken. Seit mehr als sieben Jahrzehnten steht KOCKS rolled® steel für exzellente Güte.

Die Kultur bei KOCKS ist weltoffen, kollegial & aufrichtig: ...

Anzeige ansehenTechnischer Zeichner, Bauzeichner
snow
Mitglied
Ingenieur


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

Beiträge: 20
Registriert: 18.02.2008

CATIA V5 R28

erstellt am: 07. Mai. 2010 22:27    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

ja, so oder so ähnlich werd ich das wohl lösen müssen.
problem an vba ist das es unter linux schwierigkeiten macht 

prinzipiell wäre es nat. die bessere methode, auch wenn
ich gestehen muss noch nicht mit vba/vb.net gearbeitet zu haben
da ich mich bisher um c++.net bemüht habe
irgendwie wird das aber auch mal zeit mit vba 

vielen dank für die ausführliche erklärung Daniel 

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