Hallo,
so einfach gehts dann doch nicht.
Ein ListBox (also das List.Item) kann nur Strings enthalten, keine Objekte. Und wenn du die Strings für das Catia.Selection.Add() verwendest, hilft das gar nichts. Um Objekte handeln zu können, würde das List.Item einen .Tag benötigen.
Den hat es aber erst in VB.net, vorher nicht.
Bis dahin (in VB6 oder so) musst du die Objekte separt zur ListBox in einer Collection verwalten.
D.h. wenn du den Namen (=String) einer Instanz (also das .Product) eines Catia-Modells einer Listbox zufügst, fügst du das Objekt einer Collection zu, wobei der Key des Items der Collection die Verbindung zur Listbox ist.
Also z.B.:
Set oNode1 = CATIA.ActiveDocument.Product.Products.Item(1) '--- das ist der erste Knoten eines Produkes
'--- dein ListBox, als Bsp. List1
List1.AddItem oNode1.Name '--- der Instanz-Name
Wie man ListBoxen verwaltest scheinst du zu wissen. Die Collection:
Dim cItems As Collection
Set cItems = New Collection
'--- oNode ist das Object, oNode1.Name der Key
cItems.Add oNode, oNode1.Name
Wenn nun jemand die Listbox anklickt (oder wie du es auch sonst immer umsetzten möchtest) bekommst du ein Click-Ereignis:
Private Sub List1Click()
iIndex = List1.ListIndex
sSelectedItem = List1.List(Index)
End Sub
Über den String sSelectedItem kann auf das entsprechende Object in der Collection zugegriffen werden:
Set oItem = cItems.Item(sSelectedItem)
und das dann in die CATIA Selection zufügen
oSelection.Add(oItem)
Achtung: Der Key muss unikal sein, d.h. er darf nur einmal vorkommen. D.h. bei Strukturen, in welchen mehrere Intancen mit dem selben Index auftauchen musst du etwas anderes als den Instanznamen verwende, z.B,. den "Pfad" vom Root nach unten
Root
Product1.1
Part1.1
Part1.2
Product2.1
Part1.1 <--- Zuordnung nicht rein über den .Name möglich, weil oben schon einmal, also
Part1.2 besser Root/Product2.1/Part1.1
Hoffe das hilft dir
Gruss TomTom
------------------
tomtom1972
[Diese Nachricht wurde von tomtom1972 am 01. Sep. 2008 editiert.]
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP