Hallo Leute.
Ich versuche zurzeit eine Makro zu schreiben, das in einem geladenen CATProduct manche CATParts deaktiviert.
Die entsprechenden CATParts erkennt man an einem Boolean Parameter, das Ich "Intrusive" genannt habe. Wenn sein Wert auf True steht, will Ich es ausschalten.
Ich habe zuerst das ganze CATProduct nach Parameter gescannt, (objSel.Search"(Name=Intrusive & Knowledgeware.Parameter);all")
Dann wollte Ich aufs dazugehoerenden Produkt lesen und es desaktivieren.
Leider krieg' Ich nur das Product Part Number, brauche aber den Component Instance Name, um dass zu tun.
Sub CATMain()
Dim productDocument1 As ProductDocument
Set productDocument1 = CATIA.ActiveDocument
Dim product1 As Product
Set product1 = productDocument1.Product
Dim products1 As Products
Set products1 = product1.Products
Set objSel = productDocument1.Selection
objSel.Clear
objSel.Search"(Name=Intrusive & Knowledgeware.Parameter);all"
If objSel.count > 0 Then
For i = 1 To objSel.Count
Set objPart = objSel.Item(i).Value
Set objInst = objPart.Parent.Parent
msgbox objInst.Name <- Product Part Number
Set product2 = products1.Item(objInst) <- Diese Methode geht nicht ! Schreibe Ich stattdessen ...Item("Part1.5") also der Compoment Instance Name, klappt es.
Set ProdParams = product2.Parameters.SubList(product2, False)
Set ActivityParam = ProdParams.Item("Component Activation State")
ActivityParam.Value = False
Next 'i
End If
End Sub
Weiss einer von Euch, mit welcher Funktion Ich an den Compoent Instance Name komme ?
Dieses Programm muss auf einem multi-level catproduct laufen.
Vielen Dank fuer die Hilfe.
Salut.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP