# ProfileExtractLine3D

The ProfileExtractLine3D function allows you to extract a straight line from a profile based on the profile points located inside the defined region.

The ProfileExtractLine3D function requires an existing Profile3D structure as input.

3D Point Cloud with ProfileExtractLine3D | Profile View

The ProfileExtractLine3D function also allows you to use an external ProfileFixture3D input, which ensures that the function extracts the same profile feature for each acquisition. The ProfileExtractLine3D 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 ProfileExtractLine3D function produces a Line3D structure that you can use as input for other functions.

## ProfileExtractLine3D Inputs

The ProfileExtractLine3D function has the following syntax:

ProfileExtractLine3D(Profile3D, ProfileFixture3D, ExternalProfileFixture3D, Region3D, FitMode, 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 Region | Specifies the dimensions, offset and angle for the Profile Region of the function. The Profile Region is offset from the profile origin or the external fixture in the following format with the following arguments: {SizeXp, SizeZp, Xp, Zp, Angle}
SizeXp | The size of the Profile Region along the profile X-axis.
SizeZp | The size of the Profile Region along the profile Z-axis.
Xp | Offset on the X-axis from the profile origin.
Zp | Offset on the Z-axis from the profile origin.
Angle | Specifies the in-plane rotation in degrees around the profile Z-axis. The value range is 0 to 180.
Fit Mode | Specifies the fit mode: Quick (0) - uses all profile points in the defined region to find the best fit in a single pass. High-Accuracy (1) - uses a two-pass fitting process to find the best fit, with the Outlier Distance Threshold acting as a filter for the second pass.
Outlier Distance Threshold | Specifies the threshold for filtering outliers when using High-Accuracy fit mode. Note: This parameter is only available if you set Fit Mode to High-Accuracy.
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.

## ProfileExtractLine3D Outputs

Returns | A Line3D data structure containing the extracted line, 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:
| RMS Error | Line | Midpoint | X0 | Y0 | Z0 | ...
❒ProfileLines3D | GetRMSError(ProfileLines3D) | ❒Line3D | ❒Point3D | GetX(Line3D,0) | GetY(Line3D,0) | GetZ(Line3D,0) | ...
... | X1 | Y1 | Z1
... | GetX(Line3D,1) | GetY(Line3D,1) | GetZ(Line3D,1)

## ProfileExtractLine3D Vision Data Access functions

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

Function | Description
GetRMSError(ProfileLines3D) | Returns the root-mean-square deviation value for the extracted line.
GetLine(ProfileLines3D) | Returns a Line3D structure for the extracted line.
GetMidpoint(Line3D) | Returns a Point3D structure for the midpoint of the extracted line.
GetX0(Line3D) | Returns the X coordinate in the 3D point cloud for the starting point of the extracted line.
GetY0(Line3D) | Returns the Y coordinate in the 3D point cloud for the starting point of the extracted line.
GetZ0(Line3D) | Returns the Z coordinate in the 3D point cloud for the starting point of the extracted line.
GetX1(Line3D) | Returns the X coordinate in the 3D point cloud for the ending point of the extracted line.
GetY1(Line3D) | Returns the Y coordinate in the 3D point cloud for the ending point of the extracted line.
GetZ1(Line3D) | Returns the Z coordinate in the 3D point cloud for the ending point of the extracted line.