Direct input of measurement data

Enter the measurement results of linear axes X, Y and Z (in mm) for each pose. In addition, specify the related angles of the rotary axes. In the example below, an AB table kinematic was measured in pose A=20 and B=0 degrees. Although there is no C axis in the example, the C position must be transferred with 0.

Programing Example

prg_example

Example of the direct input of measured data

Defining variables

#VAR

V.L.N = 6        ( number of points measured )

V.L.X[V.L.N]     ( X coordinate of points measured )

V.L.Y[V.L.N]     ( Y coordinate of points measured )

V.L.Z[V.L.N]     ( Z coordinate of points measured )

V.L.RESULT_V[3]  ( array to save calculation results )

V.L.A = 20       ( position of A axis )

V.L.B = 0       ( position of B axis )

V.L.C = 0       ( position of C axis )

#ENDVAR

; List of XYZ coordinates of all points measured in this pose, in mm

V.L.X[0] = 101.807  V.L.Y[0] = 273.174  V.L.Z[0] = 130.068

V.L.X[1] = 116.795  V.L.Y[1] = 258.750  V.L.Z[1] = 130.068

V.L.X[2] = 104.246  V.L.Y[2] = 244.524  V.L.Z[2] = 129.024

V.L.X[3] = 89.606   V.L.Y[3] = 257.804  V.L.Z[3] = 132.980

V.L.X[4] = 96.606   V.L.Y[4] = 269.804  V.L.Z[4] = 133.957

V.L.X[5] = 102.780  V.L.Y[5] = 264.366  V.L.Z[5] = 139.522

; Call cycle to calculate sphere centre point

L CYCLE [NAME = "SysCalcSphere.ecy"]

; Add new coordinates to calculate kinematic

L CYCLE [NAME = "SysCalibFitAddRecord.ecy", \

@P1 = V.L.RESULT_V[0], \

@P2 = V.L.RESULT_V[1], \

@P3 = V.L.RESULT_V[2], \

@P4 = V.L.A, \

@P5 = V.L.B, \

@P6 = V.L.C]

; ... Executing input for all poses

This step must be executed for every pose measured. The calculation process can then be started from the same NC program as the values entered.

Programing Example

prg_example

Calling the calculation cycle

#VAR

V.P.MAX_PRECISION = 0.06   ( precision )

V.P.LIST_FORMAT   = 1      ( list format for result )

#ENDVAR

; Call calculation cycle

L CYCLE [NAME = "SysCalibFit.ecy", \

                @P1 = V.L.LIST, \

                @P2 = V.L.MAX_PRECISION]

; Call to end cycle

L CYCLE [NAME = "SysCalibFitFinalize.ecy"]