There is a third choice for using a horizontal drill. It is probably the easiest for both the programmer and operator alike. This method requires that you are cutting on one of the 4 faces of the part and not some arbitrary angle, and also for the programmer to know the distance from the center of the drill block to the face of the collet that the tool fits into. It then requires the operator to measure how much tool is sticking out of the collet in the drill block.
The programmer places the distance from the center of the spindle (where the work coordinate is set) to the face of the collet in the Tool Length.
The operator placed the tool length (the amount of the tool sticking out of the collet) into the horizontal length offset.
This method allows for the programmer to only need one number that never changes for a tool length, and the operator can measure the amount from the collet to the tip of the tool (with almost any measuring device) and put it in an offset, just like he/she would for any other tool touched off.
In Router-CIM, the knowledge would be set to Spindle, Plane Detect would be ON, and the setup would look like this for example:
Combination of Spindle and Collet offsets
The Tool Length is set to the dimension of the center of the spindle to the face of the collet, which really only needs to be taken once. Set Plane Detect on. This is important.
Measure the setting for Tool Length on the Control Panel
Then make the cut, with the same settings as a Spindle offset tool path. The cut will be placed out away from the shape by the amount in the Tool Length parameter, and then at the machine, the operator must place the length of the tool in the Horizontal Tool Length offset register.
Place the Tool Length into the Horizontal Tool Length offset
When the machine sees the Horizontal Offset and the plane command (G18/G19) it will offset the tool path further by the length of the tool and place the tip of the cutter in the proper position.
This method is easier for both the programmer and operator from the standpoint that the programmer needs only one setting (Spindle to Collet distance) which will always stay the same, and for the operator that sets the tool offsets, the tool can be measured as it would normally be and that amount placed in an offset register just like a vertical tool.