1. A method of off-line programming a robot, said robot having a first three dimensional geometry that may serve as a first coordinate system, for preparing a work program that said robot is made to execute without being required to move while working on a workpiece, said workpiece having a second three dimensional geometry that may serve as a reference for a second coordinate system, comprising the steps of: preparing a work program based on the first and second three-dimensional geometries of said robot and said workpiece, respectively; converting work point positions of said robot, specified in accordance with said second coordinate system that has said workpiece stated in the work program as a reference unit, into work point positions that are specified in accordance with said first coordinate system that has said robot as a reference unit; dividing the work point positions stated in the work program that have been specified in terms of said first coordinate system as a function of the work to be performed by the robot in order to provide a plurality of jobs; teaching said robot at least two work points per job; determining an error vector for said at least two work points per job, based upon a comparison of said work points as specified in terms of said first coordinate system and in terms of comparable points on the actual workpiece; apportioning an error vector to each said work point that has been specified in terms of said first coordinate system in proportion to all the work point positions within the job; and adding said apportioned error vector to each said work point to thereby correct a local error depending on the work position and posture of said robot.