Hallo,
da noch keiner geantwortet hat, habe ich mich dem Problem inzwischen selbst etwas genähert und mich an der Methode CreateReferenceFromName versucht.
Ein etwas einfacheres Beispiel habe ich fast am laufen.
Dort geht es darum, in ein beliebiges Unterprodukt ein weiteres Produkt einzufügen, das wiederum ein Part enthält. Dieses Part möchte ich gerne direkt in dem neuen Produkt fixieren.
Weiter unten der Code dazu, in dem die letzte Zeile
Set Bedi = Beding.AddMonoEltCst (catCstTypeReference, R1)
nicht funzt.
Da es funktioniert, wenn ich auf die Zwischenstufe verzichte und das Part direkt in einem vorhandenen Produkt einfügen und fixen lasse, stehe ich vor einem Rätsel.
Wer kann mir helfen??
Sub CATMain()
Dim Docs As Documents
Dim NaextPN As String 'Die neue Partnumber
Dim KnotenPP As Products 'Alle Unterknoten
Dim NeuesPart As Product 'Das neue Part
Dim Des As String 'Description, die vergeben werden kann
Dim UserSel As Selection 'Falls nicht schon ein Produkt selektiert war, hier wird eingefügt
Dim Box As Long 'MsgBox die Vaterelement zeigt, mit der Möglichkeit abzubrechen ->2
Box = 2
Dim Knoten As Product '-----Produkt in das eingefügt werden soll
Set Knoten = CATIA.ActiveDocument.Product
Dim Beding As Constraints
Set Beding = Knoten.Connections("CATIAConstraints")
Set UserSel = Catia.ActiveDocument.Selection
UserSel.Clear
Knoten.ApplyWorkMode DESIGN_MODE '-----In work design!
'-----Selektion des Produkts, in das eingefügt werden soll
Dim E As CATBSTR
Dim Filter (0)
Filter (0) = "AnyObject"
Dim SelDokument As Document
Dim DokumentInst
E = UserSel.SelectElement2(Filter, "Select a component to insert the new product", false)
Set DokumentInst = UserSel.Item(1).Value
Set SelDokument = DokumentInst.ReferenceProduct.Parent
'-----Ende der Selektion
Set Knoten = SelDokument.Product
Set KnotenPP = Knoten.Products
NextPN = Inputbox ("Enter new product number!", "New Product Number")
Set NeuesPrd = KnotenPP.AddNewComponent("Product", NextPN) '-----Hier wird Produkt eingefügt
'------ Hier wird das zu fixierende Sub-Part erzeugt
Set KnotenPP = NeuesPrd.Products
NextPN = Inputbox ("Enter new part number!", "New Part Number")
Set NeuesPart = KnotenPP.AddNewComponent("Part", NextPN) '-----Einfügen mit neuer Nummer
'----- Hier wird das Part gefixt allerdings haut die letzte Zeile nicht hin...
Set Docs = CATIA.Documents
Dim R1 as Reference
Set Ebene1 = Docs.Item(NextPN & ".CATPart").Part.OriginElements.PlaneXY
S = NeuesPrd.PartNumber & "/" & NeuesPart.Name & "/!" & Ebene1.Name
Set R1 = NeuesPrd.CreateReferenceFromName (S)
Set Bedi = Beding.AddMonoEltCst (catCstTypeReference, R1)
End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP