Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  SelectElement2 per Code 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:  SelectElement2 per Code abbrechen (2128 mal gelesen)
MarkusK
Mitglied



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

Beiträge: 130
Registriert: 09.08.2002

Dell Precision T5500
Intel Xenon X5560 4x 2,8 GHz
12 GB Ram
NVIDIA Quadro FX 3800
Win XP
Catia V5R19 SP3

erstellt am: 06. Nov. 2014 14:59    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,

ich habe eine Frage zu SelectElement.

Ich habe eine Schleife in der ich per SelectElement2 den User mehrere Sachen auswählen lasse.
Das ganze wird aus einer UserForm aufgerufen.
Nun möchte ich über ein Abbrech-Button das die Schleife unterbrechen.
Das unterbrechen habe ich über eine Variabele in der Schleife realisiert,
das heist am Anfang der Schleife frage ich die Variable ab und verlasse dann die Schleife.

Nur, durch das ausführen der SelectElement-Methode, hat ja Catia gerade die Kontrolle, das heißt
der Code pausiert ja so lange bis ich ESC-drücke.
Erst dann wird die Schleife zu ende gelaufen und fängt von vorne an.

Kann man auch vom Makro aus die Selection abbrechen?
Mein derzeitiger ansatz wäre die ESC-Taste zu simulieren also über SendKeys.

------------------
Gruss Markus

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

joehz
Moderator
Freiberuflicher Konstrukteur


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

Beiträge: 1057
Registriert: 25.11.2006

Win7 Pro 64 + Ubuntu + Irix6.5.20
Dell Precision M6600 i7-2960XM 2.7GHz 16GB
NVidia Quadro M5010
Catia V5R19
VB6Pro.SP6/VBA 6.5.1053

erstellt am: 07. Nov. 2014 13:42    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 MarkusK 10 Unities + Antwort hilfreich

Hallo Markus,

hast Du mal die Online-Hilfe angesehen?
Oder die Dassault-Skripte unter \Dassault Systemes\B19\win_b64\VBScript?

Stichworte 'SelectElement' und 'Cancel'.

Hope it helps,
Joe

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

MarkusK
Mitglied



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

Beiträge: 130
Registriert: 09.08.2002

Dell Precision T5500
Intel Xenon X5560 4x 2,8 GHz
12 GB Ram
NVIDIA Quadro FX 3800
Win XP
Catia V5R19 SP3

erstellt am: 07. Nov. 2014 17:34    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 Joe,

die Hilfe hatte ich mir schon angeschaut, die Beispiele unter VBScrip hatte ich noch nicht
durch.

Aber leider habe ich auch dort nichts zu meinem Problem gefunden.

Ich versuche es noch mal.

Mein Problem ist nicht das Abfangen wenn der User die Auswahl abbricht,
sondern ich möchte genau dieses Abbrechen des User per Code simulieren.

Unten mein gekürzter Code.
Wie schon gesagt handelt es sich um eine Schleife die aus einer Userform aus aufgerufen wird.
Wenn ich nun den Abbrechen-Button auf der Userform drücke
setze ich "SchleifeAbbrechen = True"

Aber der Code pausiert noch beim SelectElement und wartet auf eine User-Aktion.
Das heißt der User muss erst noch mal was auswählen oder ESC drücken bis die Schleif abgebrochen wird.


Code:

For i = 0 To Me.Controls.Count - 1 ' Schleife über alle Elemente in der UserForm

  If SchleifeAbbrechen = True Then Exit For

