Hallo Smerg,
grundsätzlich geht das schon, was du vor hast.
Nur ist es eben so, das die Eigenschaft der Sichtbarkeit keine Eigenschaft des Dokumentes ist, sondern der Instanz, d.h. also des .Product eines Dokuments.
Ob das nun wiederum zum aktiven Dokument gehört oder nicht spielt dabei keine Rolle, auch wenn die Selektion selbst immer dem CATIA.ActiveDocument zugeordnet ist.
Hast du z.B. zwei Strukturen geöffnet, sagen wir ein Root1.CATProduct und ein Root2.CATProduct, wobei Root1 das CATIA.ActiveDocument ist, so kannst du über die CATIA.Documents das Root2 aufrufen und sowohl
die Sichtbarkeit der "Instanz" (also des .Product) des Roots selbst auslesen als auch die Sichtbarkeit aller in Root2 verbauten Instanzen.
Bsp. fürs Root2, welches nicht das CATIA.ActiveDocument ist:
Set oSel = Catia.ActiveDocument.Selection
Set oVis = oSel.VisProperties
Set oRoot2 = Catia.Documents.Item("Root2.CATProduct")
oSel.Add (oRoot2.Product)
oVis.GetShow showstate
Bsp. für den ersten Knoten im Root(2, welche nicht das CATIA.ActiveDocument ist)
Set oSel = Catia.ActiveDocument.Selection
Set oVis = oSel.VisProperties
Set oRoot2 = Catia.Documents.Item("Root2.CATProduct")
Set oNode1 = oRoot2.Products.Products.Item(1)
oSel.Add (oNode1)
oVis.GetShow showstate
Folgendes solltest du jedoch erst einmal bedenken:
Wenn du z.B. ein Part in einem Product verbaust und in diesem Product das Part (bzw. richtiger gesagt die Instanz des Parts) ins NoShow legst und dann das Part in einem eigenen Fenster öffnest, so befindet sich das Part in dem eigenen Fenster wieder im Show, da wie schon weiter oben gesagt die Property Sichtbarkeit zur Instanz gehört und eben nicht zum Dokument. Du wirst also für alle Modelle die du über die CATIA.Documents aufrufst und ausliest die Info bekommen, das sie sichtbar (also im Show) sind, sofern nicht irgendjemand die "zum Dokument selbst gehörende Instanz" ins NoShow gelegt hat (ich weiß nicht, wie ich das besser formulieren soll: gemeint ist damit z.B. der im Bild selektierte Knoten unterhalb des Instanz-Knotens von Part1.1).
Und wenn das jemand tun will muss er alle Modelle in einem eigenen Fenster öffnen, da sich dieser Knoten sonst nicht in NoShow legen lässt (da es sich eben um die "zum Dokument selbst gehörende Instanz" handelt, die interaktiv nur zugänglich ist, wenn das Dokument das CATIA.ActiveDokument ist, oder eben per Script über die CATIA.Documents oder das ReferenceProduct.Parent.Product in einer Struktur)
Das was du vor hast erscheint mir also ein wenig sinnlos, da wahrscheinlich alles sichtbar sein wird (auch wenn es sich innerhalb einer Struktur irgendwo im NoShow befindet).
Gruß TomTom
------------------
tomtom1972
[Diese Nachricht wurde von tomtom1972 am 08. Apr. 2009 editiert.]
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP