Allow me to elaborate. We make casted steel parts. At a certain point in the overall flow, a robot takes a part to a self-adjusting grinder wheel and grinds down a steel pad that is left over after the gate/riser has been torched off. To do this we set an origin point in the main program and then call a subprogram(3x3, 3x4, etc) thats comprised only of linear "offset movements" (Not actual points.) That is, for example, the first point may be x 90, the second z 10, the third x -90, and so on (we haven't yet implemented FOR loops). Where my question comes in is that origin point. Do any of you have general tips as to how you go about making sure things are "square"? As of right now I go through each axis one at a time, bumping one side of the part right up to the wheel, move 40mm away (I love Kukas), move to the other side, and go 40mm back in. Then I adjust by eye and go again until they are very close. There are two problems with this method. 1. It takes too much time, and 2. It's not always this easy/possible as the parts can be more complex than a simple plane. We use separate frames for each component (tables, multiple grinders, cutting wheels, etc.)