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.
Pecifies 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
Pecifies 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 objEdge As SolidEdgeGeometry.Edge
    Dim dblPoints(1 To 6) As Double
    Dim dblGuessPar(1 To 2) As Double
    Dim dblMaxDev() As Double
    Dim dblParams() As Double
    Dim lngFlag() 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
    ' creating the base feature
    If CreateModel(objDoc) <> "" Then
        MsgBox "Error creating the model"
        Exit Sub
    End If
    ' getting the body object of the model
    Set objBody = objDoc.Models(1).Body
    'getting an edge form the collection of edges of the body object
    Set objEdge = objBody.Edges(EdgeType:=igQueryAll).Item(2)
    ' getting the parameters at a point on an edge
    dblPoints(1) = 0
    dblPoints(2) = 0.05
    dblPoints(3) = -0.05
    dblPoints(4) = 0
    dblPoints(5) = -0.05
    dblPoints(6) = -0.05
    dblGuessPar(1) = 1.5
    dblGuessPar(2) = 4.5
    Call objEdge.GetParamAtPoint(NumPoints:=2, Points:=dblPoints, GuessParams:=dblGuessPar, _
                                 MaxDeviations:=dblMaxDev, Params:=dblParams, Flags:=lngFlag)
    ' USER DISPLAY
    ' Release objects
    Set objApp = Nothing
    Set objDoc = Nothing
    Set objBody = Nothing
    Set objEdge = Nothing
End Sub
See Also

Edge Object  | Edge Members

Send comments on this topic.