Hallo!
Ich komme mit meinem Code einfach nicht weiter und hoffe, dass mir jemand helfen kann.
Zuerst kurz zu meinem Programm:
ich schreibe in Visual Studio die Funktionen in die CatiaLinkLibrary und rufe die Funktionen dann in Matlab auf.
Ich habe ein Produkt, das aus 3 Parts zusammengebaut ist. Das Part 1 hat einen Punkt, der Schnittstelle_Teil1 heißt. Ich möchte die Koordinaten des Punkts auslesen.
Wenn ich durch den Strukturbaum mit Item gehe und dabei immer die richtige Zahl im Item angebe, mit der ich zu dem Punkt komme, funktioniert mein Code. Das ist in dem auskommentierten Teil.
Nun will ich aber nach dem Punkt suchen, da ich davon ausgehe, dass ich weiß, wo der Punkt genau ist - also in welcher Skizze und so.
Ich habe schon versucht über GetItem("Schnittstelle_Teil1") an den Punkt zu kommen, aber hier kommt die Fehlermeldung:
"Beim Aufruf einer COM-Komponente wurde ein HRESULT E_FAIL-Fehler zurückgegeben."
Über die Funktion Selection.Search komme ich soweit, dass der Punkt gefunden wird, aber dann kann ich ihn nicht als point speichern.
Function getGreiferschnittstelleX(ByVal i As Integer)
Dim pos(2) As Object
Dim pointname As String
pointname = "Schnittstelle_Teil1"
Dim productDocument As ProductDocument
productDocument = CATIA.ActiveDocument
Dim product As Product
product = productDocument.Product
Dim children As Products
children = product.Products
Dim partdocument As MECMOD.PartDocument
partdocument = children.Item(i).ReferenceProduct.Parent
HIER DER TEIL MIT DEN KONKRETEN ITEM-WERTEN:
'Dim part As MECMOD.Part
'part = partdocument.Part
'Dim bodies As MECMOD.Bodies
'bodies = part.Bodies
'Dim sketch1 As MECMOD.Sketch
'sketch1 = bodies.Item(1).Sketches.Item(5)
'Dim point As MECMOD.Point2D
'point = sketch1.GeometricElements.Item(2)
'point.GetCoordinates(pos)
'MsgBox("getcoordinates klappt")
'MsgBox(pos(0)) 'x
'MsgBox(pos(1)) 'y
'MsgBox(pos(2)) 'z
Dim userselection As INFITF.Selection
userselection = partdocument.Selection
userselection.Search("Name=Schnittstelle_Teil1,all")
MsgBox(userselection.Name) 'ergibt CATIASelection0
Dim point2name As String
point2name = userselection.Item(1).Name 'ERROR: Beim Aufruf einer COM-Komponente wurde ein HRESULT E_FAIL-Fehler zurückgegeben.
MsgBox(point2name)
Dim point2 As MECMOD.Point2D
point2 = userselection.Item(1).Value
point2.GetCoordinates(pos)
MsgBox(pos(0)) 'x
MsgBox(pos(1)) 'y
MsgBox(pos(2)) 'z
End function
Wie kann ich point dem gefunden Punkt in userselection zuordnen?
Ich freue mich über eine Antwort!
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP