Share

Highlight Feature Faces

Description

This sample highlights the faces of an extrusion, revolution, or hole feature. It differentiates the faces on the start cap, end cap, and side faces by highlighting them in different colors. The HighlightFeatureFaces sub highlights the feature faces. Since the highlight set objects are declared outside of this sub, the highlighting remains after the sub has finished executing. Use the ClearHighlight sub to clear the highlighting that does so by releasing the HighlightSet objects.

Code Samples

Private oStartHLSet As HighlightSet
Private oEndHLSet As HighlightSet
Private oSideHLSet As HighlightSet
    
Public Sub HighlightFeatureFaces()
    ' Get the first item in the select set. This assumes it is a feature.
    If ThisApplication.ActiveDocument.SelectSet.Count > 0 Then
        Dim oFeature As PartFeature
        Set oFeature = ThisApplication.ActiveDocument.SelectSet.Item(1)
    Else
        MsgBox "You must select a feature."
        Exit Sub
    End If

    ' Check to see that it's an extrusion, revolution or hole feature.
    If oFeature.Type  kExtrudeFeatureObject And _
       oFeature.Type  kRevolveFeatureObject And _
       oFeature.Type  kHoleFeatureObject Then
        MsgBox "You must select an extrusion, revolution, or hole."
        Exit Sub
    End If

    ' Create a new highlight set for the start face(s).
    Set oStartHLSet = ThisApplication.ActiveDocument.CreateHighlightSet

    ' Change the highlight color for the set to red.
    Dim oRed As Color
    Set oRed = ThisApplication.TransientObjects.CreateColor(255, 0, 0)

    ' Set the opacity
    oRed.Opacity = 0.8

    oStartHLSet.Color = oRed

    ' Add all start faces to the highlightset. Skip holes because
    ' they don't support the StartFaces property.
    If oFeature.Type  kHoleFeatureObject Then
        Dim oFace As Face
        For Each oFace In oFeature.StartFaces
            oStartHLSet.AddItem oFace
        Next
    End If

    ' Create a new highlight set for the end face(s).
    Set oEndHLSet = ThisApplication.ActiveDocument.CreateHighlightSet

    ' Change the highlight color for the set to green.
    Dim oGreen As Color
    Set oGreen = ThisApplication.TransientObjects.CreateColor(0, 255, 0)

    oEndHLSet.Color = oGreen

    ' Add all end faces to the highlightset.
    For Each oFace In oFeature.EndFaces
        oEndHLSet.AddItem oFace
    Next

    ' Create a new highlight set for the side face(s).
    Set oSideHLSet = ThisApplication.ActiveDocument.CreateHighlightSet

    ' Change the highlight color for the set to blue.
    Dim oBlue As Color
    Set oBlue = ThisApplication.TransientObjects.CreateColor(0, 0, 255)

    oSideHLSet.Color = oBlue

    ' Add all end faces to the highlightset.
    For Each oFace In oFeature.SideFaces
        oSideHLSet.AddItem oFace
    Next

    MsgBox "Start faces are displayed in red." & Chr(13) & _
            "End faces are displayed in green." & Chr(13) & _
            "Side faces are displayed in blue.", vbOKOnly + vbInformation
End Sub

Public Sub ClearHighlight()
    
    ' Release the highlight set objects to clear highlighting.
    ' Alternatively, HighlightSet.Delete or HighlightSet.Clear
    ' can also be used to clear the highlighting.
    
    Set oStartHLSet = Nothing
    Set oEndHLSet = Nothing
    Set oSideHLSet = Nothing
End Sub


Was this information helpful?