Hy @ all
Habe ein großes Problem. Ich mache eine Multiselection mit dem Befehl SelectElement3. Es werden lauter projizierte Punkte ausgewählt. Der Befehl steht in der Function Multiselect. Hier kann ich ohne Probleme auf die einzelnen Selectionen (über item) anwählen. Ich schreibe die Selection sowohl in eine globale Variable, als auch als Rückgabewert der function. Jedoch kann ich auserhalb der Funktion nicht mehr mittels item auf die einzelnen Elemente zugreifen -> WIESO???
Ich programmiere mit dem internen CATIA Visual Basic Editor. CATIA V5 R14
Hier ein Auszug aus dem Code:
Function multiselect()
Dim Referenzebene
Dim Was(0)
'Dim selektieren
Dim zaehler As Integer
Was(0) = "Reference"
Dim E
Dim UserSel As Object
Set UserSel = CATIA.ActiveDocument.Selection
UserSel.Clear
Prismen.Hide
E = UserSel.SelectElement3(Was, "Multiselection", True, CATMultiSelTriggWhenSelPerf, False)
If (E = "Normal") Then
Set multiselect = UserSel 'UserSel.Item(1).Value
MsgBox ("Multiselect geschrieben")
MsgBox (multiselect.Item(1).Value.Name)
Set AuswahlMultiselect = multiselect
MsgBox (AuswahlMultiselect.Item(1).Value.Name) Hier gehts noch
Else
abbruch = 1
Set multiselect = CATIA.ActiveDocument.Part
End If
If (UserSel.Count Mod 2 = 0) Then
'MsgBox (UserSel.Count & " = Gerade")
AnzahlElemente = UserSel.Count
Else
'MsgBox (UserSel.Count & " = Ungerade")
AnzahlElemente = UserSel.Count - 1
End If
zaehler = 1
'MsgBox (AnzahlElemente)
'If (abbruch <> 1 And AnzahlElemente <> 0) Then
' Do
' MsgBox (UserSel.Item(zaehler).Value.Name)
'MsgBox (AnzahlElemente & " - " & zaehler)
' zaehler = zaehler + 1
' Loop Until (zaehler = AnzahlElemente + 1)
'End If
'MsgBox ("alt= " & UserSel.Count & " neu= " & AnzahlElemente)
'MsgBox (selektieren.Name)
UserSel.EndSelectElement
UserSel.Clear
End Function
Private Sub multiselection_Click()
Dim ergebnis, erg
Set ergebnis = multiselect()
If (ergebnis.Name = CATIA.ActiveDocument.Part.Name) Then
'Achsenwinkel.Caption = "Bitte Achsenwinkel auswählen"
'freigabe7 = 0
MultiselectAktivieren = 0
Punkt1.Enabled = True
Punkt2.Enabled = True
freigabe2 = 0
freigabe3 = 0
MsgBox ("Der ****** is falsch")
Else
MultiselectAktivieren = 1
Punkt1.Enabled = False
Punkt2.Enabled = False
freigabe2 = 1
freigabe3 = 1
'Set AuswahlMultiselect = ergebnis
MsgBox (ergebnis.Item(1).Value.Name) Hier funktioniert es nicht mehr
'If (ergebnis.Unit.Name <> "Grad") Then
' Achsenwinkel.Caption = "Bitte Achsenwinkel auswählen"
' freigabe7 = 0
' MsgBox ("ACHTUNG: Der von Ihnen ausgewählte Parameter besitzt nicht die Einheit 'deg'!!!" & chr(13) & "Bitte wählen Sie erneut einen Parameter aus, der die Einheit 'deg' besitzt")
'Else
' Achsenwinkel.Caption = ergebnis.Name
' freigabe7 = 1
'End If
End If
'Set AuswahlAchsenwinkel = ergebnis
erg = freischalten()
Prismen.Show
End Sub
Vielleicht kann mir jemand von euch helfen!!!
MfG
Tonka
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP