지원 범위와 알려진 한계
CNC Path Analyzer가 해석하는 G코드 범위(지원·부분 지원·참고 해석·차단)와 실제 기계와 그림이 달라질 수 있는 한계를 한 페이지에 정리했습니다.
지원 범위의 기준
이 페이지에서 지원은 자동 테스트와 합성 예제로 기대 좌표를 확인한 문법을 화면에 그릴 수 있다는 뜻입니다. 특정 기계에서 안전하게 가공된다는 의미도, 모든 제어기 옵션과 호환된다는 의미도 아닙니다. 확인되지 않은 동작은 추측해서 그리지 않고 이유와 함께 표시를 멈추는 것을 원칙으로 합니다.
기능별 현재 상태
| 영역 | 상태 | 확인할 점 |
|---|---|---|
| G00/G01 직선 이동 | 선반·밀링 지원 | 절대/증분, 선택 평면, 선반 X 직경 표시 |
| G02/G03 원호 | 지원되는 평면과 정의만 표시 | R 부호, I·J·K와 끝점 반지름 일치 |
| 선반 G70/G71/G72/G73 | 검증된 부분집합 | 제어기별 포켓·복귀·첫 블록 규칙 차이 |
| G76 나사 사이클 | 두 줄 형식 지원 | 리드, 나사산 높이, 첫 절입 |
| 드릴·탭 사이클(G73/G81~G89) | 설비·제어기별 부분 지원 | 선반 G83/G84의 R 해석, K0, 복귀 높이 |
| G12.1/G13.1 극좌표·C축 | XC 극좌표와 분할 표시 | 실제 회전 방향·원점·기계 운동학 |
| M98/M99 호출 | O번호 기반 프로그램 호출 | 누락·중복·재귀·실행 한도 |
| 변수와 수식 | 제한된 대입·수식·조건/반복 | 시스템 변수와 전체 매크로 환경은 미재현 |
| Heidenhain·Siemens·5축 | 해석 가능한 경로 부분만 | TCP, 피벗, 공구 길이, 회전축 운동학 미재현 |
표시 상태 다섯 가지
- 지원: 합성 회귀 테스트로 기대 좌표를 확인한 범위입니다.
- 부분 지원: 명령의 일부 형식만 해석하고, 다른 형식은 차단합니다.
- 참고 해석: 제어기마다 동작이 갈리는 형식에 대해, 사용자가 명시적으로 고른 가정으로만 그립니다. 그림 옆에 참고 경로임을 표시합니다.
- 차단: 그럴듯하지만 틀릴 수 있는 경로를 만들지 않도록 결과를 표시하지 않고 원인 행을 알려 줍니다.
- 미검증: 장비나 제어기 근거가 없어 자동으로 추정하지 않는 항목입니다.
실제 기계와 그림이 달라지는 이유
도구는 프로그램 문자열만 보고 경로를 계산합니다. 다음 정보는 프로그램 밖, 기계 쪽에 저장돼 있기 때문에 그림에 반영되지 않습니다.
- 작업 좌표 오프셋(G54 등)과 공구 길이·마모 보정 값.
- 척·지그·심압대·공구 홀더의 실제 형상과 소재 크기.
- 축 가감속, 서보 응답, 급속 이동의 축별 도착 순서, 공구 교환 시간.
- 제어기 파라미터에 따라 바뀌는 사이클 세부 동작과 기종 전용 M코드.
- 5축 피벗 길이, 공구 중심점 제어(TCP), 회전축 운동학.
제어기 선택이 결과를 바꾸는 예
같은 문자열이 제어기에 따라 다른 경로가 되는 대표적인 예가 직선 블록의 코너 R 지령입니다. G01 X40. R2. 형식에서 R의 부호를 방향으로 읽는 제어기(YASNAC 계열)가 있고, 항상 양수 반경으로 읽는 제어기가 있습니다. 설비 설정의 “G01 코너 R 해석”을 자동으로 두면 선택한 컨트롤러 규칙을 따르고, 직접 고르면 그 규칙으로 고정합니다. 쉼표가 붙은 ,R은 항상 양수 반경이며, 원호와 사이클의 R에는 영향을 주지 않습니다.
M코드도 비슷합니다. 주축 회전·절삭유·프로그램 끝처럼 공통인 코드는 주석으로 의미를 보여 주지만, 제조사·기종 전용 M코드는 확인된 자료가 있을 때만 설명하고 모르는 코드에 임의로 이름을 붙이지 않습니다.
경고를 무시했을 때
호출 프로그램 오류를 무시하고 계속 보면 문제 구간이 빠진 불완전한 경로가 그려질 수 있습니다. 계산량 한도나 기하학 오류는 결과 전체를 막기도 합니다. 경고가 사라졌다는 사실이 프로그램의 안전을 증명하지는 않으므로, 경고 내용은 경로 오류 해결의 순서대로 확인하는 것을 권합니다.
검증 방식과 갱신
공개 예제와 회귀 테스트에는 생산 NC를 쓰지 않고 독립적으로 만든 합성 프로그램을 씁니다. 새 형식을 지원할 때는 기대 좌표와 오류 분류를 먼저 테스트로 고정한 뒤 반영하고, 동작이 바뀐 내용은 변경 이력에 기록합니다.