...
  SelFilter(0)="TriDimFeatEdge"

  sStatus = Sel.SelectElement2(SelFilter, "Bitte wählen Sie..." ESC=Abbrechen", False)
  If sStatus = "Normal" Then ' Wenn Auswahl nicht abgebrochen
      Sel.Copy
      Sel.Clear
      Sel.Add workNC_Input_body
      Sel.PasteSpecial ("CATPrtResultWithOutLink") '"CATIA_RESULT"
      Sel.Clear
               
  End If
...       
Next i



Daher die Frage wie kann ich so eine Interaktion, also das Select, per Code abbrechen?

------------------
Gruss Markus

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: 07. Nov. 2014 17: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 MarkusK 10 Unities + Antwort hilfreich

Servus
Entweder über Sendkeys, oder du verhinderst dass während der Selektion ein Button gedrückt werden kann.
(deaktivieren, Userform ausblenden, ...) In der Doku gibt es beim "SelectElement2" eine Empfehlung ("Note: If the scripting language ...").

Gruß
Bernd

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

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

joehz
Moderator
Freiberuflicher Konstrukteur


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

Beiträge: 1057
Registriert: 25.11.2006

Win7 Pro 64 + Ubuntu + Irix6.5.20
Dell Precision M6600 i7-2960XM 2.7GHz 16GB
NVidia Quadro M5010
Catia V5R19
VB6Pro.SP6/VBA 6.5.1053

erstellt am: 07. Nov. 2014 19:44    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 MarkusK 10 Unities + Antwort hilfreich

Hallo Markus,

was ich nicht verstehe:
- interaktiv einen Button anklicken: OK
- interaktiv 'ESC'-Taste drücken: Nicht OK

Ausserdem:
Ich kenne das so, dass Du, während 'SelectElement' aktiv ist, beim Versuch in Deiner Form(VB6) einen Button anzuklicken eine Fehlermeldung erzeugst.
Anders ausgedrückt: Catia lässt die Interaktion mit der Form nicht zu, vor Du innerhalb Catia die SelectElement-Op beendet hast(per Auswahl oder 'Esc').

Das bedeutet, dass Du Deinen Abbrechen-Button nicht anklicken _kannst_ - und somit auch keine 'Escape'-Sequenz, ob mit Sendkeys oder Api(SendInput, SendMessage) von deinem Makro gesteuert lostreten kannst.

Vielleicht solltest Du Deinen Programmablauf nochmal überdenken?

Just a thought,
Joe

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

MarkusK
Mitglied



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

Beiträge: 130
Registriert: 09.08.2002

Dell Precision T5500
Intel Xenon X5560 4x 2,8 GHz
12 GB Ram
NVIDIA Quadro FX 3800
Win XP
Catia V5R19 SP3

erstellt am: 07. Nov. 2014 23:24    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 Bernd, Hallo Joe,

zum Thema ("Note: If the scripting language ...").

Das habe ich beachtet, außer dem Abbrechen Button ist alles deaktiviert.
Mit Sendkeys werde ich Montag dann mal probieren.

Aber dass der Abbrechen-Button gedrückt werden kann ist schon gewollt.

Bei VBA bekomme ich keinen Fehler wenn meine Schleife wartet und ich ein Button drücke.
Geht so weit ja auch, nur muss halt der Anwender nochmals Esc drücken umd die letzte Auswahl abzubrechen.

Ein anderer Ablauf wäre möglich aber nicht so schön.

Der Anwender soll mehrer, zb. 10-20, verschiedene Elemente auswählen, die dann kopiert werden.
Wenn jetzt bei einem Element die Vorgabe ist dass er eine Fläche auswählen soll, und
es die aber nicht gibt, muss er dies eine Auswahl ja abbrechen können.

Ich könnte dann natürlich das ganze Makro beenden, nur dann ist die Hälfte der Elemente kopiert und die ander nicht.
Bei meinem Ablauf kann er quasie einzelne Elemente auslassen, weil die Schleife weiter läuft.
Oder aber er entschließt sich das ganze abzubrechen über den Button.

Ok ich könnte, wenn er bei der Auswahl Esc-Drückt, über eine MsgBox abfragen ob er das ganze Makro
abbrechen möchte oder nur einzelne Elemente auslassen.
Das würde gehen, muss mal die ein paar Anwender fragen was für die einfacher ist.

Jetzt hab ich schon mal 2 weitere Ansätze...

Ich danke euch auf jeden fall schon mal.

------------------
Gruss Markus

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