모든 글 보기

반복 드릴링 사이클을 위한 매크로 프로그래밍 활용법

TRASA3 Blog

G-code 게시됨: 2026-09-22 작성자: trasa3 4 조회수
반복 드릴링 사이클을 위한 매크로 프로그래밍 활용법

반복되는 홀 패턴은 보통 긴 NC 프로그램을 필요로 하지 않습니다. 좌표가 단순한 직선 배열이라면 G81 표준 사이클, G91 증분 위치 지정, 그리고 L 반복 횟수만으로 충분한 경우가 많습니다. 하지만 직사각형 그리드, 여러 치수의 부품군, 또는 자주 변하는 피치 패턴에서는 매번 좌표를 수동으로 수정하는 것이 느리고 오류가 발생하기 쉽습니다. 이럴 때 매크로 프로그래밍을 사용하면 반복되는 작업 순서는 서브프로그램에 두고, 치수와 홀 개수를 인자로 전달하여 작업을 간소화할 수 있습니다.

아래 예제는 매크로 옵션이 활성화된 Haas 밀링 CNC 제어장치를 대상으로 합니다. 변수 할당, 루프 구문, 서브프로그램 호출 방식은 CNC 제어장치와 소프트웨어 설정에 따라 다르므로, 실제 사용하는 제어장치의 매뉴얼을 반드시 확인하고, 프로그램을 그래픽 시뮬레이션으로 검증한 뒤 첫 가공은 공작물 위에서 진행해야 합니다.

표준 사이클로 충분한 경우

G81은 드릴링 작업에서 대부분의 반복 코드를 제거해 줍니다. 사이클이 활성화되면 G80으로 취소할 때까지 제어장치는 각 새로운 X/Y 위치에서 드릴링을 수행합니다. Haas 매뉴얼에는 X 방향 증분 이동과 L 반복 횟수를 사용해 동일 간격의 홀을 한 줄로 만드는 예제가 나와 있습니다:

G90 G54 X10. Y20.
G43 H01 Z50.
G99 G81 Z-12. R2. F120.
G91 X25. L4
G80
G90

이 방법은 한 줄의 직선 홀 배열에 적합합니다. 첫 번째 홀은 G81이 활성화된 위치에서 가공되며, G91 X25. L4는 추가로 네 개의 위치를 더합니다. 첫 홀 실행을 놓치면 홀 개수가 늘어나거나 전체 패턴이 이동하는 오류가 발생할 수 있으니 주의해야 합니다.

표준 사이클에는 다른 종류도 있습니다. G82는 드릴링 후 홀 바닥에서 머무름을 추가하고, G83은 피킹 드릴링에 사용하며, G98과 G99는 복귀 위치를 지정합니다. 적절한 사이클 선택은 공구, 가공 깊이, 재료, 칩 배출 조건에 맞아야 하며, 매크로는 좌표 계산과 반복만 담당할 뿐 올바른 드릴링 공정을 대체하지 않습니다.

매개변수화된 매크로가 제공하는 이점

직사각형 그리드는 첫 홀 좌표, X와 Y 방향 피치, 열과 행 수, 가공 깊이, R 평면, 이송 속도 등 9개의 값만 전달하면 정의할 수 있습니다. 작업자는 호출문 한 줄만 바꾸면 되고, 중첩 루프가 각 홀 위치를 계산합니다.

다음 호출문에서 X와 Y는 그리드 시작점, I와 J는 피치, A와 B는 열과 행 수를 의미합니다:

G65 P9010 X10. Y20. I25. J20. A4. B3. Z-12. R2. F120.

Haas 제어장치에서는 G65 인자가 매크로 서브프로그램 내 지역 변수로 매핑됩니다. 이 예제에서는 X가 #24, Y가 #25, I가 #4, J가 #5, A가 #1, B가 #2, Z가 #26, R이 #18, F가 #9에 대응합니다. G65 호출마다 새로운 지역 변수 세트를 제공하므로 동일한 매크로를 다양한 치수와 가공 조건으로 실행할 수 있습니다.

직사각형 그리드용 매크로 예제

O09010 (DRILL RECTANGULAR PATTERN)

#30 = 0 (ROW INDEX)

