UG NX C++ API, NX UF_CLEAR_ask_preferences 에러 해결 방법

UG NX C++ API, NX UF_CLEAR_ask_preferences 에러 해결 방법


NX에서 충돌 체크를 확인하는 함수가 UF_CLEAR_ask_preferences()입니다. 근데, 사용 중 특정 에러가 발생하는 경우가 있습니다.


Clearance Analysis : Clearance analysis has failed to due to input body or bodies failing to pass parasolid body checks


충돌 체크는 솔리드 바디를 기준으로 이뤄지는데 모델링 자체에 에러가 있으면 발생합니다. 즉, 충돌체크에 해당하지 않는 컴포넌트가 선택되었다는 뜻이죠. NX UG API 개발자로선 딱히 해결 방법이 없습니다. 왜냐면 NX 자체 에러인데 이걸 개발자가 고칠수는 없는 노릇이죠.


그러니, 이런 에러가 발생하면 NX를 켜고 UI에 나온 메뉴를 직접 실행해 보세요. 그래도 똑같은 에러가 발생하면 모델링 자체를 수정해야 합니다.


우선, Assembly Clearance - Clearance Set - New를 선택하세요.


NX 충돌 체크 Clearance[UG NX C++ API, NX UF_CLEAR_ask_preferences 에러 해결 방법]


Clearance Properties 창이 뜨면 Lists to Check에서 Two Lists를 선택합니다. List One에는 솔리드 바디 아무거나 선택하고, List Two에는 에러를 유발하는 솔리드 바디를 선택합니다.


NX Clearance Properties[UG NX C++ API, NX UF_CLEAR_ask_preferences 에러 해결 방법]


Clearance Browser가 뜨면 새로 만들어진 규칙을 오른쪽 마우스로 클릭하고 Perform Analysis를 이어 클릭해 충돌 체크를 실행합니다.


NX 충돌체크 시작[UG NX C++ API, NX UF_CLEAR_ask_preferences 에러 해결 방법]


그러면 코드로 실행했을 때와 똑같은 에러 메시지가 뜹니다.


NX 충돌체크 에러 pass parasolid body checks[UG NX C++ API, NX UF_CLEAR_ask_preferences 에러 해결 방법]


상황이 이렇다면 개발자로선 딱히 할 게 없어요. 모델링 자체가 에러고 NX에서도 에러라 말하는데 개발자가 할 수 있는 게 없죠.


그나마 하나 있는 해결책은 이렇습니다.

대부분 개발자가 아래처럼 코드를 구성해 사용할 텐데요.


1
2
3
4
5
6
7
8
UF_CLEAR_find_dataset(UF_ASSEM_ask_work_part(), message, &dataset_tag);
...
...
UF_CLEAR_set_obj_list(dataset_tag, 1, UF_CLEAR_FIXED_LIST, list_one.size(), target_tag);
UF_CLEAR_set_obj_list(dataset_tag, 2, UF_CLEAR_FIXED_LIST, list_two.size(), target_tag);
...
...
UF_CLEAR_ask_preferences(dataset_tag, &pref)
cs


UF_CLEAR_set_obj_list에 들어가는 솔리드 바디 태그 중 일부를 직접 제외하는 수밖에 없습니다.


UG NX C++ API, NX UF_CLEAR_ask_preferences 에러 해결 방법

댓글(0)

Designed by JB FACTORY