NX Expression 변수 설계 방법과 실무 예시 정리
NX로 설계를 하다 보면 처음 모델링하는 시간보다 수정하는 시간이 더 오래 걸리는 경우가 많습니다. 베이스 길이가 바뀌고, 홀 간격이 달라지고, 판 두께가 바뀔 때마다 스케치와 3D 피처를 하나씩 다시 손보면 모델은 금방 복잡해집니다. 이런 상황에서 가장 먼저 잡아두면 좋은 기능이 바로 Expression 변수 설계입니다.
| 기능/목적 | 권장 라이선스 기준 | 비슷한 기능 | 판단 기준 |
|---|---|---|---|
| Expression, 스케치 치수 변수, 파생식 | Standard 이상 | Product Interface, WAVE Link, Part Families | 최근 NX 코어 설계 자료에서 Sketch Navigator에서 expressions와 dimensions를 직접 편집하는 흐름이 확인되고, Standard 티어는 feature-based solid modeling, drafting, assembly, basic freeform modeling 같은 코어 설계 기능을 포함합니다. 다만 Siemens 공개 티어표에 Expressions가 단독 항목으로 찍혀 있지는 않아, 이 줄은 코어 설계 기능 기준의 실무 판단으로 보는 편이 맞습니다. |
| UDF(User Defined Features) | Advanced 이상 | Feature Templates | Siemens 공개 티어표에서 Advanced 기능에 user-defined features가 직접 명시됩니다. 이건 비교적 확실합니다. |
| Feature Templates 사용 | Advanced 이상 | UDF, Reuse Library | Siemens 공개 티어 설명에서 Advanced는 “재사용 가능하고 구성 가능한 공통 feature template” 성격의 기능을 포함한다고 설명하고, 별도 Tips 문서에서는 Feature Templates가 Parameter Tables, Visual Rules, Reuse Library와 연결된다고 설명합니다. |
| Feature Template Author 작성 기능 | NX X Design Advanced 또는 Premium | UDF 작성, 재사용 피처 저작 | Siemens 공식 지원 KB 검색 결과 기준으로 Feature Template Author는 NX X Design Advanced or Premium이 필요하다고 안내됩니다. |
| Product Templates / Product Template Studio | Advanced 이상 우선 검토 | Feature Templates, Reuse Library | Siemens 공식 블로그에서는 Product Templates와 Feature Templates가 함께 Parameter Tables를 쓰고, Creo Family Table 대체 수단으로 Product Template Studio와 NX Reuse Library를 함께 제시합니다. 다만 공개 티어표에는 PTS가 이름 그대로 박혀 있지 않아서, 실구매 전 판매처 확인이 꼭 필요한 항목입니다. |
| Part Families | 공개 자료상 단독 티어 표기는 미확인 | Product Templates, Reuse Library | Siemens 코어 설계 업데이트 문서에서 Part Families와 Part Family Tables 기능 확장이 확인되지만, 공개 티어표에는 Part Families가 단독 항목으로 분리되어 있지 않습니다. 그래서 실무에선 보통 코어 설계 범주로 보되, 정확한 계약 SKU는 확인하는 쪽이 안전합니다. |
| Reuse Library 기반 재사용 | Standard에서도 일부 활용 가능, 템플릿 저작은 Advanced 쪽이 안전 | UDF, Feature Templates, Product Templates | Siemens 블로그에서 Feature Templates는 Reuse Library에 쉽게 배포할 수 있다고 설명하고, Family Table 대체 기능으로도 Reuse Library를 제시합니다. 다만 Reuse Library “조회/배치”와 “템플릿 저작”은 체감 라이선스가 다를 수 있어, 재사용 템플릿을 직접 만드는 쪽은 Advanced를 잡는 편이 안전합니다. |
| PMI까지 포함한 재사용 템플릿 | Advanced 이상 | Feature Templates + logical rules | Advanced 티어는 PMI를 포함하고, Siemens 블로그는 Feature Templates가 PMI와 requirement checks까지 포함할 수 있다고 설명합니다. |
| 고급 곡면, 고급 조립, AI 선택 기능 | Premium 이상 | Advanced freeform/assembly tools | Premium은 Advanced 위에 advanced freeform modeling, advanced assembly modeling, AI 기반 similar component selection, selection prediction 등을 추가합니다. |
Expression은 길이, 각도, 개수, 질량 같은 값을 이름으로 저장하고 스케치 치수나 익스트루드, 패턴, 필렛, 홀 피처에 연결해 쓰는 방식입니다. 한 번 변수로 묶어두면 이후에는 숫자 하나만 바꿔도 모델 전체가 따라오기 때문에 설계변경이 많은 부품일수록 차이가 크게 납니다.
저는 브래킷, 샤프트, 판금류처럼 규격만 조금씩 달라지는 부품은 처음부터 변수화하는 편이 훨씬 낫다고 봅니다.
반복 설계가 많은 환경에서는 Expression만 잘 써도 수정 시간이 눈에 띄게 줄어듭니다. 이후에는 Product Template Studio, Define Deformable Part, Part Families까지 확장하기도 편합니다.
NX Expression 변수 설정

변수 설정은 모델링 상태에서 Tool → Expression으로 들어가면 시작할 수 있습니다.
여기서 길이, 각도, 개수 같은 값을 이름으로 먼저 정리해두고 나중에 스케치와 피처에 연결하면 됩니다.
처음부터 외곽 길이, 두께, 홀 지름, 리브 높이처럼 자주 바뀌는 값만 빼두어도 이후 수정이 훨씬 쉬워집니다.
메뉴 경로는 Tool → Expression 입니다.
단축키 예시 Ctrl + E

Expression에서는 길이, 면적, 체적, 질량, 각도처럼 여러 단위를 지정할 수 있습니다.
실무에서 가장 자주 쓰는 항목은 보통 Length, Angle, Number 쪽입니다.
외곽 치수, 두께, 회전 각도, 패턴 개수, 홀 수량 같은 항목이 여기에 해당합니다.
변수명 정리
변수 설계는 기능보다 이름 정리가 더 중요할 때가 많습니다. W, H, A1, B2처럼 짧게 두면 처음에는 빨라도 며칠만 지나면 다시 보기 어려워집니다.
의미가 바로 보이는 이름으로 잡아두면 협업 때도 훨씬 편합니다.
| 변수명 | 의미 | 예시값 | 적용 위치 |
|---|---|---|---|
| BASE_W | 베이스 폭 | 170 | 스케치 외곽 가로 |
| BASE_H | 베이스 높이 | 90 | 스케치 외곽 세로 |
| THK | 두께 | 8 | 익스트루드 두께 |
| HOLE_D | 홀 지름 | 10 | 홀 피처 직경 |
| EDGE | 모서리 여유 | 15 | 홀 중심 여백 |
| PITCH_X | 홀 간격 | BASE_W-(EDGE*2) | 파생식 |
저는 길이는 _W, _H, _L, 두께는 THK, 홀은 HOLE_D처럼 역할이 드러나게 맞추는 편입니다.
이름만 잘 정리해도 모델 수정 난이도가 훨씬 낮아집니다.


이렇게 등록한 값은 파트 네비게이터에서 다시 확인할 수 있습니다.
숫자를 여기저기 흩어 놓는 방식보다, 한 곳에서 값을 바꾸고 전체 모델이 같이 따라오게 만드는 쪽이 훨씬 안정적입니다.
스케치 치수에 변수 넣기

변수를 만들었다면 이제 스케치 치수에 연결하면 됩니다.
외곽선 길이, 원 지름, 슬롯 길이, 중심 거리 같은 값을 직접 숫자로 넣는 대신 Formula로 연결하면 됩니다. 이 단계까지만 해두어도 이후 수정은 Expression 창에서 끝나는 경우가 많습니다.


치수 입력창에서 Formula를 선택하면 미리 등록한 변수 목록이 뜹니다.
원하는 값을 선택하면 스케치 치수는 숫자 대신 해당 변수로 관리됩니다.