WHILE [#30 LT #2] DO1
  #31 = 0 (COLUMN INDEX)

  WHILE [#31 LT #1] DO2
    #32 = [#24 + #31 * #4] (CURRENT X)
    #33 = [#25 + #30 * #5] (CURRENT Y)

    G90 G00 X#32 Y#33
    G81 Z#26 R#18 F#9
    G80

    #31 = #31 + 1
  END2

  #30 = #30 + 1
END1

M99

외부 루프가 행을, 내부 루프가 열을 셉니다. 각 좌표는 시작점에 위치 인덱스와 피치의 곱을 더해 계산합니다. A4, B3이면 총 12개의 홀(3행 각 4열)이 가공됩니다.

이 교육용 예제에서는 각 위치마다 G81을 활성화하고 취소합니다. 실행 시간이 약간 늘어나지만 사이클 상태가 한 작업으로 명확히 제한됩니다. 생산용 매크로는 사이클을 여러 위치에 걸쳐 유지할 수 있으나, 초기 실행, 모달 상태, G80 취소를 신중히 관리해야 합니다.

메인 프로그램과 안전 상태 설정

매크로는 공구 번호, 길이 보정, 회전수, 작업 좌표계 등을 스스로 결정하지 않아야 합니다. 이런 값은 메인 프로그램에 두어 작업 준비 상태를 쉽게 점검할 수 있게 하는 것이 좋습니다.

O01000
G90 G17 G40 G49 G80 G94
G54
T1 M06
S1800 M03
G00 X10. Y20.
G43 H01 Z50.
M08

G65 P9010 X10. Y20. I25. J20. A4. B3. Z-12. R2. F120.

G80
G00 Z50.
M09
M05
G53 G00 Z0.
M30

이 프로그램은 매크로 호출 전에 G17 평면, G90 절대 위치 지정, G54 작업 좌표계, G43 H01 공구 길이 보정을 설정합니다. 안전 높이, 기계 좌표계 복귀, 장비 작동 순서는 기계와 작업장 표준에 맞춰야 합니다.

생산용 매크로에 필요한 검증

매개변수화된 코드는 수동 편집을 줄여주지만, 한 개의 잘못된 인자가 전체 홀 패턴을 바꿀 수 있습니다. 생산용 매크로는 입력값을 검증해야 합니다. 행과 열 수는 양의 정수여야 하고, R 평면은 공작물 표면의 안전한 쪽에 위치해야 하며, 계산된 X/Y 좌표는 공작물 경계와 기계 이동 범위 내에 있어야 합니다.

  • 실제 제어장치에서 인자와 지역 변수 매핑이 올바른지 확인하세요.
  • 중첩 루프에서 DO와 END 번호가 정확히 짝을 이루는지 점검하세요.
  • 최종 좌표를 미리 계산하세요: X + (A − 1) × I, Y + (B − 1) × J.
  • Z 값 부호, R 평면 위치, G98 또는 G99 복귀 모드를 확인하세요.
  • 먼저 그래픽 시뮬레이션을 실행하고, 이후 빠른 이동 속도를 줄여 단일 블록 실행으로 점검하세요.
  • 바이스나 클램프가 있을 경우 드릴링 위치뿐 아니라 이동 경로도 반드시 확인하세요.

인자가 누락되는 경우를 방지하는 보호 기능도 유용합니다. 일부 제어장치에서는 지정하지 않은 지역 변수가 빈 값(null)일 때 매크로가 움직임 시작 전에 경고를 발생시킬 수 있습니다. 빈 변수 검사와 경고 구문은 해당 CNC 제어장치 매뉴얼에서 확인해야 합니다.

매크로가 작업을 줄여주는 경우

홀 다섯 개만 있는 단일 부품이라면 단순 G81 사이클과 좌표 목록이 오히려 읽기 쉽습니다. 매크로는 패턴이 일정한 규칙에 따라 자주 바뀔 때 유용합니다: 직사각형 또는 원형 배열, 동일 부품의 여러 치수, 다른 작업 좌표계에서 반복되는 홀, 또는 공정이 공통인 제품군 등입니다.

유지보수가 쉬운 매크로는 명확한 목적과 인터페이스를 갖습니다. 각 인자의 용도는 주석이나 셋업 시트에 기록하고, 올바른 호출 예는 프로그램과 함께 보관합니다. 이렇게 하면 셋업 담당자가 루프 카운터나 좌표 계산식을 수정하지 않고도 패턴 크기와 가공 조건을 바꿀 수 있습니다.

Haas 공식 문서에는 G65 인자 전달과 지역 변수 매핑드릴링 표준 사이클 작동법이 별도로 설명되어 있습니다. 이 자료들을 출발점으로 삼아 기계에 설치된 소프트웨어 버전과 동작을 반드시 확인해야 합니다.

반복 드릴링 사이클을 위한 매크로 프로그래밍 활용법

이 글은 다음 언어로 제공됩니다: