Siemens NX 매크로 기록/재생 정리 다이얼로그 문제, 재생 실패

NX 매크로 기록/재생 정리 다이얼로그 문제, 재생 실패, UG_showPlaybackDialogbox 설정

NX 매크로 기록/재생은 반복되는 모델링·도면·검토 작업을 “한 번만” 수행해두고 그대로 재현할 수 있어서, 손이 많이 가는 루틴 업무에서 체감이 큽니다. 특히 어셈블리 정리, 레이어/표시 상태 정돈, 특정 명령 조합을 반복 적용하는 상황이라면 매크로만큼 효율 좋은 선택이 드뭅니다.

NX 매크로

다만 NX 매크로는 기록 당시의 UI 상태재생 시점의 컨텍스트에 민감해서, “다이얼로그가 안 닫힘”, “기록 정지가 안 눌림”, “다른 환경에서 재생 실패” 같은 이슈가 종종 따라옵니다. 아래 내용은 기록재생을 안정적으로 쓰는 요령, 그리고 질문이 많은 다이얼로그 표시/억제 관련 설정을 한 번에 정리한 글입니다.

매크로 기록과 재생

기능설명사용 방법주의 포인트
매크로 기록 시작반복 작업을 자동화할 매크로 파일을 생성합니다.
기록 중에는 NX 하단에 기록 상태 아이콘이 표시됩니다.
메뉴 → 도구 → 매크로 → 기록 시작
이름 입력(최대 24자, .macro 자동 추가) → 작업 수행 → 기록 정지
모달 다이얼로그가 떠 있으면 기록 정지가 막힐 수 있습니다.
뷰포트에 음영/오버레이가 걸린 상태도 문제를 만들 수 있습니다.
매크로 재설정기록 시작 전에 열린 다이얼로그/컨텍스트를 취소하고 초기 상태로 되돌립니다.매크로 기록 다이얼로그에서 재설정으로 매크로 기록 토글 사용같은 작업이라도 NX 안에서 “어디에 서 있느냐”에 따라 실패가 갈리는데, 이 토글이 그 차이를 줄여줍니다.
Gateway 재설정재생 위치/모듈에 종속되지 않게, 알려진 시작점으로 정렬합니다.파일 탭 → Gateway에서 매크로 기록 첫 이벤트 생성“현재 작업 앱/모듈” 영향을 덜 받게 되어 재생 성공률이 올라갑니다.
매크로 파일 재생기록된 매크로 파일을 실행해 자동 수행합니다.메뉴 → 도구 → 매크로 → 재생 → 파일 선택기록 당시 상태(파트/표시/선택 모드)가 달라지면 실패할 수 있습니다.
다이얼로그 표시재생 중 다이얼로그를 띄울지 억제할지 결정합니다.기본은 억제(성능 유리).
표시가 필요하면 UG_showPlaybackDialogbox 사용자 기본값을 설정합니다.
디버깅/검증용으로 켜고, 실사용은 억제가 더 편한 경우가 많습니다.
단계별 실행재생을 천천히 진행하며 동작을 확인합니다.메뉴 → 도구 → 매크로 → 단계를 선택
매크로 선택 → 옵션 지정 → 실행 버튼 반복
해당 창이 활성화된 동안 다른 NX 조작이 제한됩니다.
SpaceBall / SpaceMouse장치 입력(회전/이동/줌 등)을 기록 대상에 포함할 수 있습니다.변환 기록 옵션을 확인 후 포함/제외를 선택장치 입력이 포함되면 환경 차이에 따라 재생이 흔들릴 수 있어, 꼭 필요한 경우에만 포함하는 편이 안정적입니다.
버전/OS 호환성NX 버전, 운영체제 환경이 바뀌면 재생이 실패할 수 있습니다.구버전(예: V16 이전) 매크로는 최신 환경에서 바로 재생이 안 될 수 있습니다.장기간 운영할 매크로는 “짧게 쪼개기”가 유지보수에 유리합니다.
기타 트러블 대응재생 환경이 달라졌을 때 생기는 오류를 완화합니다.윈도우 크기/해상도 차이가 크면 resize 옵션 등으로 보정합니다.뷰포트 선택 좌표 기반 매크로는 “창 크기”에 특히 민감합니다.

