Auch wenn dieser Beitrag schon etwas in die Jahre gekommen ist hätte ich noch eine Lösung die meiner meinung nach weniger aufwendig ist.
1. Selektiert das Object
2. Das Übergeortnete Elemtent markieren
3. Eine Suche Visibility=Shown in Current Selection (Der Übergeortnete HybridBody) -> Shown zeigt wirklich nur Sichtbare Elemente. Visible hingegen ob sie selbst "an" oder "aus" sind.
4. Schauen ob in Selektion dein Element ist!
Leider geht die Suche nicht wenn man direkt das Element anwählt. Deshalb der umweg über das Elternelement.
Nicht getestet aber von der Logik könnte es so aussehen:
Dim status As String
Dim o As Object
Dim i as integer
dim IsShow as Boolean
Dim osel ' As Selection
Set osel = CATIA.ActiveDocument.Selection
status = osel.SelectElement2(Filter, "Element auswaehlen, (ESC=Abbrechen)", False)
If status = "Cancel" Then
Exit sub
Else
Set o = osel.Item(1).Value
osel.Clear
End If
osel.Clear
osel.Add o.Parent.Parent 'Bei Einem HybridShape wäre dies nun der Überliegende HybridBody
oSel.Search "(Visibility=Shown - (CATKnowledgeSearch.InternalParameter)),sel"
if osel.count = 0 then msgbox "im NoShow"
For i = 1 to osel.count
IsShow = osel.item(i).value is o
if IsShow then
msgbox "im Show"
exit for
end if
next
if not IsShow then msgbox "im NoShow"
Vielleicht hilft dies ja dem ein oder anderen doch nochmal.
[Diese Nachricht wurde von gladly am 29. Sep. 2010 editiert.]
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP