# Difference between revisions of "Point Redundancy"

Point Redundancy is a flag that indicates the type of solution calculated by the Motion Controller to reach a specific point in space.
If a point was declared, for example; DIM SHARED PNT AS LOCATION OF XYZR, then the following sub-fields exists;
PNT.ARM, PNT.ELBOW, PNT.WRIST, PNT.TURN1, ..., PNT.TURN6

There are 3 ways to obtain Point Redundancy:
1. By using the property PNT.ARM (for SCARA only):

• 0 - Auto (closest solution), the default value
• 1 - Lefty (J2.PCMD < 0)
• 2 - Righty (J2.PCMD > 0)

2. Assignments:

• PNT = Scara.HERE or PNT = Scara.SETPOINT
• In that case, flags are automatclly set during the assignment.

3. Constant Assignment:

• PNT = #{X,Y,Z,R;<'flag'>} by using the ";" separator between the location and the flag.

## Syntax

Dim Shared PNT as Location Of XYZR

```PNT = #{X,Y,Z,R;<'flag'>}
```

long

0-2

0 - Auto flag

## Limitations

1. There are no flags used when declaring location as a joint point (DIM SHARED JPNT AS JOINT OF XYZR).
2. Expressions are only allowed when all flags are equal or one of them is non-AUTO;

• for example, if A = #{X1,Y1,Z1;1} and B = #{X2,Y2,Z2;1}, the expression PNT = A+B is valid

## Examples

move to a specific location with point redundancy flag = 1

move to the same location using point redundancy flag = 2

If the following point is declared;

common shared PNT as location of XYZR
PNT = #{0,0,0,0;1}

The usage of Print or "?" commands prints the previous format:

-->Print PNT
-->#{0 , 0 , 0 , 0}

The usage of PrintPoint command prints the new format;

-->PrintPoint PNT
-->#{0 , 0 , 0 , 0 ; 1}

The usage of PrintPointU command prints a formatted output;

-->PrintPointU "#.##"; PNT
-->#{0.00 , 0.00 , 0.00 , 0.00 ; 1}

When the flag or separator are omitted, the following formats are equivalent:

PNT = #{0,0,0,0}
PNT = #{0,0,0,0;}
PNT = #{0,0,0,0;0}