매크로 기록

매크로 기록 시작

Siemens NX 매크로 기록 시작 화면 예시(도구 메뉴에서 매크로 기록을 시작하는 위치)
  1. 기록 시작
    • 메뉴에서 매크로를 선택하고 기록 시작을 누릅니다.
    • 매크로 이름을 입력하는 파일 선택 창이 뜨며, 이름 끝에 .macro가 붙습니다.
    • 원하는 조작이 끝났으면 다시 매크로 메뉴에서 기록 정지를 눌러 마무리합니다.
  2. 재설정으로 매크로 기록
    • 기록 시작 전에 열려 있던 다이얼로그 영역(DA2)을 정리하고, 기준 상태(DA1)로 되돌린 뒤 기록을 시작합니다.
    • 매크로 첫 줄에 RESET이 삽입되는 형태로 남는 경우가 많아, 재생할 때 컨텍스트 차이를 줄이는 데 도움 됩니다.
  3. Gateway 재설정
    • 파일 탭 → Gateway에서 첫 이벤트를 잡아두면, 매크로가 특정 앱/작업 위치에 덜 묶입니다.
    • “어셈블리/모델링/도면”처럼 작업 모드가 섞이는 매크로에서 특히 효과가 좋습니다.
ADVERTISEMENT

매크로 재생

  1. 재생
    • 메뉴 → 도구 → 매크로 → 재생
    • 파일 선택 창에서 매크로 파일을 선택합니다.
  2. 재생이 실패하는 대표 패턴
    • 기록을 시작할 때의 파트/선택 모드/표시 상태가 재생 시점과 다를 때
    • 다이얼로그/메시지 박스가 예상과 다르게 뜨거나(또는 안 뜨거나) 포커스가 다른 곳에 잡힐 때
    • 그래픽 창 크기/배율 차이로 클릭/선택 좌표가 어긋날 때
  3. 기록 정지가 안 되는 상황
    • 모달 다이얼로그가 떠 있으면 기록 정지가 눌리지 않는 경우가 있습니다.
    • 기록 중 화면에 음영 처리(오버레이)가 남아 있으면 종료가 막히는 경우도 있어, 해당 상태를 먼저 정리한 뒤 끊는 편이 안전합니다.
  4. SpaceBall / SpaceMouse
    • 장치 입력도 기록할 수 있지만, 환경이 바뀌면 재생이 불안정해질 수 있습니다.
    • 뷰 조작이 “필수”인 경우가 아니라면, 모델링 명령 위주로 기록하는 쪽이 실무에서는 결과가 더 안정적입니다.

매크로 문제 해결 옵션

상황해결 방향
다른 위치/다른 모듈에서 재생기록과 동일 위치가 아니어도 돌려야 한다면, 기록할 때 재설정으로 매크로 기록 또는 Gateway 재설정을 섞어서 컨텍스트 의존도를 낮춥니다.
윈도우 크기/해상도 차이그래픽 창에서 선택을 기록한 매크로라면 창 크기 차이에 민감합니다. NX 실행 옵션(resize 등) 또는 동일한 작업 환경(모니터/배율)을 맞추면 성공률이 올라갑니다.
Pre-V16.0 매크로V16 이전 매크로는 최신 환경에서 바로 재생되지 않을 수 있습니다. 장기 운영이면 새 버전에서 다시 기록해두는 편이 관리가 편합니다.
Windows / 비-Windows 간 호환운영체제가 바뀌면 경로/입력/대화상자 동작이 달라져 재생이 실패할 수 있습니다. 동일 OS에서 운용하는 매크로는 상대적으로 관리가 쉽습니다.
print.macro 지정 후 NX 무응답무응답처럼 보이면 취소를 눌러 빠져나온 뒤 재생을 이어가는 방식이 도움이 될 수 있습니다.

매크로 재생 중 다이얼로그 표시(억제/표시)

  • 기본값은 다이얼로그 억제입니다. 재생 속도가 빠르고, 화면이 덜 흔들려서 실무에선 이 쪽이 더 편할 때가 많습니다.
  • 재생 중 모든 다이얼로그를 보고 싶다면 사용자 기본값에서 UG_showPlaybackDialogbox 값을 설정합니다.

단계 다이얼로그

단계 다이얼로그에서 볼 수 있는 옵션

옵션설명
진행 속도매크로 행 수 기준 또는 각 실행 텀을 조절합니다.
포함 범위사용자가 만든 행만 볼지, 내부 코드까지 포함해 자세히 볼지 선택합니다.
선택 점 표시각 동작에서 선택 좌표/선택 포인트를 표시합니다.
임의 지점 중지/재시작원하는 지점에서 멈추고 다시 이어갈 수 있습니다.
주의해당 다이얼로그가 활성화된 동안 다른 NX 옵션/모듈 조작이 제한됩니다.

사용 방법

NX 매크로 2
  1. 메뉴 → 도구 → 매크로 → 단계를 선택
  2. 파일 선택 창에서 매크로 선택
  3. 원하는 옵션을 지정
  4. 재생을 확인하면서 실행 버튼을 반복 선택

매크로 텍스트 파일 구성

NX 매크로 텍스트 파일은 크게 헤더본문으로 나뉘며, 헤더는 환경(버전/표시/선택 파라미터 등)을 정의하고, 본문은 다이얼로그 이벤트/입력/선택/메뉴 동작이 기록됩니다.

매크로 텍스트 파일 헤더 구성

표준 헤더는 아래 같은 항목을 담고, 이 순서를 크게 깨지 않는 편이 좋습니다.

  1. NX 버전
    매크로가 작성된 NX 버전 정보
  2. 매크로 파일 경로
    저장 경로와 파일명
  3. 매크로 버전
    매크로 버전 정보
  4. 매크로 언어 및 코드 집합
    언어/코드 집합
  5. 작성자 및 작성 일시
    작성자와 시간
  6. 파트 이름 표시 스타일
    파트명 표시 방식
  7. NX 선택 매개변수
    선택 관련 파라미터
  8. NX 화면 표시 매개변수
    뷰 표시 관련 파라미터
  9. 헤더 종료 표시
    ************************************************************************** 아래부터 본문(또는 추가 메모)

헤더 자체를 과하게 손대는 건 추천하지 않지만, 매크로 사용 메모를 붙여두는 정도는 실무에서 꽤 도움이 됩니다. 이때는 별표 라인 위쪽에 적어두면 깔끔합니다.

헤더 예제

NX 10.0.1.30

매크로 파일: C:projectsmacro_example.macro

매크로 버전: 2.10

매크로 언어 및 코드 집합: 영어 4

2024년 7월 22일 월요일 작성자: 김철수 14:35

파트 이름 표시 스타일: $PARTNAME

선택 매개변수: 2 3 0.487654 1

표시 매개변수: 0.500000 12.345678 7.123456 -0.123456 0.789012 0.543210 0.987654

<여기에 컴포넌트 추가>

**************************************************************************

들여쓰기 규칙

본문의 들여쓰기는 다이얼로그 중첩을 표현하는 방식으로 기록됩니다. 다이얼로그가 시작되기 전에는 들여쓰기가 의미가 없고, 다이얼로그가 끝나면 다시 원래 레벨로 돌아갑니다.

예제

DIALOG_BEGIN "실린더 생성"  ! 새 다이얼로그 시작
BEG_ITEM 1 (1 STRN) = "100" ! 기본 직경
BEG_ITEM 2 (1 STRN) = "200" ! 기본 높이
BEG_ITEM 3 (1 BOOL) = 1     ! 세그먼트 추가 여부
BEG_ITEM 4 (0 STRN) = "0.01" ! 정밀도

DIALOG_END -2, 0 ! 실린더 생성: 확인 버튼을 클릭하면 다이얼로그 종료

스냅샷 기록

매크로 재생이 흔들리는 원인의 상당수는 “버튼 클릭 자체”가 아니라, 그 순간 다이얼로그가 어떤 상태였는지가 바뀌기 때문입니다. 그래서 주요 지점에서는 다이얼로그 전체 상태를 남기는 형태가 안정적입니다.

스냅샷은 주로 BEG_ITEMEND_ITEM로 시작/종료 값을 기록하고, 필요하면 APP_ITEM, USE_ITEM 같은 라인을 통해 적용/사용자 항목 상태를 남깁니다.

스냅샷 예제

BEG_ITEM 1 (1 STRN) = "5" ! 시작 지점에서의 설정값
END_ITEM 1 (1 STRN) = "10" ! 종료 지점에서의 설정값
APP_ITEM 1 (1 STRN) = "5" ! 적용 버튼 클릭 시의 설정값
USE_ITEM 1 (1 STRN) = "5" ! 사용자 항목의 설정값

이런 식으로 “값의 전후”를 남겨두면, 같은 버튼을 눌러도 NX 내부에서 다른 처리가 되는 상황을 꽤 줄일 수 있습니다.

NX 매크로 키워드 예제

매크로 파일은 다이얼로그 이벤트와 UI 동작을 텍스트로 기록합니다. 아래는 키워드가 어떻게 쓰이는지 감을 잡기 위한 예제입니다. 실제로는 “내가 자주 쓰는 작업”을 짧게 기록해놓고 그 파일을 기준으로 패턴을 맞추는 편이 빠릅니다.

매크로 파일 헤더

헤더는 정보를 담는 영역이라, 본문 로직처럼 자주 수정하기보다는 “관리 메모” 정도만 곁들이는 쪽이 안정적입니다.

예제 헤더

NX 12.0.2.25

매크로 파일: C:Projectsexample_macro.macro

매크로 버전: 2.01

매크로 언어 및 코드 집합: 영어 3

작성자: 김철수, 작성일: 2024년 7월 22일 10:15

파트 이름 표시 스타일: $FILENAME

선택 매개변수: 4 3 0.500000 2

화면표시 매개변수: 2.000000 12.345678 7.123456 -0.800000 -0.700000 0.800000 0.700000

<설명: 이 매크로는 부품 조립을 자동화하는 데 사용됩니다.>

**************************************************************************

매크로 파일 본문

DIALOG_BEGIN "부품 조립"

BEG_ITEM 1 (1 STRN) = "500" ! 부품 길이
BEG_ITEM 2 (1 BOOL) = 1 ! 조립 방향
BEG_ITEM 3 (1 OPTM) = 2 ! 조립 방식
BEG_ITEM 4 (0 STRN) = "0.005" ! 공차

APPLY 1 ! 적용 버튼 클릭
APP_ITEM 1 (1 STRN) = "500" ! 부품 길이
APP_ITEM 2 (1 BOOL) = 1 ! 조립 방향
APP_ITEM 3 (1 OPTM) = 2 ! 조립 방식
APP_ITEM 4 (0 STRN) = "0.005" ! 공차

EVENT VALUE_CHANGED, 1, 0, 2 ! 조립 방향 변경
EVENT ACTIVATE, 1, 2, 1 ! 부품 길이 입력

CURSOR_POS 2, 1.234567, 3.456789, 0.000000 ! 커서 위치 기록

FILE_BOX -2, C:Partsassembly.prt, *.prt, 0 ! 부품 파일 열기

USER_ENTRY_BEGIN
CURSOR_EVENT 0, 0, 51 ! 좌측 클릭
CURSOR_EVENT 1, 1, 52 ! 우측 클릭
CURSOR_POS 1, 2.345678, 4.567890, 0.000000 ! 추가 커서 위치
DIALOG_BEGIN "부품 세부 설정"
DIALOG_END -2, 0 ! 세부 설정 확인
USER_ENTRY_END

MESSAGE_BOX -2, 조립이 완료되었습니다.
MESSAGE_TEXT 결과를 확인해 주세요.

PAUSE 5 ! 5초 동안 일시중지

PENDING 1, 0 ! 다음 단계로 이동
DIALOG_END -1, 0 ! 조립 완료

POPUP 1, 1.234567, 2.345678, 0.000000, "옵션 메뉴" ! 팝업 메뉴 호출

MENU, 1, UG_VIEW_POPUP_ZOOM, UG_GATEWAY_VIEW_POPUP ! 뷰 확대 메뉴 선택

TOOL_BAR UG_INFORMATION_WINDOW_TOGGLE 1 ! 정보 창 토글 활성화

WORK_LAYER "10" ! 작업 레이어 설정

ZOOM 1, 0, 100, 150, 8 ! 확대/축소 슬라이더 조작

CUSTOM_HEADER 30 "Assembly Settings" 1 ! 사용자 정의 다이얼로그 등록
CUSTOM 30 ACTION_UPDATE * SET_PARAMETERS * (1 0) * 0 * 1 ! 사용자 정의 다이얼로그 작업

키워드 설명(실무에서 자주 보는 것만)

APPLY: 다이얼로그에서 적용 버튼이 눌린 이벤트가 기록됩니다.

  APPLY 1 ! 적용 버튼 클릭

BEG_ITEM / END_ITEM: 다이얼로그 아이템 값의 “처음/끝”을 기록합니다.

  BEG_ITEM 1 (1 STRN) = "500" ! 부품 길이

EVENT: 값 변경, 활성화 등 사용자 상호작용이 남습니다.

  EVENT VALUE_CHANGED, 1, 0, 2 ! 조립 방향 변경

CURSOR_POS: 뷰 좌표 기준 커서 위치가 기록됩니다.

  CURSOR_POS 2, 1.234567, 3.456789, 0.000000

FILE_BOX: 파일 선택 창에서 입력한 값이 기록됩니다.

  FILE_BOX -2, C:Partsassembly.prt, *.prt, 0 ! 부품 파일 열기

USER_ENTRY_BEGIN / USER_ENTRY_END: 사용자 입력(클릭/커서 이동 등) 묶음을 기록합니다.

  USER_ENTRY_BEGIN
  CURSOR_EVENT 0, 0, 51
  USER_ENTRY_END

MESSAGE_BOX / MESSAGE_TEXT: 메시지 박스 표시 및 텍스트가 기록됩니다.

  MESSAGE_BOX -2, 조립이 완료되었습니다.
  MESSAGE_TEXT 결과를 확인해 주세요.

PAUSE: 재생 중 잠깐 멈춥니다(타이밍 이슈 대응에 종종 사용).

  PAUSE 5 ! 5초 동안 일시중지

PENDING: 상위 다이얼로그에서 하위 항목 선택 같은 “대기 상태 전환”이 남습니다.

  PENDING 1, 0 ! 다음 단계로 이동

POPUP / MENU / TOOL_BAR: 팝업 메뉴 호출, 메뉴 선택, 툴바 토글 같은 UI 조작 기록입니다.

WORK_LAYER: 작업 레이어 설정입니다.

  WORK_LAYER "10" ! 작업 레이어 설정

ZOOM: 줌 슬라이더 조작 기록입니다(뷰포트 의존도가 커서, 장기 운영 매크로에는 과하게 포함하지 않는 편이 편합니다).

  ZOOM 1, 0, 100, 150, 8

CUSTOM_HEADER / CUSTOM: 사용자 정의 다이얼로그 및 동작 기록입니다.

  CUSTOM_HEADER 30 "Assembly Settings" 1
  CUSTOM 30 ACTION_UPDATE * SET_PARAMETERS * (1 0) * 0 * 1

재생 성공률 올리는 실무 요령

1) “클릭 좌표”가 들어가는 매크로는 짧게

그래픽 창에서 픽셀 위치 기반으로 선택이 기록되는 순간부터 매크로는 해상도·배율·창 크기에 민감해집니다.

