Hallo,
ich arbeite mit VBA in CATIA V5.19. Ich bin in einem Produktdokument. Das Produkt besteht aus mehreren Parts, diese wiederum bestehen aus mehreren Bodies usw. Ich würde jetzt gerne einen ganz bestimmten Body von einem ganz bestimmten Part ins No-Show stellen. Dies funktioniert nicht richtig.
Über folgenden Code komme ich an den Part und den Body ran:
-----------------------------------------------------------
Dim selection
Dim document
Dim thisProduct As Product
Set document = CATIA.ActiveDocument
Set selection = CATIA.ActiveDocument.selection
Set thisProduct = document.Product
Dim pressureRollerPart As part
Dim pressureRoller As body
Dim partIndex As Integer
For partIndex = 1 To thisProduct.Products.Count
Dim thisPartDocument As partDocument
Set thisPartDocument = _
thisProduct.Products.item(partIndex).ReferenceProduct.parent
Dim thisPart As part
Set thisPart = thisPartDocument.part
If (thisPart.name = "Partname") Then
Set pressureRollerPart = thisPart
Set pressureRoller = thisPart.Bodies.item( "Bodyname")
End If
Next
-----------------------------------------------------------
Der Code
-----------------------------------------------------------
selection.Clear
selection.add pressureRollerPart
selection.VisProperties.SetShow catVisPropertyNoShowAttr
-----------------------------------------------------------
führt aber dazu, daß nicht nur der gewünschte Body in dem Part versteckt wird, sondern der komplette Part.
Ist ja auch kein Wunder, habe ich mir gedacht, das ist ja auch die Produktselektion. Also probieren ich folgendes:
-----------------------------------------------------------
Dim pressureRollerSelection As selection
Set pressureRollerSelection = pressureRollerPart.parent.selection
pressureRollerSelection.Clear
pressureRollerSelection.add pressureRoller
pressureRollerSelection.VisProperties.SetShow catVisPropertyNoShowAttr
-----------------------------------------------------------
Das klappt - aber NUR, wenn der Benutzer vorher durch einen Doppelklick auf den gewünschten Part diesen aktiviert hat. Dann wird korrekt der Body ausgeblendet. Wenn dagegen ein anderer Part im Produkt aktiv (blau unterlegt) ist, bewirkt die Selektion und das Ausblenden gar nichts.
Gibt es dafür einen Trick? Die Funktion sollte zuverlässig den Unterbody ausblenden, egal worauf der Benutzer zuletzt doppelt geklickt hat.
Für jeden Hinweis wäre ich enorm dankbar!
Ciao,
Benjamin Bihler
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP