NX Expression Tip. 01 #
안녕하세요
NX Expression은 그냥 특정 변수를 등록하고 계산하고 반영하는 단순사용이 대부분이지만 사용하기에 따라서 API프로그램을 이용한 자동화 모듈처럼 사용이 가능합니다.
이러한 활용에 대한 NX Expression관련 팁을 알려 드립니다.
위와 같은 형상이 있고 두 객체 사이를 연결하는 부품을 설계한다고 가정했을때 보통은 두 형상 사이의 거리를 측정하여 측정된 거리 값으로 설계를 하게 됩니다.
그런데 이 거리가 정치수로 떨어지면 참 좋은데 그렇지 못한 경우가 많이 있죠..ㅠ.ㅠ
이때 사용가능한 팁을 소개해볼까 합니다.
우선 저 측정값을 Measure Feature로 생성하기 위해 Setting항목의 Associative를 체크하고 실행을 하면 Model Navigator에 Measure Feature가 생성됩니다.
생성된 Measure Feature를 Expression에 변수로 등록하기위해 선택 후 Ctrl + E를 눌러 Expression을 실행하면 선택된 객체에 해당하는 Expression만 표시가 됩니다.
이때 NX에서 자동으로 Name이 할당되는데 이를 DIST로 변경합니다. ( 본인이 알아 보기 쉬운 이름으로.. )
여기에 LEN=CEIL(DIST) 이라고 Expression을 등록합니다. [ 이때 CEIL함수는 올림 이라 LEN은 258이 됩니다. ]
이렇게 거리를 측정하고 Expression으로 등록한 DIST를 Extrude 기능에 활용하여 모델링을 완성하면 됩니다.
다만 이런 경우 실제 사이즈인 257.1793이 아닌 258로 생성되기 때문에 가운데 연결 객체는 실제 사이즈보다 길게 생성되므로 간섭이 발생하게 됩니다.
여기서 Expression에 CEIL이 아닌 FLOOR를 사용하면 어떻게 될까요???
FLOOR는 버림함수이기에 257이 되며 OK를 눌러 적용하면 실제 거리보다 0.1793 작게 생성이 되어 간섭이 사라집니다.
참고로 FLOOR함수 대신 ROUND함수를 사용해도 동일한 결과를 얻을 수 있습니만 실제 거리가 257.5면 CEIL과 동일한 값이 되므로 버림이 올바른 적용입니다.
이런 번거로운 작업을 하는 이유는….
파란색 객체와 녹색객체가 수정되어 거리가 변경되면 두 객체 사이의 거리도 변경되고 가운데 끼인 노란색 객체도 자동으로 수정되므로 별도의 수정작업이 필요 없게 됩니다.
( Assembly 환경에서도 동작가능하며 Mouse Drag를 이용하여 Component를 이동하여도 반영됩니다.)
여기서 문제~~~
그러면 5mm 단위로 생상되게 하려면 어떻게 하면 될까요???
이 문제를 해결하시면 다양하게 응용이 가능합니다. ( 10mm단위로 생성, 소숫점 2자리까지 생성 … )
======================================================================================
이러한 Expression 정의가 필요한 가장 큰 이유는
실제 현업에서 노란색 객체가 이미 길이가 정해져서 판매되는 구매품일 경우 설계에서 구현할 방법은 결국 API 프로그램을 이용한 프로그램 개발만이 답이 되겠지만 댓글에 설명드린 방법으로 한다면 별도의 프로그램 개발이 필요 없게 됩니다.
파란색 객체와 녹색 객체 사이에 추가되는 객체이므로 측정된 길이보다 무조건 짧아야 하므로 Ceil 함수를 사용하는것이 설계 조건에 부합되는 적용이 되겠지요~~
DIST = 257.179
A = floor(dist/5)*5 -> A = 255 ( 5mm단위로 생성 )
A = floor(dist/10)*10 -> A = 250 ( 10mm단위로 생성 )
A = floor(dist*10)/10 -> A = 257.1 ( 소숫점 1의 자리에서 버림 )
A = floor(dist*100)/100 -> A = 257.17 ( 소숫점 2의 자리에서 버림 )