오래 굴릴 매크로라면, 가능한 한 명령 실행/다이얼로그 값 입력 중심으로 남기고, 좌표 선택이 꼭 필요한 부분은 별도 파일로 나눠두는 편이 유지보수가 편합니다.

2) 시작점 정리를 습관처럼

매크로가 깨지는 가장 흔한 이유는 “이미 다른 다이얼로그가 열려 있음”, “선택 필터가 바뀜”, “모듈이 다름” 같은 사소한 상태 차이입니다. 그래서 재설정으로 매크로 기록이나 Gateway 재설정처럼 시작점을 잡아주는 옵션은, 복잡한 매크로일수록 효과가 큽니다.

3) 다이얼로그 표시를 “검증용”으로만 켜두기

재생이 안 될 때는 다이얼로그를 띄워서 어디서 멈추는지 확인하는 게 빠릅니다. 다만 평소에는 억제 쪽이 속도와 안정성에서 유리한 경우가 많아, UG_showPlaybackDialogbox테스트할 때만 켜두는 패턴이 사용성이 좋습니다.

4) 메시지 박스/경고창이 자주 뜨는 작업은 “예외 처리”를 고민

매크로 중간에 경고창이 뜨면 포커스가 바뀌면서 매크로가 끊기기 쉽습니다. 그 작업이 반복적으로 경고를 유발한다면, 원인(속성 충돌/참조 끊김/권한 문제)을 먼저 정리하거나, 경고가 나지 않는 입력 조합으로 기록하는 편이 결국 빠릅니다.

Q. 매크로 파일 확장자는 꼭 .macro인가요?
A. NX 기록 기능으로 생성하면 기본적으로 .macro가 붙습니다. 이름만 바꾸기보다, NX에서 관리하는 형태로 두는 편이 재생/공유에서 문제가 덜합니다.

Q. 재생이 “중간에서 멈춘 것처럼” 보일 때 가장 먼저 볼 것은?
A. 메시지 박스/모달 다이얼로그가 떠 있는지, 그리고 포커스가 입력창에 잡혀 있는지부터 확인하는 게 빠릅니다.

Q. 같은 매크로가 내 PC에선 되는데 다른 PC에선 실패해요.
A. 해상도/디스플레이 배율/창 크기, 그리고 NX 설정(선택 필터, 사용자 기본값)이 다른 경우가 많습니다. 좌표 선택이 포함된 매크로라면 특히 차이가 크게 납니다.

Q. SpaceMouse 입력을 꼭 넣어야 하나요?
A. 꼭 필요한 경우가 아니라면 빼는 편이 안정적입니다. 뷰 조작이 포함되면 환경 차이로 흔들릴 여지가 커집니다.

Q. 다이얼로그가 억제된 상태에서 재생이 잘 됐는지 확신이 안 들어요.
A. 검증할 때만 UG_showPlaybackDialogbox로 표시를 켜고, 정상 동작이 확인되면 다시 억제로 돌리는 패턴이 가장 편합니다.

Q. 매크로를 길게 하나로 만들었더니 유지보수가 힘들어요.
A. 자주 바뀌는 구간(선택/좌표/파일 경로)과 고정 구간(명령/값 입력)을 분리해 파일을 나눠두면 유지가 편해집니다.

Q. “기록 정지”가 눌리지 않는 대표 상황은 무엇인가요?
A. 모달 다이얼로그가 떠 있거나, 특정 오버레이/음영 상태가 남아있는 경우가 많습니다. 해당 상태를 먼저 정리한 뒤 종료하는 편이 안정적입니다.


ADVERTISEMENT

DecreYellow

제품디자인과 3D CAD 설계 실무를 기반으로 IT, 윈도우 오류 해결, CAD 소프트웨어, 디자이너 세금, 프리랜서·개인사업자 실무 정보를 정리하고 있습니다. 단순한 이론 설명보다 실제 업무와 블로그 운영, 프로그램 사용 경험을 바탕으로 초보자도 이해하기 쉽게 문제 원인과 해결 방법을 풀어내는 것을 목표로 합니다.

You may also like...

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다