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
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
Calling the calculation cycle
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"]