# kernelv_get_prg_target_positions()

## Prototype

KERNELV_RETURN | kernelv_get_prg_target_positions (signed long int *positions, unsigned long int maxByteSize, unsigned long int *returnSize);

## Description

The target positions of all axes existing in the CNC that are programmed in the NC program are returned in an array.

The returned positions are the positions programmed in the currently executed NC block.

If motion blocks are inserted by the CNC or programmed motion blocks are split (e.g. when contouring), the target position of the source block is output for all generated NC blocks.

Position values have a resolution of 0.1 µm for translatory axes or 1*10-4° for spindles or rotary axes.

The error code ERR_CNC_RET_MEMORY is returned if the memory provided by the calling application is not sufficient for returning all values.

The calling application must provide at least number of axes * sizeof(signed long int) bytes for returning of all position values.

The order of the axis positions in the returned array is equal to the configuration order of the axes.

If an axis is currently not assigned to an NC channel, the value zero is returned for that axis.

## Parameter

Name | Type | Meaning
positions | unsigned long* | Pointer to the memory area for the axis positions to be returned.
maxByteSize | unsigned long | Size of the memory area for the axis positions.
returnSize | unsigned long* | Number of bytes returned in positions.

## Return values

Symbol | Value | Meaning
RET_FINISHED | 0 | The function was executed without error.
ERR_CNC_NOT_INIT | -3 | The simulation CNC kernel was not yet initialised.
ERR_CNC_RET_MEMORY | -4 | The return value(s) does/do not fit into the memory provided. In this case, the required memory is returned in the returnSize parameter.