I have a part that I'd like to machine which is sized such that I can cut two of them out of a single block of material if I rotate one of the parts 180 degrees and cut one above the other (in the Y plane). For the sake of efficiency I don't want to have to set the X and Y coordinates while physically machining the two parts, in fact I plan to merge the TAP files together once I've generated them.

To accomplish this I imported a single copy of my part and setup two local coordinate systems. The first CS aligns the Y axis so the non-rotated part is offset enough in the Y axis that there is enough room for a part above it. In the second coordinate system I rotate the part 180 degrees around the Z and moved X and Y to the opposite corner. I then set up my first machining operation, a flat land finishing job, I set the CS for that operation to Local 1 and generated the GCode with the expected results both on the screen and in the code. I then set the CS for the operation to Local 2 and ran the output, again. The view of the part on-screen and the machining operation both rotated 180 degrees and I got exactly what I expected.

The next two machining operations were both 2D contour milling, I did exactly the same thing as above but the results I got were different. Everything worked fine using Local 1 but when I switched to Local 2 and ran the program the part rotated correctly but the lines indicating the path for the machine operation did not, they stayed in the same location and generated exactly the same output as before.

Based on my experience I think the software has a bug, but I'm not expert. This seems like the most efficient way to work but if I'm overlooking something or you know of a better way to achieve the same result, I'm all ears.

Sean