Solid Edge Geometry Type Library
GetParamAtPoint Method
Specifies the number of points to be evaluated.
Specifies the array of points that are close to the curve.
Specifies an array of parameters that are your initial approximations. Can be NULL if not known.
Specifies the array of maximum deviation that has been allowed from the true point. Can be NULL if not required. Array to be allocated by the caller to hold nPoints doubles.
Specifies the array of computed parameters. Array to be allocated by the caller to hold nPoints parameters.
Specifies the array of flags that indicate if there was any ambiguity about the computation. Can be NULL if not required. Possible values of the flag are: 0 (the parameter is unique), 1 (there are distinctly many solutions), and 2 (there are infinitely many solutions).
Description
Computes the parameter on the curve that corresponds to a given array of world space points in the coordinate system lying near the curve.
Syntax
Visual Basic
Public Sub GetParamAtPoint( _
   ByVal NumPoints As Long, _
   ByRef Points() As Double, _
   ByRef GuessParams() As Double, _
   ByRef MaxDeviations() As Double, _
   ByRef Params() As Double, _
   ByRef Flags() As Long _
) 
Parameters
NumPoints
Specifies the number of points to be evaluated.
Points
Specifies the array of points that are close to the curve.
GuessParams
Specifies an array of parameters that are your initial approximations. Can be NULL if not known.
MaxDeviations
Specifies the array of maximum deviation that has been allowed from the true point. Can be NULL if not required. Array to be allocated by the caller to hold nPoints doubles.
Params
Specifies the array of computed parameters. Array to be allocated by the caller to hold nPoints parameters.
Flags
Specifies the array of flags that indicate if there was any ambiguity about the computation. Can be NULL if not required. Possible values of the flag are: 0 (the parameter is unique), 1 (there are distinctly many solutions), and 2 (there are infinitely many solutions).
Remarks
It is possible that there is more than one possible parameter for a given point that satisfies this criterion (for example, if the center of the circle is input). This method will, however, return only one solution. A status indicator is output for each point evaluated to indicate any ambiguity. You should provide the input points on or very near the curve to prevent such ambiguity from arising. You can provide initial approximate parametric points to speed up some computations. If you cannot provide approximations, set the argument to NULL. If you choose to provide approximations, do so for all of the points.
Example
Private Sub Form_Load()
    Dim objApp As solidedgeframework.Application
    Dim objDoc As SolidEdgepart.PartDocument
    Dim objBody As solidedgegeometry.Body
    Dim objFace As solidedgegeometry.Face
    Dim dblPoints(5) As Double
    Dim dblGuessParams(3) As Double
    Dim dblMaxDev() As Double
    Dim dblParams() As Double
    Dim lngFlags() As Long
    Const TESTFILE = "T:\vbtests\testcases\HalfCyl.par"
    ' 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
    Call objDoc.Close
    ' opening the testfile
    Set objDoc = objApp.Documents.Open(TESTFILE)
    ' getting the body object of the model
    Set objBody = objDoc.Models(1).Body
    ' getting a particular face from the collection of faces on the body
    Set objFace = objBody.Faces(FaceType:=igQueryAll).Item(2)
    ' getting the parameters at a point on the Face
    dblPoints(0) = 0.05
    dblPoints(1) = 0
    dblPoints(2) = 0
    dblPoints(3) = 0
    dblPoints(4) = 0.05
    dblPoints(5) = 0.05
    dblGuessParams(0) = PI
    dblGuessParams(1) = 0.05
    dblGuessParams(2) = PI / 2
    dblGuessParams(3) = 0
    Call objFace.GetParamAtPoint(NumPoints:=2, Points:=dblPoints, GuessParams:=dblGuessParams, _
                                 MaxDeviations:=dblMaxDev, Params:=dblParams, flags:=lngFlags)
    ' USER DISPLAY
    ' Release objects
    Set objApp = Nothing
    Set objDoc = Nothing
    Set objBody = Nothing
    Set objFace = Nothing
End Sub
See Also

Face Object  | Face Members