Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  SelectElement3 abbrechen

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:  SelectElement3 abbrechen (2758 mal gelesen)
Watje
Mitglied
Ingenieur


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

Beiträge: 73
Registriert: 16.09.2005

erstellt am: 28. Okt. 2005 15:56    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!

Ist es möglich die Funktion "SelectElement3" abzubrechen?

Ich programmiere mit VB6

Gruß
Dirk

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: 31. Okt. 2005 07:00    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 Watje 10 Unities + Antwort hilfreich

Hallo,

kommt drauf an, was du unter abbrechen verstehst.

Status = oSelection.SelectElement3(InputObjectType, ....)

If (Status <> "Normal") Then 
  End
Else 
  ...
End if

Wenn du jetzt z.B. die ESC-Taste drückst, ist wird dein Script beendet.

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

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

Watje
Mitglied
Ingenieur


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

Beiträge: 73
Registriert: 16.09.2005

erstellt am: 31. Okt. 2005 11:16    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

Es soll nicht mein ganzes Scrip abgebrochen werden sondern nur die Funktion. Ich habe z.B. als Filter "Point" angegeben. Wenn der Benutzer nun gar keinen Punkt in seinem Part hat, gibt es keine andere  Möglichkeit für ihn als Catia komplett "abzuschießen" um aus der Funktion wieder heraus zu kommen. Das will ich natürlich nicht.

Schön wäre z. B. das er während der Funktion Esc drücken könnte um die Funktion zu beenden, mein Scrip aber nach dem Funtionsaufruf weiter läuft.

Dirk

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: 31. Okt. 2005 13: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 Watje 10 Unities + Antwort hilfreich

Hi,

der Code ist dann im Prinzip der gleiche.

Wenn du in VB6.0 arbeitest, legst du dir ein neues Modul an (z.B. MOD_SelectElement3). Das ganze sieht also so aus:

Sub Main()
'  .... dein Script
End Sub

Sub SelectElement3()
'  ...Code siehe oben, nur als Abbruchkriterium nicht "end" (beendet Script), sondern "exit sub" (beendet nur die sub und macht dann in der main weiter.)
End Sub

Wenn du nicht mit verschiedenen Modulen arbeiten willst, kannst du auch alles ins Hauptmodul packen. Folgende Unterschiede sind zu beachten:

Dim einer Variale innerhalb einer Sub > die Variable ist nur in der Sub verfügbar
Dim einer Variale am Anfang des Moduls (also über der ersten Sub) > die Variable ist in allen Subs des Moduls verfügbar
Public einer Variable > die Variable ist in allen Modulen verfügbar

Gruss TomTom

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

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: 31. Okt. 2005 13:11    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 Watje 10 Unities + Antwort hilfreich

Kurzer Nachtrag:
das ganze geht natürlich auch mit dem Aufbau als Funktion: der Abbruchbefehl lautet dann: Exit Function

TomTom

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

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

Watje
Mitglied
Ingenieur


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

Beiträge: 73
Registriert: 16.09.2005

erstellt am: 31. Okt. 2005 15:47    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

Ich glaub ich hab mich noch nicht klar genug ausgedrückt und du hast mich missverstanden oder ich versteh den Code nicht.

Mit "es soll nur die Funktion abgebrochen werden" meine ich die Funktion "Status = oSelection.SelectElement3(InputObjectType, ....)"
Am besten ein Beispiel:
----------------------------------------------------------------------
1:Private Sub cmdOK_Click(Index As Integer)

2 im InputObjectType(0)
3 im Status As String
4:InputObjectType(0) = "Point"
5:Status = selection1.SelectElement3(InputObjectType, "Punkt auswählen", True, CATMultiSelTriggWhenSelPerf, False)
6:If (Status = "Cancel") Then
7:      Exit Sub
8:Else
9:      msgbox "Punkt ausgewählt"
10:End If
11:End sub
----------------------------------------------------------------------

Wenn der Benutzer auf den Ok-Button drückt, wird er aufgefordert einen Punkt auszuwählen. Hat er aber keinen Punkt in seinem Part kann er kein Element auswählen ( bei anderen Element, z.B. eine Linie erscheint ein Verbotsschild). Die Funktion "SelectElement3" läuft also immer noch weiter und wartet auf einen Punkt. Ich kann also gar nicht die If-Anweisung erreichen, oder?

Vielen dank dafür das du versuchst mir zu helfen

Dirk

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: 01. Nov. 2005 07: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 Nur für Watje 10 Unities + Antwort hilfreich

Hallo,

