Could be a for a number of reasons and depends if you have switches or not / how your machine is configured.
You define the datum reference for the machining of the part. If you want the gcode to start at the center of the piece,then generate the code based on the center and surface of the piece. You can set your tool to that point. What follows after that is based on how the code was generated. I always look at the first few moves of the gcode to see what is happening.
Note: You define to the controller where Home / Machine zero is, AND , you also must define where the Part is.
If the part is away from Home, then there is a Work Offset. If the Part datum is zero and Home is also zero, then
Machine Coordinates = Part Coordinates.
RICH