Aheu Stefan,
wie die ID aufgebaut ist möchte ich nicht unbedingt beschreiben, aber starte einfach mal eine Makroaufnahme und klicke im Feature-Manager auf ein Teil, welches in einer Unterbaugruppe steckt. Dann Aufnahme stoppen und mal das Makro anschauen. Der erste Parameter von SelectByID ist der Name den Du generieren müsstest. Ich hab's mal geschafft das auf einer Unterbaugruppenebene zu machen. Sobald Du aber noch eine Ebene tiefer kommst wird's wirklich anstrengend.
Zur zweiten Methode:
Schau Dir in der API-Hilfe das Beispiel zu 'Traverse Component at Assembly Level' an. Dort wird nach und nach ein Zeiger auf jedes einzelne Teil in einem Assembly gesetzt. Diese Funktionalität kannst Du dir zu Nutze machen indem Du ebenfalls das Assembly durchgehst (geht verdammt schnell) und nach der Zeile
Set swChildComp = vChildComp(i)
Deine Abfrage für den Namen einfügst. Das sähe ungefähr so aus.
If InStr(0,swChildComp.Name2, "Name des Teils") <> 0 Then
swChildComp.Select2 True, 0
AssemblyDoc.ReplaceComponents...
ReplaceComponents ersetzt selektierte Komponenten, daher das Select2. Die Parameter zu Select2 sind in der Hilfe erklärt. Damit Du nicht versehentlich noch irgendwelche anderen Teile ausgewählt hast sollte vorher irgendwo noch ein
ModelDoc2.ClearSelection2(True) stehen
Ich hoffe jetzt ist es verständlicher.
Bis dann,
Kalle
[Diese Nachricht wurde von Kalle am 27. Sep. 2004 editiert.]
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP