# PointCloud 3D Vision Data Access functions

This topic In MQTT, a topic is a channel name where devices can publish messages, or can subscribe to for receiving messages. lists the available 3D Vision Data Access functions that get values directly from the acquired point cloud A point cloud is a 3D structure that consists of the data points collected by a 3D vision system during acquisition. data.

## Using the Functions

Each of the following functions references a PointCloud A point cloud is a 3D structure that consists of the data points collected by a 3D vision system during acquisition. structure for the first parameter. Use the index parameters as follows:

- Index1 (zero-based) determines which acquisition Acquisition is the process or result of the vision system acquiring a new image. of the point cloud data you want to reference.

- If you do not specify the index, the index defaults to zero, meaning the function Functions are tools that are available in Spreadsheet for processing and analyzing acquisitions or other results. You can add functions to your Spreadsheet job to create tool chains and produce results for specific applications. returns the first acquisition.

- In case of the GetX, GetY and GetZ functions, Index2 is an optional parameter when using edges.

## Function List

The following table describes the available functions:

Function | Description
GetCount(PointCloud) | Returns the number of point cloud acquisitions.
GetEncoderOverrun(PointCloud) | Returns true if an encoder overrun occurred during acquisition.
GetEncoderStats(PointCloud) | Returns a chart of the time intervals between consecutive profiles in the point cloud. The time intervals are measured in milliseconds. Use this function when the vision system is in encoder mode to detect encoder signal issues. If motion speed is constant but the graph shows anomalies, the encoder signal might be noisy or unstable. Note: The function returns no data when loading point clouds acquired with In-Sight 3D Spreadsheet version 25.1.0 or earlier. Example 1: Slowing and Accelerating Motion The following example shows a slowdown at the beginning of the point cloud acquisition. The increased time between profiles indicates reduced motion speed. Anomalies appear near profile 700, followed by an acceleration around profile 1000, which decreases the time between profiles. Example 2: Varying Time Between Pulses The following example shows manual motion during acquisition. The time between encoder pulses varies significantly, which causes irregular spacing between profiles. Example 3: Periodical Fluctuation of Time Between Lines The following example shows periodic fluctuations in time between profiles during acquisition. This behavior occurs when using a dual channel encoder and the Actual Y resolution is set equal to the encoder resolution. Depending on the accuracy of the encoder, minor positioning errors can cause small variations in timing between profiles. To avoid this behavior, set the Actual Y resolution to 4x the encoder resolution value on the Correction tab.
GetGreyscale(Image) | Returns the reference to the 2D greyscale image acquired by the vision system.
GetMinProfileTime(PointCloud) | Returns the shortest time between two consecutive point cloud profiles in milliseconds. Use this function when the vision system is in encoder mode to detect encoder signal issues. If motion speed is constant, the value should be close to GetScanTime divided by the number of acquired profiles. A shorter value can indicate noise on the encoder signal.
GetROIMaxZ(PointCloud) | Returns the maximum Z of the ROI of the point cloud acquisition.
GetROIMinZ(PointCloud) | Returns the minimum Z of the ROI of the point cloud acquisition.
GetScanTime(PointCloud) | Returns the time between the acquisition of the first laser profile and the acquisition of the last laser profile in milliseconds. In other words, the function returns the time the laser is on.
GetX(PointCloud, [Index1], [Index2]) | Returns the X-axis coordinate of the point cloud center point. Note: The Index2 parameter is valid only in case of edges (where it specifies an endpoint with the value of 0 or 1).
GetY(PointCloud, [Index1], [Index2]) | Returns the Y-axis coordinate of the point cloud center point. Note: The Index2 parameter is valid only in case of edges (where it specifies an endpoint with the value of 0 or 1).
GetZ(PointCloud, [Index1], [Index2]) | Returns the Z-axis coordinate of the point cloud center point. Note: The Index2 parameter is valid only in case of edges (where it specifies an endpoint with the value of 0 or 1).