List 함수 #
NX의 Expression 기능에서 지원하는 여러 함수들 가운데 많이 알려 지지 않은 그렇지만 아주 활용도가 높은 List{}함수에 대해 설명하고자 한다.
List{} 함수는 {1,2,3,4,5…}의 형식으로 정의되고 특정 조건에 따라 List{}에 할당된 값이 정의된 Expression에 반영되어 모델링에 적용되는 아주 강력한 함수 이지만 아쉽게도 특정조건을 정의하는 방식과 List함수를 정의하는 절차에 대한 소개가 부족하여 사용 빈도가 높지 않은 불운한 함수이다.
그래서 이번 포스트에서 누구나 쉽게 List{}함수를 정의하고 사용할 수 있도록 상세한 설명을 진행 하고자 한다.
먼저 NX Expression을 실행하고 Expression [List_DB ]를 등록한다.
Name = List_DB
Formula = {1,2,3,4,5}
※ Enter Key를 누르는 순간 Expression Type가 Number에서 List로 변경된다.
등록된 List_DB의 Formula를 선택 후 마우스 우클릭 -> Edit를 선택한다.
[ Change the method used to edit this formula ]를 선택한다.
※ 일반적인 List{}함수는 단일 배열 형식으로 활용되며 이를 특정 조건에 따라 필요한 Expression 전체를 한번에 다른 값으로 변경이 가능하다.
Expression 수정창이 스프레드 시트로 변경되면 첫번째 라인을 마우스 우클릭 하고
[ Add Row ]를 선택하여 4개의 라인을 추가한다.
※ List{}함수는 NX Expression의 기능적인 제한으로 인해 한번에 모든 DB를 구현할 수 있는 설계변수에 제한이 있어 2개 이상의 List{}함수를 이용하여 복잡하고 다양한 Expression을 정의 할 수 있다.
List Expression의 등록이 완료되면 설계 변수에 해당하는 각각의 Expression을 등록한다.
Type=1
Name = nth(1,List_Box)
Box_X_Size = nth(2,List_Box)
Box_Y_Size = nth(3,List_Box)
Box_Z_Size = nth(4,List_Box)
Material = nth(5,List_Box)
List_Box = nth(Type,List_DB)
※ List{}함수는 nth()함수를 이용하여 각각의 Expression에 할당하여 활용한다.
Box_Meterial = stringValue(Material)
Box_Name = stringValue(Name)
DIM = stringValue(Box_X_Size) + "x“+stringValue(Box_Y_Size)+"x“
+stringValue(Box_Z_Size)
※ 문자형 Expression으로 활용되는 List{}함수는 StringValue()함수를 이용하여 숫자로
표현된 Expression을 문자로 변환해서 적용한다. (ex) Part Attribute
모든 Expression의 등록이 완료되면 BOX 생성을 위해 Block 명령을 실행한다.
BOX 생성을 위해 Block 명령을 실행한다.
Block의 Length (XC)값의 입력 항목에 “Box”를 입력하면 등록된 Expression 가운데 “ Box ”를 포함하는 Expression이 List로 나열되고 그 중 “ Box_X_Size ”을 선택하여 할당한다.
동일한 방법으로 Width(YC), Height(ZC)를 할당하고 [ OK ]를 선택하여 Box를 생성한다.
이렇게 생성된 Block 형상은 “Type“ Expression을 변경하면 List{}함수에 정의된 DB값에 따라 전체적인 형상이 변경된다.
Block이 생성되면 Part Navigator에서 생성된 Block를 선택하면 Navigator Detail항목에서 생성된 Block에 할당된 Expression을 확인할 수 있다.
Part Navigator의 User Expression항목을 확장하면 사용자가 정의한 Expression만 별도로 표시되며 표시된 Expression중 “Type“ Expression을 더블클릭하여 [ 1 ] -> [ 2 ]로 수정하면 Block의 형상이 List{}함수에 정의된 값으로 변경된다.
이러한 기능을 NX Library로 사용하기 위해서는 변화된 형상에 따른 SPEC정보를 NX Part Attribute에 연동되도록 하는 추가 작업이 필요하다.