PTS 응용 - Path Vector 추출 #
특정 Library의 경우 X 방향과 Y방향에 해당하는 Reference 요소를 지정해줘야 생성이 가능하기에 Reference 선택 단계가 추가되는 경우가 많다.
특히나 NX의 좌표 체계에 각각 직교하는 축 방향을 가지는 CSYS를 생성하고 활용해야 하는 상황에서 축 방향 Reference를 중복 선택 할 경우 에러가 발생하게 된다.
이러한 연유로 인해 선택한 Reference에서 X-Axis를 추출하고 다음 단계로 Y-Axis 방향을 모든 방향으로 설정해 두고 작업자의 필요에 따라 해당 Axis방향을 선택해서 원하는 방향으로 조립되도록 정의 하는 방식이 필요하다
그러나 작업자가 X-Axis방향에 해당 하는 Reference를 선택하면 자동으로 Y-Axis 혹은 Z-Axis를 할당해서 표시해 줘야 하지만 이러한 기능을 위해서 선택한 Line의 Vector와 Point를 감안한 복잡한 처리 단계가 필요한 상황이다.
Step 1. X-Axis 추출 #
PTS Library에서 사용자가 선택한 X-Axis에 해당하는 Line의 Vector 방향을 추출해서 해당 방향을 제외한 나머지 방향을 자동으로 제시하고 사용자 선택에 따라 모델링을 수정한다.
Vector 추출과 정의에 사용되는 핵심 기능은 Analysis 항목의 Measure 기능이다. Measure 기능을 실행하고 아래의 설정으로 변경 후 Vector 추출 객체를 선택하여 객체의 측정 정보를 Expression에 남긴다.
생성된 Line의 Measure 정보는 길이와 시작점, 끝점을 포함하고 있으며 그 중 시작점과 끝점을 이용하면 Line의 Vector 방향을 추출할 수 있다.
Model Navigator에서 생성된 Measure [Curve]를 선택하고 Ctrl+E 를 눌러 Expression을 실행하면 해당 객체와 연관 있는 Expression만 표시된다.
표현된 Expression을 사용자가 이해하기 쉽게 Rename하여 수정한다.
Rename이 완료되면 Path_X_Axis를 등록한다.
Path_Axis_X = PT_END - PT_ST
※ 생성이 완료되면 Vector(xxx,0,0)으로 자동으로 등록되며 X에 해당하는 값만 “0”이 아니고 나머지 값은 “0”이므로 선택한 Curve는 X방향의 Vector를 가진다는 의미이다.
PathX_X = IF(Round(nx_x(Path_Axis_X))=0) 0 Else IF(Round(nx_x(Path_Axis_X))>0)
Round(nx_x(Path_Axis_X))/Round(nx_x(Path_Axis_X)) Else
Round(nx_x(Path_Axis_X))/Round(nx_x(Path_Axis_X))*-1
PathX_Y = IF(Round(nx_y(Path_Axis_X))=0) 0 Else IF(Round(nx_y(Path_Axis_X))>0)
Round(nx_y(Path_Axis_X))/Round(nx_y(Path_Axis_X)) Else
Round(nx_y(Path_Axis_X))/Round(nx_y(Path_Axis_X))*-1
PathX_Z = IF(Round(nx_z(Path_Axis_X))=0) 0 Else IF(Round(nx_z(Path_Axis_X))>0)
Round(nx_z(Path_Axis_X))/Round(nx_z(Path_Axis_X)) Else
Round(nx_z(Path_Axis_X))/Round(nx_z(Path_Axis_X))*-1
※ Vector(1, 0, 0) 과 Vector(100, 0, 0)은 동일한 의미이므로 작업의 편의를 위해 “1”로 변경하여 활용한다.
( 동일한 값으로 나누면 “1”이 되는 것을 활용. ) ※ nx_x() 는 Vector의 x값을 정수화 하는 함수이며 Expression창에 입력하면 해당 함수의 사용방법이 표시되어 참고할 수 있다. ( 유사한 기능으로 nx_y() : y값 정수화, nx_z() : z값 정수화 함수가 있다 )
NX_x
Returns the X (1st) component of a Point or Vector.
Requires:
Any:Point or Vector
Returns:
Number: X (1st) COmponent of Point or Vector
※ Round()는 해당 값을 반올림하는 함수이다. ( 유사한 기능으로 Ceil() :올림, Floor() : 버림 함수가 있다 )
추가로 필요한 Expression을 계속 등록한다.
※ Sel_Axis_YX는 PTS에서 “ List Of Choice “ 기능으로 입력 받을 설계 변수로 입력값은 숫자( 0, 1, 2, 3 )만 가능하지만 PTS에서 각각 +Y, -Y, +Z, -Z로 변환되어 활용된다.
Path_Axis_YX = IF(Sel_Axis_YX=0) vector(0,1,0) Else IF(Sel_Axis_YX=1)
vector(0,-1,0) Else IF(Sel_Axis_YX=2) vector(0,0,1) Else
vector(0,0,-1)
Path_Axis_YY = IF(Sel_Axis_YY=0) vector(1,0,0) Else IF(Sel_Axis_YY=1)
vector(-1,0,0) Else IF(Sel_Axis_YY=2) vector(0,0,1) Else
vector(0,0,-1)
Path_Axis_YZ = IF(Sel_Axis_YZ=0) vector(1,0,0) Else IF(Sel_Axis_YZ=1)
vector(-1,0,0) Else IF(Sel_Axis_YZ=2) vector(0,1,0) Else
vector(0,-1,0)
※ Path_Axis_YX는 Sel_Axis_YX의 입력에 의해 결정되는 Vector방향에 대한 정의값이며 최종 결과인 Path_Axis_Y를 위한 사용자 입력 값이다.
Path_Axis_Y = IF(PathX_X=1|PathX_X=-1) Path_Axis_YX Else IF(PathX_Y=1|PathX_Y=-1)
Path_Axis_YY Else Path_Axis_YZ
※ 최종적으로 Path_Axis_Y는 +X방향이거나 –X방향일때 Sel_Axis_YX의 선택에 따라 +Y, -Y, +Z, -Z방향으로 설정이 가능하다.
※ 이러한 Expression은 해당 부분만 EXP File로 저장해두고 필요 시 Import하여 사용이 가능하다.
※ 최종적으로 Path_Axis_Y는 +X방향이거나 –X방향일때 Sel_Axis_YX의 선택에 따라 +Y, -Y, +Z, -Z방향으로 설정이 가능하다.
※ 이러한 Expression은 해당 부분만 EXP File로 저장해두고 필요 시 Import하여 사용이 가능하다.
이상으로 Expression등록이 완료되면 본격적으로 객체를 생성한다.
Step 2. CSYS 생성 #
NX Modeling은 Sketch를 Profile로 이용하여 Solid를 생성하는 방식으로 진행하며 이때 Sketch의 생성 기준인 Datum CSYS를 사용자가 Curve를 이용하여 추출한 Vector를 이용한 생성 방식으로 생성한다.
Datum기능을 실행 후 생성옵션을 ①[ Point And Direction ]으로 변경 후 Axis 생성원점이 되는 Curve의 ②End Point를 선택하고 Datum의 ③생성 방향 옵션을 ④[ By Expression ] 으로 변경 후 저장된 Axis ⑤[ Path_Axis_X ]를 선택하여 Datum 생성을 완료한다.
최종적으로 생성하고자 하는 객체는 CSYS이며 그 원점을 생성하기 위해 Section Curve를 실행하고 X-Axis에 해당하는 ⑥Curve를 선택하고 Section 기준 ⑦[ Datum ]을 선택하여 ⑧[ Section ]을 생성한다.
※ Curve Entity를 이용하여 Section Curve를 생성하면 [ Point ]가 육면체를 이용하면 사각형이, 원기둥을 이용하면 Circle이 생성된다.
Datum CSYS 기능 실행 후 생성 옵션을 ①[ X-Axis, Y-Axis, Origin ]으로 변경하고 ②[ Origin ] Point를
Section Curve를 이용해서 생성한 ②[ Point ]를 선택하고 ③[ X-Axis]의 Vector를 [ By Expression ] 옵션으로 ③[ Path_Axis_X ], ④[ Y-Axis ]의 Vector를 ④[ Path_Axis_Y ]를 선택하여 Datum CSYS 생성을 완료한다.
※ NX에서 CSYS를 생성함에 있어 Axis Vector을 동일한 방향으로 설정할 경우 생성되지 않는 에러가 발생하여 이후에 추가되는 모든 형상도 생성이 되지 않는다. ※ 이러한 방식으로 생성된 CSYS는 X-Axis에 해당하는 Curve를 Y방향으로 수정 할 경우 Expression에 정의된 방식에 따라 자동으로 수정 된다.