Das bisher jegliche Resonanz ausbleibt, möchte ich nochmal im Detail auf mein Anliegen eingehen, zumal ich glaube, dass mein Problem nicht besonders exotisch ist...
Ich steuere aus VB.net heraus ein parametrisches CATIA Modell. Unter dem eigentlichen Rootproduct befinden sich munter gemischt weitere Products und Parts, die auch noch untereinander verschachtelt sein können:
nach dem Muster:
Root
-ProductX
-ProductY
-PartA
-PartB
-ProductZ
--PartC (PartC befindet sich "in" ProductZ)
Alle Products und Parts sind parametrisch aufgebaut und haben jeweils ein eigenes ParameterSet, welches dem Product bzw. Part hierarchisch untergeordnet ist.
In meiner VB-Anwendung hole ich mir eine laufende CATIA-Instanz (bzw. erstelle eine neue Instanz) mit:
Try
CATIA = GetObject(, "CATIA.Application")
Catch ex As Exception
Try
CATIA = CreateObject("CATIA.Application")
CATIA.Visible = True
Catch ex2 As Exception
MsgBox("CATIA konnte nicht gefunden werden")
End Try
End Try
Danach lade ich meine Datei mit:
CATIA.Documents.Open(Pfad)
Bis hier funktioniert auch alles problemlos.
Möchte ich nun die Parameter meiner Objekte ändern, kann ich das mittels
CATIA.Documents.Item("ProductX.CATProduct").Product.Parameters.Item("Testparameter").Value=xxx
bzw.
CATIA.Documents.Item("PartA.CATPart").Part.Parameters.Item("Testparameter").Value=xxx
ohne Probleme machen.
Ich scheitere jedoch daran ein Part anzusprechen, dass selber nochmal unterhalb eines Products liegt, also eine Konstruktion ala
CATIA.Documents.Item("ProductZ.CATProduct").Product.Item("PartC.CATPart").Part.Parameters.Item("Testparameter").Value=xxx
führt zum COMException Fehler.
Ich habe schon versucht den Makrorecorder zu benutzen, der spuckt aber ebenfalls nur Code aus, der nichtmal innerhalb Catia-VBA funktioniert.
Ich könnte jetzt natürlich meine Parameter alle in der oberste Hierarchie-Ebene zu verschieben, da es aber sehr viele Parameter sind, ginge dadurch eine Menge Übersicht verloren.
Es muss doch einen Weg geben, an die untergeordneten Bauteile heranzukommen...!
------------------
lg Christian
[Diese Nachricht wurde von cl10b am 02. Aug. 2013 editiert.]
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP