Hey!
Ich arbeite gerade an meiner Bachelorarbeit und muss die Namen der Bauteile eines Produkts in Catia auslesen. Ich habe dafür eine Funktion in Visual Studio geschrieben, auf dich ich über die CatiaLinkLibrary in Matlab zugreifen will.
Zweck meiner Funktion ist folgender: Ich habe in Catia ein Produkt aus 3 Parts erstellt. Nun will ich die Namen dieser Parts auslesen, wenn das Produkt geöffnet ist.
So sieht der Code bisher aus:
Function getPartname() As Object
' Datentyp Object oder String??
Dim PartnameArray() As String
Dim productDocument As ProductDocument
productDocument = CATIA.ActiveDocument
Dim product As Product
product = productDocument.Product
Dim children As Products
children = product.Products
Dim NumberofParts As Integer
NumberofParts = children.Count
MsgBox(NumberofParts)
Dim partDocument As MECMOD.PartDocument
partDocument = children.Parent
If TypeName(partDocument) = "PartDocument" Then
MsgBox(partDocument.Name)
End If
Dim RefProduct As Product
Dim iPartname As Integer
iPartname = 0
For Each product In children
If product.children.Count > 0 Then
getPartname()
Else
RefProduct = product.ReferenceProduct
If TypeName(RefProduct.Parent) = "PartDocument" Then
PartnameArray(iPartname) = RefProduct.Parent.Name
MsgBox(RefProduct.Parent.Name)
iPartname = iPartname + 1
End If
End If
Next
MsgBox(PartnameArray(0))
MsgBox(PartnameArray(1))
MsgBox(PartnameArray(2))
Return PartnameArray
End Function
Die erste Fehlermeldung lautet: Error using CatiaLink/getPartname (line 993)
Message: Das COM-Objekt des Typs "System.__ComObject" kann nicht in den Schnittstellentyp "MECMOD.PartDocument" umgewandelt werden. Dieser Vorgang
konnte nicht durchgeführt werden, da der QueryInterface-Aufruf an die COM-Komponente für die Schnittstelle mit der IID
"{818C8B33-806B-0000-0280-030D3B000000}" aufgrund des folgenden Fehlers nicht durchgeführt werden konnte: Schnittstelle nicht unterstützt
(Ausnahme von HRESULT: 0x80004002 (E_NOINTERFACE)).
Source: CatiaLinkLibrary
Welchen Datentyp brauche ich in der Zeile "Dim partDocument As MECMOD.PartDocument"?
Seht ihr sonst noch Fehler?
Ich danke euch jetzt schon für eure Hilfe, denn ich kenne mich mit Visual Studio noch nicht so gut aus
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP