Damit kann man zumindest die Hauptkörper in verschiedenen Instances ansprechen, das mit dem kopieren ... mal sehen
HTH
Ronny
Sub CATMain()
Dim ProductDocument1 As ProductDocument
Set ProductDocument1 = CATIA.ActiveDocument
Dim Selection1 As Selection
Set Selection1 = ProductDocument1.Selection
Dim Prod As Product
Dim Par As Part
Dim Bod As Body
Dim Partname As String
Partname = InputBox("Wie heisst das Part von dem mehrere Instances existieren?", , "Part1")
Selection1.Search "(((CATProductSearch.Product + CATAsmSearch.Product) + CATPcsSearch.Product) & Name=" + Partname + "'.'*),all"
i = Selection1.Count
For k = 1 To i
Set Prod = Selection1.Item(k).Value
Selection1.Clear
Selection1.Add Prod
Selection1.Search "((((((((CATProductSearch.Part + CATStFreeStyleSearch.PartFeature) + CATAsmSearch.Part) + CATPrtSearch.PartFeature) + CATGmoSearch.PartFeature) + CATPcsSearch.Part) & Name=" + Partname + ") - ((CATProductSearch.Product + CATAsmSearch.Product) + CATPcsSearch.Product)) & (((((((CATProductSearch.Part + CATStFreeStyleSearch.PartFeature) + CATAsmSearch.Part) + CATPrtSearch.PartFeature) + CATGmoSearch.PartFeature) + CATPcsSearch.Part) & Name=part1) - ((CATProductSearch.Product + CATAsmSearch.Product) + CATPcsSearch.Product)" & ")),sel"
Set Par = Selection1.Item(1).Value
'Selection1.Clear
Selection1.Add Prod
Selection1.Search "(((CATStFreeStyleSearch.BodyFeature + CATPrtSearch.BodyFeature) + CATGmoSearch.BodyFeature) & Name=Hauptkörper),sel"
Set Bod = Selection1.Item(1).Value
MsgBox ("Aktuelle Selection:" + vbCrLf + Prod.Name + "/" + Par.Name + "/" + Bod.Name)
Selection1.Search "(((CATProductSearch.Product + CATAsmSearch.Product) + CATPcsSearch.Product) & Name=" + Partname + "'.'*),all"
'selection1 = selection1.Item(1)
Next
Selection1.Clear
End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP