# ProfileExtractEdgePoint3D

The ProfileExtractEdgePoint3D function allows you to extract edge points from a profile where a user-defined reference line and the profile intersect with each other.

The ProfileExtractEdgePoint3D function requires an existing Profile3D structure as input. You can use the function to extract rising edge points, falling edge points, or both. The function extracts all edge points of the input profile that fit the defined criteria as individual Point3D structures.

3D Point Cloud with ProfileExtractEdgePoint3D | Profile View

The ProfileExtractEdgePoint3D function also allows you to use an external ProfileFixture3D input, which ensures that the function extracts the same profile feature for each acquisition.The ProfileExtractEdgePoint3D function can use the profile fixture to align the intersecting line in the profile, and produce consistent results regardless of positioning inconsistencies in the acquisition.

The ProfileExtractEdgePoint3D function produces a Point3D structure for each extracted corner point, that you can use as input for other functions.

## ProfileExtractEdgePoint3D Inputs

The ProfileExtractEdgePoint3D function has the following syntax:

ProfileExtractEdgePoint3D(Profile3D, ProfileFixture3D, ExternalProfileFixture3D, ProfileLine, ExternalProfileLine, EdgeType, SortKey, SortOrder, Show)

See the table for a description of the available parameters.

Parameter | Description
External Profile | Specifies the Profile3D structure to use.
Profile Fixture | Specifies the coordinates defining the profile fixture. It is offset from the profile origin in the following format with the following arguments: {Xp, Zp, Angle}
X | Offset on the X-axis from the profile origin.
Z | Offset on the Z-axis from the profile origin.
Angle | Specifies the in-plane rotation in degrees around the Y-axis of the profile origin. The value range is 0 to 180.
Note: This parameter is only available if you set External Profile Fixture to 0.
External Profile Fixture | Specifies a reference to a ProfileFixture3D structure defined in another cell. The function uses the ProfileFixture3D cell as the profile fixture of the function. Set to 0 (OFF) to use the internal profile fixture of the function instead.
Profile Line | Specifies the offset of the two end points for the intersecting reference line of the function. The profile line is offset from the profile origin or the external fixture in the following format with the following arguments: {Xp0, Zp0, Xp1, Zp1}
Xp0 | The X-axis coordinate value for the first end point of the profile line.
Zp0 | The Z-axis coordinate value for the first end point of the profile line.
Xp1 | The X-axis coordinate value for the second end point of the profile line.
Zp1 | The Z-axis coordinate value for the second end point of the profile line.
Note: This parameter is only available if you set External Line to 0.
External Line | Specifies a reference to a Line3D structure defined in another cell. The function uses the referenced cell as the profile line of the function. Set to 0 (OFF) to use the internal line of the function instead. Note: The External Line parameter is independent from the External Fixture setting.
Edge Type | Specifies type of edge points to be extracted: Rising (0) - the Z coordinate value of the profile before the point is lower than the Z coordinate value of the profile after the point. Falling (1) - the Z coordinate value of the profile before the point is higher than the Z coordinate value of the profile after the point. Any (2) - the function recognizes both rising and falling edge points.
Sort Key | Specifies the way that the function indexes the extracted edge points and sorts the output table: None (0) Point Xp (2) - sorts the edge points by coordinate value on the Xp-axis. Point Zp (3) - sorts the edge points by coordinate value on the Zp axis.
Sort Order | Specifies the order in which the function indexes the extracted edge points and sorts the output table: Descending (0) Ascending (1)
Show | Selects the type of graphics to overlay on the image.
0 = hide all (default) | All graphics are hidden, except when the cell containing the function is highlighted in the spreadsheet.
1 = result graphics only | The result graphics of the function are displayed at all times.
2 = input and result graphics | The region of interest, the input data and the results are displayed at all times.

## ProfileExtractEdgePoint3D Outputs

Returns | A ProfileEdgePoints3D data structure, or #ERR if any of the input parameters are invalid.
Results | When initially inserted into a cell, the following functions are automatically inserted into the spreadsheet to create a result table:
| Num Found | Index | Point | Edge Type
❒ProfileEdgePoints3D | GetNFound(ProfileEdgePoints3D) | 0 | GetPoint(ProfileEdgePoints3D,0) | GetEdgeType(ProfileEdgePoints3D,0)
|  | 1 | GetPoint(ProfileEdgePoints3D,1) | GetEdgeType(ProfileEdgePoints3D,1)
|  | ... | ... | ...
|  | N-1 | GetPoint(ProfileEdgePoints3D,N-1) | GetEdgeType(ProfileEdgePoints3D,N-1)

## ProfileExtractEdgePoint3D Vision Data Access functions

The following ProfileEdgePoints3D Vision Data Access functions are automatically inserted into the spreadsheet to create the result table:

Function | Description
GetNFound(ProfileCorners3D) | Returns the number of edge points that the edge point extraction function found in the profile.
GetPoint(ProfileEdgePoints3D, index) | Returns a Point3D structure for the edge point with the specified index in the egde point extraction function.
GetEdgeType(ProfileEdgePoints3D, index) | Returns the edge type for the edge point with the specified index in the edge point extraction function.