Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  CATIA V5 Programmierung
  Selektion durch Klick auf Button starten

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
  
CATIA V5 Grundkurs | Einsteiger - 5 Std. 15 Min 48
  
Mit der Kisters 3DViewStation komplexeste 3D CAD-Daten beherrschen, eine Pressemitteilung
Autor Thema:  Selektion durch Klick auf Button starten (1146 mal gelesen)
Bernod
Mitglied



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

Beiträge: 40
Registriert: 03.03.2010

erstellt am: 20. Apr. 2010 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

Hallo,

ich bin's schon wieder. ich möchte die Funktion aus meinem vorherigen Beitrag (Ausführen einer PowerCopy unter VBA) nun über eine GUI steuern.

Dazu habe ich vorerst ein vereinfachtes UserForm erstellt.
- Ich habe einen "CommandButton1"
- und eine "ListBox1"
- Wird der "CommandButton1" geklickt, dann soll die Selektion in Catia ermöglicht werden
- nach der Selektion eines Elementes soll der name des Elementes in der "Listbox1" dargestellt werden

Mein Code sieht derzeit wie folgt aus

Code:
1 Private Sub CommandButton1_Click()
2 ' Auswahl festlegen -----------------------------------------------
3    Dim Filter1(0)
4    Filter1(0) = "Point"
5 ' Selektion definieren und leeren ----------------------------------
6    Dim UserSel As Object
7    Set UserSel = CATIA.ActiveDocument.Selection
8    UserSel.Clear
9 ' Selection vornehmen lassen ---------------------------------------
10   Dim intSelAbfrageStr As String
11   Dim intPointObj As Object
     
12   Me.ListBox1.AddItem ("Vor der Selektion")
   
13   intSelAbfrageStr = UserSel.SelectElement2(Filter1, "Bezugspunkt oben waehlen.", False)
   
14   If intSelAbfrageStr = "Normal" Then
15       Set intPointObj = UserSel.Item(1).Value
16   End If
     
17   Me.ListBox1.AddItem (UserSel.Item(1).Value.Name)

18   MsgBox "Test"
   
19 End Sub


Bis Zeile 12 läuft alles wunderbar. Ab Zeile 13 gibt es Probleme.

Der Fehler:
- Wenn ich auf den CommandButton1 klicke, welcher mir die Selektion in CATIA ermöglichen sollte passiert folgendes: Visual Basic wird in den Hintergrund verschoben, so dass CATIA sichtbar wird. Dennoch bleibt mein kleines Programmfenster weiterhin im Vordergrund (obwohl CATIA aktiv ist.... also die obere Programmleiste in CATIA ist blau und in meinem Programmfenster grau).
- Ich kann nichts in CATIA selektieren, es scheint als wäre CATIA durch mein Programm verdeckt
- Erst wenn ich das Programmfenster Schließe (über das x oben rechts) ist es mir möglich etwas in CATIA zu selektieren.
- Ich kannd ann natürlich nicht überprüfen ob der Name meiner Selektion wirklich in die Listbox geschrieben wird, da das Fenster ja nun geschlossen ist.
- Die MsgBox in Zeile 18 wird angezeigt.
- kehre ich nach Visual Basic zurück, dann wird das Programm immernoch als laufend angezeigt und ich muss es manuell stoppen.

Ich habe das Internet weit und breit durchforstet und auch in den gängigen Büchern nachgeschlagen, aber eine Antwort konnte ich nicht finden ... Weiß jemand einen Rat?

Ich danke für jede Hilfe!


Gruß,
Bernod

[Diese Nachricht wurde von Bernod am 20. Apr. 2010 editiert.]

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: 20. Apr. 2010 11: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 Bernod 10 Unities + Antwort hilfreich

Wahrscheinlich ist dein Formular Modal.

Schau mal in den Eigenschaften vom Dialog, ob's da irgend eine Eigenschaft mit Modal im Namen (z.B. viewModal) gibt und setz die auf FALSE.

Dann sollte es gehen.

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

Bernod
Mitglied



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

Beiträge: 40
Registriert: 03.03.2010

erstellt am: 20. Apr. 2010 11: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 habe es nun über Umwege hinbekommen, dass die Selektion funktioniert. Allerdings muss ich dazu das aktive Fenster nach betätigen des CommandButton1 verstecken (hide) und nach der Selektion wieder anzeihen (show)

Code:
Private Sub CommandButton1_Click()

UserForm1.Hide

' Auswahl festlegen -----------------------------------------------
    Dim Filter1(0)
    Filter1(0) = "Point"
' Selektion definieren und leeren ----------------------------------
    Dim UserSel As Object
    Set UserSel = CATIA.ActiveDocument.Selection
    UserSel.Clear
' Selection vornehmen lassen ---------------------------------------
    Dim intSelAbfrageStr As String
    Dim intPointObj As Object
     
    Me.ListBox1.AddItem ("Vor der Selektion")
   
    intSelAbfrageStr = UserSel.SelectElement2(Filter1, "Bezugspunkt oben waehlen.", False)
   
    If intSelAbfrageStr = "Normal" Then
        Set intPointObj = UserSel.Item(1).Value
    End If
     
    Me.ListBox1.AddItem (UserSel.Item(1).Value.Name)
   
    MsgBox "OK"
   
    UserForm1.Show
   
End Sub


Eigentlich gefiel es mir schon ganz gut, dass das Fenster während des Selektionsprozesses weiterhin angezeigt wurde. Ich hatte vor in das Fenster noch eine grafik einzubinden, welche dem Anwender einen hinweis darauf gitb WAS er genau anklicken soll.

Weiß jemand eine elegantere Lösung, wie dies umgesetzt werden kann ohne, dass das Fenster versteckt wird?

Gruß,
Bernod


EDIT: Huch, wir haben fast zeitgleich gepostet, so dass ich deine Antwort vorher nicht gesehen hatte. Du hast recht. Es lag tatsächlich daran! Ich habe mein userForm nun auf ShowModal = False eingestellt und es funktioniert wunderbar. Vielen Dank!! 

[Diese Nachricht wurde von Bernod am 20. Apr. 2010 editiert.]

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)2025 CAD.de | Impressum | Datenschutz