| 
|  |  |  |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für CATIA & Co. |  |  |  |  |  | KISTERS 3DViewStation: Mit Modellbasiertem Design zum Modellbasierten Unternehmen , eine Pressemitteilung 
 |  
| Autor | Thema:  Auswahl per Mausklick (1899 mal gelesen) |  | AL-Fonse Mitglied
 Entwicklungsingenieur
 
  
 
      Beiträge: 37Registriert: 23.02.2010
 Win Vista<P>CatiaV5 R16 R19 |    erstellt am: 19. Apr. 2010 16:06  <-- editieren / zitieren -->    Unities abgeben:            
  Hallo Zusammen, ich möchte gern per Mausklick ein Geoset und eine Fläche auswählen.Wer könnte mir hierzu Hilfe bieten. Das einzige was ich weiß, ist dass man über Forms eine Auswahlfläche erzeugen kann, aber verstehen tue ich es nicht ganz und habe auch keine Ahnung woher ich den Programmcode bekomme für die Eingabe Elemente
 Besten dank schon mal.
 Grias  AL-Fonse Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |  | HoBLila Mitglied
 Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx
 
     
 
      Beiträge: 1118Registriert: 29.05.2008
 DELL PRECISION T3500Intel(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: 19. Apr. 2010 16:38  <-- editieren / zitieren -->    Unities abgeben:           Nur für AL-Fonse   
  Das Zauberwort heißt SelectElement2 welches du von der  Selection bekommst. Diese wiederum bekommst du vom ActiveDocument und dieses vom CATIA. Bemüh' mal die Suche oder ein Buch dazu, findes sich bestimtm schnell viele Beispiele zum SelectElement2 oder SelectedElement2, weiß grad' nicht 100%ig, wie's geschrieben wird. ------------------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 |  | DanielFr. Ehrenmitglied V.I.P. h.c.
 Manager
 
       
 
      Beiträge: 2506Registriert: 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: 19. Apr. 2010 16:49  <-- editieren / zitieren -->    Unities abgeben:           Nur für AL-Fonse   
  Hallo    , IMHO ist die Methode SelectElement2 nicht geeignet. Diese Methode kann NUR ein Objekt (also entweder ein Fläche oder ein geometrisches Set) verwalten. Die Methode SelectElement3 hingegen kann genau dies. Das ist die interaktive Multiselektionsschnittstelle    Hier mal ein Codebeispiel (am besten im Microsoft Visual Basic Editor mit dem Befehl "Step-into" (Symbolleiste Debugg) Schritt für Schritt ablaufen lassen)
 
 Code:
 Sub CATMain()
 
 '***Deklarationen
 Dim intWindowObj As Windows
 Dim intDocObj As Document
 Dim intSelObj As Object 'Selection
 Dim intSelFilterStr(1)
 Dim intSelStateStr As String
 Dim i As Integer
 Dim intTypeCheckerBool As Boolean
 
 
 '***Abfrage Dokumente
 Set intWindowObj = CATIA.Windows
 If intWindowObj.Count = 0 Then
 MsgBox "Es ist kein Dokument geladen!" + Chr(10) + _
 "Das Makro kann nicht ausgeführt werden und wird beendet!", vbCritical, "Keine Dokument geladen"
 Exit Sub
 End If
 Set intDocObj = CATIA.ActiveDocument
 If TypeName(intDocObj) <> "PartDocument" Then
 MsgBox "Das aktive Dokument ist kein PartDocument!" + Chr(10) + "Das Makro kann nicht ausgeführt werden!", _
 vbCritical + vbOKOnly, "Falscher Dateityp"
 Exit Sub
 End If
 
 '***Selektion instanzieren
 Set intSelObj = intDocObj.Selection
 intSelObj.Clear
 intSelFilterStr(0) = "Face"
 intSelFilterStr(1) = "HybridBody"
     '***Selektion ausführen
 intSelStateStr = intSelObj.SelectElement3(intSelFilterStr, "Bitte ein geometrisches Set und eine Fläche selektieren / ESC zum Abbrechen", False, CATMultiSelTriggWhenUserValidatesSelection, False)
 '***Abfrage ob der Anwender Objekte selektiert hat
 If intSelStateStr = "Normal" Then
 '***Abfrage ob genau 2 Objekte selektiert wurden
 If intSelObj.Count = 2 Then
 '***Datentypen der Objekte validieren (1 geo Set und eine Fläche)
 If TypeName(intSelObj.Item(1).Value) = "HybridBody" And InStr(1, TypeName(intSelObj.Item(2).Value), "Face") > 0 Or InStr(1, TypeName(intSelObj.Item(1).Value), "Face") > 0 And TypeName(intSelObj.Item(2).Value) = "HybridBody" Then
 intTypeCheckerBool = True
 End If
 Else
 MsgBox "Ungültige Auswahl!" + vbNewLine + "Bitte selektieren sie nur ein geometrisches Set und eine Fläche!", vbCritical, "Ungültige Auswahl"
 Exit Sub
 End If
 Else
 MsgBox "Sie haben die Auswahl abgebrochen!" + vbNewLine + "Das Makro wird beendet", vbExclamation, "Abbruch durch Awender"
 Exit Sub
 End If
 
 '***Selektion validieren
 If intTypeCheckerBool = True Then
 MsgBox "Sie haben folgende Objket selektiert:" + vbNewLine + vbNewLine + _
 "1: " & intSelObj.Item(1).Value.Name + vbNewLine + _
 "2: " & intSelObj.Item(2).Value.Name, vbInformation, "Makro beendet"
 intSelObj.Clear
 Else
 MsgBox "Die Auswahl war ungültig!" + vbNewLine + "Bitte selektieren Sie eine Fläche und ein geometrisches Set!", vbExclamation, "Ungültige Auswahl"
 intSelObj.Clear
 End If
 
 End Sub
 
 
 ------------------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 |  | HoBLila Mitglied
 Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx
 
     
 
      Beiträge: 1118Registriert: 29.05.2008
 DELL PRECISION T3500Intel(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 09:58  <-- editieren / zitieren -->    Unities abgeben:           Nur für AL-Fonse   
  Hallo Daniel, da muss ich Dir leider wiedersprechen.   Ich will dem User nämlich immer so wenig Clicks wie möglich zumuten.
 Also würde ich SelectElement2 für HybridBody und Face, oder so freischalten.Dann schauen was der User angeklickt hat und eben für das jeweils andere die Selection noch einmal aufrufen.
 Aber wie man sieht, es ist Geschmackssache und es führen viele Wege nach Rom. ------------------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 |  | DanielFr. Ehrenmitglied V.I.P. h.c.
 Manager
 
       
 
      Beiträge: 2506Registriert: 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: 20. Apr. 2010 10:01  <-- editieren / zitieren -->    Unities abgeben:           Nur für AL-Fonse   |  | ThomasJay Mitglied
 Dipl-Ing
 
   
 
      Beiträge: 159Registriert: 19.04.2011
 CATIA V5 R19 |    erstellt am: 03. Mai. 2011 10:18  <-- editieren / zitieren -->    Unities abgeben:           Nur für AL-Fonse   
  Hallo, ich verwende in einem Makro ebenfalls die SelectElement3 Funktion mit dem Modus CATMultiSelTriggWhenUserValidatesSelection.  Wenn ich das Makro starte und die Strg-Taste gedrückt halte kann ich nacheinander meine Elemente selektieren und wenn ich dann auf finish klicke funktioniert auch alles. Was aber nicht funktioniert ist, dass ich Elemente aus dem Strukturbaum selektiere, genauso wie es nich möglich ist eines der möglichen Auswahlfenster zu benutzen, also einfach ein Rechteck über alle Elemente ziehen um sie auszuwählen.  Geht das nicht anders bei dieser Funktion, oder is bei mir eine Einstellung falsch? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |  | Anzeige.:
 Anzeige: (Infos zum Werbeplatz >>)
  |