Reference Link : https://en.wikipedia.org/wiki/Rotation_of_axes#CITEREFProtterMorrey1970
Rotation of axes - Wikipedia

Reference Link : http://www.deltatau.co.kr/xe/11649
deltatau 2011.11.22 11:20
안녕하세요, 문의 감사드립니다.
질문하신 내용의 좌표계의 축정의 변환에 관련해서는 여러가지 방법이 있을 수 있습니다.
첫 번째로는, 말씀하신 것처럼 좌표계의 정의 자체를 변경하는 방법이 있습니다.
예를 들면, 아래와 같이 처리할 수 있습니다.
&1
#1->1000X + 10000
#2->1000Y + 20000
과 같이 정의되어 있으면, 이 값들은 자동으로 M변수에 그 값이 저장되게 됩니다.
(Suggested M변수를 반드시 사용해야 함.)
이 M변수들은 다음과 같이 정의 됩니다.
Mxx91 ==> #xx X/U/A/B/C-Axis scale factor (cts/unit) -> #xx, 첫번째 x = Coordinate number, 두번째 x = Axis number
Mxx92 ==> #xx Y/V-Axis scale factor (cts/unit)
Mxx93 ==> #xx Z/W-Axis scale factor (cts/unit)
Mxx94 ==> #xx Axis offset (cts)
따라서, 위에 정의한 값들도 해당 M변수에 저장이 됩니다.
M191 = 1000
M194 = 10000
M292 = 1000
M294 = 20000
이제 좌표계 자동 전환에 대해서 말씀을 드리면,
여기서 해당 M변수 값을 바꾸게 되면, 좌표계는 변환이 되는 것입니다.
다만, 모션 프로그램 수행 도중에 변경하게 될 때에는 주의 사항이 있습니다.
먼저, 변경 전에는 반드시 "DWELL" 명령을 써서 선행 연산이 진행되지 않도록 해야 합니다.
또한 변경 후에는 반드시 "PMATCH"명령을 수행해서 프로그램 좌표계산을 다시 수행하도록 해야 합니다.
아래와 같이 프로그램에 적용하시면 됩니다.
DWELL 10
M191 = 1000 ; #1->1000X + 10000
M194 = 10000
M292 = 1000 ; #2->1000X + 20000
M294 = 20000
CMD"&1 PMATCH"
DWELL 10