브래킷 설계 예시
가장 이해하기 쉬운 예시는 L형 브래킷입니다.
외곽 길이와 홀 지름, 홀 간격, 두께를 Expression으로 묶어두면 규격이 달라져도 모델을 다시 그릴 필요가 없습니다.
| 항목 | Expression | 예시값 | 설명 |
|---|---|---|---|
| 브래킷 폭 | BASE_W | 170 | 전체 가로 |
| 브래킷 높이 | BASE_H | 90 | 전체 세로 |
| 두께 | THK | 8 | 익스트루드 두께 |
| 홀 지름 | HOLE_D | 10 | 체결홀 규격 |
| 모서리 여유 | EDGE | 15 | 홀 중심 여백 |
| 홀 간격 | PITCH_X | BASE_W-(EDGE*2) | 자동 계산식 |
예를 들어 베이스 폭을 170에서 210으로 바꾸면 홀 간격은 따로 다시 입력하지 않아도 PITCH_X가 자동으로 계산됩니다.
저는 이 자동 계산식이 Expression을 꼭 써야 하는 이유라고 생각합니다. 숫자를 줄이는 기능이 아니라 설계 규칙을 모델에 넣는 방식이기 때문입니다.
브래킷 파생식 예시
- PITCH_X = BASE_W – (EDGE * 2)
- RIB_H = BASE_H / 2
- POCKET_W = BASE_W – 40
- POCKET_H = BASE_H – 30
이런 방식으로 식을 걸어두면 단순히 치수 하나가 바뀌는 것이 아니라, 연관된 여러 값이 함께 따라옵니다. 수정이 많을수록 이 차이가 크게 느껴집니다.
3D 피처에 변수 적용

Expression은 스케치 치수에만 쓰는 기능이 아닙니다.
익스트루드 거리, 회전 각도, 패턴 개수, 패턴 간격, 필렛 반경, 챔퍼 길이처럼 3D 피처에도 그대로 연결할 수 있습니다. 그래서 진짜 효과는 2D보다 3D 쪽에서 더 크게 느껴질 때가 많습니다.
예를 들어 THK를 익스트루드 두께와 리브 두께에 같이 연결해 두면 한 번 수정으로 전체 판 두께가 함께 맞춰집니다.
홀 피처의 지름도 HOLE_D로 묶어 두면 체결 규격이 바뀌어도 전체 홀을 다시 손볼 필요가 없습니다.

샤프트 설계 예시
회전형 부품에서는 Expression 설계가 더 잘 먹힙니다.
샤프트를 예로 들면 전체 길이, 외경, 턱 길이, 키홈 폭, 필렛 반경을 각각 변수로 두는 방식이 가장 무난합니다.
| 항목 | Expression | 예시값 | 적용 위치 |
|---|---|---|---|
| 전체 길이 | SHAFT_L | 240 | 회전 단면 길이 |
| 외경 | SHAFT_D | 30 | 회전 단면 직경 |
| 턱 길이 | STEP_L | 45 | 단차 구간 |
| 키홈 폭 | KEY_W | 8 | 스케치 절삭 폭 |
| 필렛 반경 | FIL_R | 2 | 필렛 피처 |
여기서 STEP_L = SHAFT_L * 0.2 같은 식을 걸어두면 전체 길이가 달라져도 단차 구간 비율이 자동으로 유지됩니다.
이 비율 유지가 없으면 길이만 바꾸고 턱 길이는 놓치는 경우가 꽤 자주 생깁니다.
변수 변경 전후 비교


이처럼 값을 바꾸면 스케치와 3D 형상이 함께 따라옵니다.
지금처럼 컬럼 블록으로 전후 이미지를 정리해두면 워드프레스 기본 블록만으로도 화면이 깔끔하게 맞고 모바일에서도 아래로 자연스럽게 정렬됩니다.
Part Families 연결
Expression을 제대로 정리해두면 다음 단계는 Part Families입니다.
브래킷 규격이 100, 120, 150, 170처럼 반복된다면 매번 새 파일을 만드는 대신 테이블 값만 바꿔 여러 모델을 생성할 수 있습니다. 표준품, 반복 부품, 크기만 조금씩 다른 판금류에서는 이 방식이 특히 강합니다.
규격이 여러 개인 부품일수록 개별 파일을 손으로 관리하는 방식은 금방 한계가 옵니다.
저는 이런 경우 Expression으로 먼저 규칙을 정리하고, 이후에 Part Families로 묶는 쪽이 가장 깔끔하다고 봅니다.
관련 확장 작업은 파트패밀리 설계와 UG NX Expressions 함수를 이용한 Part Familes 설계 글을 함께 보면 연결이 더 쉬워집니다.
패밀리 테이블 예시
| 모델명 | BASE_W | BASE_H | THK | HOLE_D |
|---|---|---|---|---|
| BRKT_100 | 100 | 60 | 6 | 8 |
| BRKT_120 | 120 | 70 | 6 | 8 |
| BRKT_150 | 150 | 80 | 8 | 10 |
| BRKT_170 | 170 | 90 | 8 | 10 |
이 정도만 정리해도 규격품 설계는 새로 그리는 시간보다 값을 바꾸는 시간이 더 짧아집니다.
반복품이 많은 환경에서는 이 차이가 꽤 크게 느껴집니다.
실무에서 자주 막히는 부분
- 스케치 일부만 변수화하고 나머지는 숫자로 남겨둡니다.
- 같은 의미의 변수를 BASE_W, WIDTH, W처럼 여러 이름으로 나눠 씁니다.
- 홀 간격을 식으로 묶지 않고 수동으로 다시 입력합니다.
- 스케치만 변수화하고 익스트루드, 패턴, 필렛은 숫자로 남겨둡니다.
- 길이와 각도, 개수 단위를 섞어서 나중에 수정할 때 헷갈립니다.
처음에는 모델이 단순해서 크게 문제 없어 보여도, 설계변경이 두세 번만 반복되면 바로 차이가 납니다. 결국 변수 설계는 빨리 그리기 위한 기능이 아니라 다시 수정할 때 흔들리지 않게 만드는 설계 방식에 가깝습니다.
최근 NX에서 같이 보면 좋은 부분
최근 NX에서는 Sketch Navigator 안에서 관계와 치수, 표현식을 더 보기 쉽게 확인하고 일부 값은 바로 수정하는 흐름이 더 편해졌습니다.
그래서 Expression을 잘 정리해둔 모델일수록 이후 수정 과정도 더 단순해집니다. 예전처럼 스케치 내부를 계속 뒤지기보다, 구조를 보고 필요한 값만 바로 건드리는 쪽이 훨씬 빠릅니다.
즉, 변수 설계를 해두는 것과 수정 도구가 좋아지는 것은 따로 노는 기능이 아닙니다. 값이 잘 정리된 모델일수록 수정 화면도 더 잘 활용할 수 있고, 반대로 값이 제각각이면 좋은 기능이 있어도 모델이 금방 꼬입니다.
NX 변수 설계 정리
NX Expression을 잘 쓰면 스케치 치수, 3D 피처, 패턴, 홀, 두께 같은 값을 한 곳에서 관리할 수 있습니다.
여기에 파생식까지 넣어두면 단순 치수 수정이 아니라 설계 규칙 자체를 모델에 심어둘 수 있습니다. 브래킷, 샤프트, 기어, 판금류처럼 반복 사양이 많은 모델에서는 이 차이가 꽤 큽니다.
정리하면 자주 바뀌는 값은 먼저 변수로 빼고, 연관 관계는 식으로 묶고, 스케치와 3D 피처를 같이 연결하는 방식이 가장 안정적입니다. 이 세 가지만 지켜도 NX 모델은 훨씬 덜 흔들립니다.
자주 묻는 질문
NX Expression은 어디에 쓰나요?
스케치 치수, 익스트루드 거리, 회전 각도, 패턴 간격, 홀 지름, 필렛 반경처럼 자주 바뀌는 값을 변수로 관리할 때 씁니다.
NX 변수 설계는 어떤 부품에서 효과가 큰가요?
브래킷, 샤프트, 기어, 판금류, 표준 규격품처럼 크기만 달라지는 반복 부품에서 효과가 큽니다.
NX Expression과 Part Families는 같이 써야 하나요?
반드시 같이 쓸 필요는 없지만, 반복 사양이 많은 부품은 Expression으로 기본 규칙을 먼저 잡아둔 뒤 Part Families로 확장하는 방식이 가장 편합니다.
NX Expression에서 숫자만 넣는 것과 식을 넣는 것의 차이는 무엇인가요?
숫자만 넣으면 치수 하나만 바뀌지만, 식을 넣으면 서로 연결된 길이와 간격이 함께 다시 계산됩니다. 설계변경이 많은 모델일수록 식이 더 중요합니다.
NX 변수명은 어떻게 정하는 것이 좋나요?
BASE_W, THK, HOLE_D처럼 의미가 바로 보이는 이름이 좋습니다. 짧은 약어만 쓰면 모델이 커질수록 다시 보기 어려워집니다.