Solid Edge Part Type Library
FacesByRay Property
Description
Returns a collection of faces that are intersected by a specified vector.
Property type
Read-only property
Syntax
Visual Basic
Public Property FacesByRay( _
   ByVal Xorigin As Double, _
   ByVal Yorigin As Double, _
   ByVal Zorigin As Double, _
   ByVal Xdir As Double, _
   ByVal Ydir As Double, _
   ByVal Zdir As Double _
) As Object
Parameters
Xorigin
Yorigin
Zorigin
Xdir
Ydir
Zdir
Remarks
The result of the FacesByRay property is a topology collection. This topology collection is a temporary collection and is overwritten the next time the Edges, Faces, or FacesByRay property is used.
Example
Private Sub Form_Load()
    Dim objApp As SolidEdgeFramework.Application
    Dim objDoc As SolidEdgePart.PartDocument
    Dim objModel As SolidEdgePart.Model
    Dim objProfArr(1 To 2) As SolidEdgePart.Profile
    Dim objLines As SolidEdgeFrameworkSupport.Lines2d
    Dim objRelns1 As SolidEdgeFrameworkSupport.Relations2d
    Dim objThnWl1 As SolidEdgePart.Thinwall
    Dim objThnWlFacs As Object
    Dim lngStatus As Long
    ' Report errors
    Const PI = 3.14159265358979
    ' Create/get the application with specific settings
    On Error Resume Next
    Set objApp = GetObject(, "SolidEdge.Application")
    If Err Then
        Err.Clear
        Set objApp = CreateObject("SolidEdge.Application")
        Set objDoc = objApp.Documents.Add("SolidEdge.PartDocument")
        objApp.Visible = True
    Else
        Set objDoc = objApp.ActiveDocument
    End If
    ' Draw the Profile
    Set objProfArr(1) = objDoc.ProfileSets.Add.Profiles.Add(pRefPlaneDisp:=objDoc.RefPlanes(1))
    Set objLines = objProfArr(1).Lines2d
    Call objLines.AddBy2Points(x1:=0, y1:=0, x2:=0.04, y2:=0)
    Call objLines.AddBy2Points(x1:=0.04, y1:=0, x2:=0.04, y2:=0.04)
    Call objLines.AddBy2Points(x1:=0.04, y1:=0.04, x2:=0, y2:=0.04)
    Call objLines.AddBy2Points(x1:=0, y1:=0.04, x2:=0, y2:=0)
    ' Relate the Lines to make the Profile closed
    Set objRelns1 = objProfArr(1).Relations2d
    Call objRelns1.AddKeypoint(Object1:=objLines(1), Index1:=igLineEnd, Object2:=objLines(2), Index2:=igLineStart)
    Call objRelns1.AddKeypoint(Object1:=objLines(2), Index1:=igLineEnd, Object2:=objLines(3), Index2:=igLineStart)
    Call objRelns1.AddKeypoint(Object1:=objLines(3), Index1:=igLineEnd, Object2:=objLines(4), Index2:=igLineStart)
    Call objRelns1.AddKeypoint(Object1:=objLines(4), Index1:=igLineEnd, Object2:=objLines(1), Index2:=igLineStart)
    ' Check for the Profile Validity
    lngStatus = objProfArr(1).End(ValidationCriteria:=igProfileClosed)
    If lngStatus <> 0 Then
        MsgBox ("Profile not closed")
    End If
    ' Create the Base Protrusion Object
    Set objModel = objDoc.Models.AddFiniteExtrudedProtrusion(NumberOfProfiles:=1, _
                                                             ProfileArray:=objProfArr, ProfilePlaneSide:=igRight, _
                                                             ExtrusionDistance:=0.04)
    objProfArr(1).Visible = False
    ' Check the status of Base Feature
    If objModel.ExtrudedProtrusions(1).Status <> igFeatureOK Then
        MsgBox ("Error in the Creation of Base Protrusion Feature object")
    End If
    ' Create a ThinWall object
    Set objThnWl1 = objModel.Thinwalls.Add(ThicknessSide:=igOutside, CommonThickness:=0.01)
    ' Check the status of Base Feature
    If objThnWl1.Status <> igFeatureOK Then
        MsgBox ("Error in the Creation of ThinWall object")
    End If
    ' Get the Faces of ThinWall object using FacesByRay property
    Set objThnWlFacs = objThnWl1.FacesByRay(xOrigin:=0.02, YOrigin:=0, ZOrigin:=0.02, Xdir:=0, Ydir:=1, Zdir:=0)
    ' USER DISPLAY
    ' Release objects
    Set objApp = Nothing
    Set objDoc = Nothing
    Set objProfArr(1) = Nothing
    Set objProfArr(2) = Nothing
    Set objModel = Nothing
    Set objLines = Nothing
    Set objRelns1 = Nothing
    Set objThnWl1 = Nothing
    Set objThnWlFacs = Nothing
End Sub
See Also

Thinwall Object  | Thinwall Members