Eigentlich denke ich, das mir klar ist, was du meinst. Oder ich seh' vor lauter Bäumen wirklich den Wald nicht mehr.

Also noch mal haarklein:

Wenn du in der CAA V5 Visual Basic Help nachschaust, findets du zur Selction-Methode (SelectElementt2 und 3 etc) für den OutpatState (das was im Script mit Status bezeichnet ist) folgende Angabe:
oOutputState
The state of the selection command once SelectElement2/3 returns. It can be either "Normal" (the selection has succeeded), "Cancel" (the user wants to cancel the VB command, which must exit immediately), "Undo" or "Redo".

Wenn du also die ESC Taste drückst, ist die Selection genauso beendet, wie wenn du (in deinem Fall) einen Punkt auswählst. Nur das die Selection dann eben leer ist. Und überprüfen, ob die Selection durch die Auswahl eines Objektes oder durch Abbruch (z.B. ESC Taste) beendet wurde, kannst du nmit Hilfe des OutputState (Status).

Kopiere den folgenden Code in ein CATScript. Starte ihn. Drück die ESC Taste. Die Selection ist beendet. Die Msgbox "ESC gedrückt. Das Abbruchkriterium ...." erscheint. Du bist also in der IF-Anweisung drin. Und jetzt kannst du die Funktion, in der die Selection abläuft (und damit meine ich nicht die Zeile Status = .... oder die Sub oder das Modul) beenden und dein Hauptscript läuft weiter. Jedenfalls ist das bei meiner CATIA-Applikation so.

Passiert bei dir etwas anderes? Dann bin ich auf deinen Post gespannt.

Bis dann,  TomTom

Sub CATMain()

Set Selection1 = Catia.ActiveDocument.Selection

Dim InputObjectType(0)

InputObjectType(0) = "Point"

Status = Selection1.SelectElement3(InputObjectType, "Punkt auswählen", True, CATMultiSelTriggWhenSelPerf, False)
If (Status = "Cancel") Then
    msgbox "ESC gedrückt. Das Abbruchkriterium ist also erfolgt. Die Selection ist beendet."
    Exit Sub
Else
  msgbox "Punkt ausgewählt"
End If

End Sub

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

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

Watje
Mitglied
Ingenieur


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

Beiträge: 73
Registriert: 16.09.2005

erstellt am: 02. Nov. 2005 09: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

Hi tomtom1972
War doch alles richtig was du mir geschrieben hast. Ich hatte ein anderes Problem warum es bei mir nicht funktioniert hat: Ich habe ein Formular programmiert und es so eingestellt das es immer im Vordergrund steht. Wenn nun die Funktion SelectElement3 aufgerufen wurde, hab ich immer direkt versucht die Esc-Taste zu drücken. Dann passierte entweder gar nichts oder es kam eine Fehlermeldung "An Action cannot be completed because....". Wenn ich aber nun einmal auf das Catiafenster klicke funktioniert es genau so wie ich es mir vorgestellt habe.

Vielen Dank für deine Hilfe

Dirk

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: 02. Nov. 2005 12:11    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 Watje 10 Unities + Antwort hilfreich

Hi,

das Problem hatte ich auch schon in einem anderen Zusammenhang, aber man muss erst mal dran denken ....

Die einfachsten Sachen dauern immer am längsten.

Schön das es jetzt läuft.

Gruss

TomTom

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

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

mgheinz1001
Mitglied
Dipl.-Ing. (FH)


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

Beiträge: 109
Registriert: 17.03.2005

erstellt am: 08. Dez. 2005 11: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 Watje 10 Unities + Antwort hilfreich

Hallo,

ich hätte da auch noch eine Frage zu dem Thema. Bei dem Start meines Makors wird der Benutzer direkt aufgefordert ein Element auszuwählen. Das Problem ist jetzt folgendes: wenn der Benutzer sich dazu entschließt das Programm ohne Selection sofort wieder abzubrechen (ohne vorheriges Esc), dann ist das Programm zwar beendet nur läuft der Befehl SelectElement immer noch. Mit dem Funktion "EndSelectElement" funktioniert es nicht. Die greift erst, wenn vorher etwas ausgeählt wurde. Hat da jemand eine Lösung?

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: 12. Dez. 2005 06:33    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 Watje 10 Unities + Antwort hilfreich

Hallo,

dazu eine Verständnisfrage: Wie beendest du (oder der User) das Program ohne Selection oder drücken von ESC während CATIA auf die Selection wartet? Arbeitest du mit VB (Abbruch-Button in einer Form?)

TomTom

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

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