# ExtractPolylineCrossSections3D

The ExtractPolylineCrossSections3D function allows you to extract multiple profiles from a 3D point cloud using a 2D polyline path created with the EditPolylinePath function. The function extracts profiles perpendicular to the 2D polyline at a defined distance interval.

Polyline input | Output cross sections

Inputs

Parameter | Description
--- | ---
PointCloud | Reference to a cell containing a point cloud. The default value is $A$0.
Fixture3D | Specifies the point cloud coordinate system in which the 3D fixture is defined. It is offset from the PointCloud origin in the following format with the following arguments: {X, Y, Z, Rotation, Tilt, TiltDirection}
X | Offset on the X-axis from the PointCloud origin.
Y | Offset on the Y-axis from the PointCloud origin.
Z | Offset on the Z-axis from the PointCloud origin.
Rotation | Specifies the in-plane rotation in degrees around the PointCloud Z-axis. The value range is -180 to 180. The tool normalizes external references with values outside the allowed range to the allowed range.
Tilt | Specifies the tilt angle in degrees from the PointCloud Z-axis after rotation. The value range is 0-180. External references with values outside the allowed range result in an error.
Tilt Direction | Specifies the direction of tilt in degrees from the rotated PointCloud X-axis of the tool, around the PointCloud Z-axis of the tool. The value range is -180 to 180. The tool normalizes external references with values outside the allowed range to the allowed range.
Note: The Fixture3D parameter is only available if you set External Fixture to 0.
External Fixture | Specifies a reference to a Fixture3D structure defined in another cell. The function uses the referenced cell as the fixture of the function. Set to 0 (OFF) to use the internal fixture of the function instead.
External 2D Polyline Path | Specifies a reference to an EditPolylinePath structure defined in another cell. The function uses the referenced cell to generate perpendicular profiles along the polyline.
Mode | Specifies the mode used by the function to create the profiles: Single Background Plane Multiple Background Planes Vertices Atop Surface
Step Distance | Specifies the distance between the perpendicular profiles generated by the function. The number of profiles generated depends on the number of steps that the tool can complete along the polyline.
Step Offset | Specifies the offset of the first profile from the start of the polyline.
Cross Section Size X | Specifies the size of the generated profiles along the X-axis.
Cross Section Size Z | Specifies the size of the generated profiles along the Y-axis.
Nominal Z's Tilt | Specifies the tilt of the nominal Z-axis for the generated profiles in degrees (0 – 180).
Nominal Z's Tilt Direction | Specifies the tilt direction of the nominal Z-axis for the generated profiles in degrees (0 – 360).
Thickness | Specifies the neighborhood range of the slicing planes used to generate profiles. When you define a thickness greater than 0, the function picks up points that deviate from the slicing planes on the perpendicular axis by a distance up to half the defined thickness in both directions, creating a flattened composite profile from the registered points.
Sample Distance | Specifies the sampling distance within the slicing planes used to generate profiles. A small sample distance creates a profile that highlights surface imperfections and sudden peaks or valleys. A large sample distance creates a profile that can smooth over imperfections.
Profile Continuity |
Gap Fill Size | Specifies the minimum distance on the X-axis of the slicing plane between adjacent points for identifying a gap in the profile. For adjacent points with an X-axis distance below the Gap Fill Size, the function creates a continuous profile. For adjacent points with an X-axis distance above the Gap Fill Size, the function displays a gap between the two points.
Vertical Discontinuity Mode | Specifies the method of compensating for discontinuity on the Z-axis of the slicing plane between adjacent points: 0 = Interpolate: draws a direct line between the two points. 1 = Z Aligned: draws a vertical line aligned with the Z-axis from the point with a larger Z value.
Z Discontinuity Threshold | Specifies the minimum distance on the Z-axis between adjacent points for which the function considers the profiles to be discontinuous. For adjacent points with a Z-axis distance below the Z Discontinuity Threshold, the function creates a continuous profile. For adjacent points with a Z-axis distance above the Z Discontinuity Threshold, the function creates a gap between the two points.
Cliff Parameters |
Insert Cliffs | Specifies whether the function inserts cliffs into the profiles. The function inserts cliffs on either side of a gap, dropping the Z-axis to a negative value. Inserting cliffs allows you to extract corner points from gaps.
Cliff Length | Specifies the length of the inserted cliffs.
Cliff X Threshold | Specifies the distance on the X-axis between adjacent points across a gap above which the function inserts cliffs.
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.

Outputs

Returns | Profile3D data structures containing the extracted profiles, 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 | Profile
❒ExtractPolylineCrossSections3D | GetNFound(ExtractPolylineCrossSections3D) | 0 | GetProfile(Profiles3D,0)
|  | 1 | GetProfile(Profiles3D,1)
|  | ... | ...
|  | N-1 | GetProfile(Profiles3D,N-1)

Vision Data Access functions

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

Function | Description
GetNFound(Profiles3D, index) | Returns the number of extracted profiles.
GetProfile(Profiles3D, index) | Returns the extracted profile with the specified index.
GetNPoints(Profile3D) | Returns the number of points in the extracted profile
GetRectangle(Profile3D) | Returns the Rectangle3D structure used as a slicing object for the extracted profile.