7.1. ONERA M6 Wing 예제를 사용한 자동화 격자 프로세를 위한 ESP 형상 모델링
해석사례 • 2024.9.30 • 조낙원
이 예제에서는 Engineering Sketch Pad(ESP)에서 ONERA M6 Wing 모델을 구축하는 방법과 자동 격자를 준비하기 위해 모서리, 면 및 그룹 속성을 사용하는 방법에 대해 설명합니다. ESP 설치에 대한 자세한 내용은 여기에서 확인할 수 있습니다. ESP를 통해 형상을 구축하기 위해 일련의 명령문(statements)과 명령어(commands)를 스크립트 방식으로 사용합니다. 모든 ESP 명령문과 명령어는 *.csm 파일에 저장됩니다. ESP는 기능 기반의 연관성 있고 매개변수화된 솔리드 모델러인 OpenCSM(오픈 소스 구조적 솔리드 모델링) 시스템을 사용합니다. OpenCSM에 입력되는 파일은 ASCII 형식의 사람이 읽을 수 있는 *.csm 파일로, 일련의 설계 매개변수와 빌드 규칙을 통해 모델을 설명하는데 사용됩니다. 이 튜토리얼에서는 사용자가 ESP를 통해 매개변수화된 모델링과 스크립팅에 익숙하다는 것을 전제로 하고 있습니다.
ONERA M6 Wing 모델은 Schmitt와 Charpin 보고서의 38 페이지에 있는 형상 레이아웃을 기반으로 합니다. 이 형상에 대한 자세한 내용은 이 링크를 참고하세요.
ONERA M6 Wing 형상에 대한 세부 사양은 다음과 같습니다:
* Root chord: 0.8059 m
* Leading-edge Sweep: 30.0 °
* Trailing-edge Sweep: 15.8 °
* Semi-span: 1.1963 m
* Taper ratio: 0.56
* ROunded Tip Semi-span: 1.219526 m
Note
NASA Turbulence Modeling Resource 웹사이트에는 약간 다른 사양을 가진 ONERA M6 Wing의 또 다른 CAD 형상이 있습니다. 이 CAD 모델은 이 논문에서 참조되었으며, Local chord에 0.55%가 추가하여 날카로운 Trailing edge를 가지고 있습니다. 이 논문은 날카로운 Trailing edge가 Cp 분포에 미치는 영향이 매우 작다고 결론지었습니다.
7.1.1 익형을 위한 3D 스케치
날개를 구축하는 첫 번째 단계는 Root와 Tip 익형의 3D 스케치를 만드는 것 입니다. 다음 CSM 명령문을 사용하여 3D 익형 스케치를 만듭니다.
MARK
사용: RULEm BLEND or GROUP과 같은 그룹을 식별하는데 사용됩니다.
CSM 명령어 Mark는 개체 그룹을 식별하는데 사용됩니다. 이 예제에서 Mark를 사용하여 Root에 대한 스케치 그룹과 Tip에 대한 다른 스케치 그룹을 식별합니다.
SKBEG x y z relative=0
사용: 주어진 포인트를 사용하여 새로운 스케치를 시작합니다.
skbeg 명령어는 스케치를 시작하는데 사용됩니다. 다음 x, y, z는 스케치의 시작점을 정의합니다. 네 번째 인수는 스케치 내부의 값이 시작점에 상대적인지 여부를 나타냅니다.
SPLINE x y z
사용: 스플라인 커브에 점 추가
SKEND wireonly=0
사용: 스케치 끝내기
GROUP nbody=0
사용: Mark 작업 후 변환 작업을 위해 그룹 바디 생성
STORE $name index=0 keep=0
사용: 스택 위에 그룹 저장
다음은 위 설명된 명령어에 대한 상세 내용입니다.
이 단계에서 CSM 파일은 다음과 같습니다:
mark
skbeg up_x_TE up_y_TE up_z_TE
spline up_x_p1 up_y_p1 up_z_p1
.
.
.
spline up_x_LE up_y_LE up_z_LE
skend
skbeg low_x_TE low_y_TE low_z_TE
spline low_x_p1 low_y_p1 low_z_p1
.
.
.
spline low_x_LE low_y_LE low_z_LE
skend
group
store airfoil
위의 CSM 예제는 익형을 위한 3D 스케치를 구성하는 방법을 보여줍니다. 이러한 3D 스케치는 나중에 면 바디를 만드는데 사용되고, 생성된 면 바디들은 솔리드 바디를 생성하는데 사용됩니다. 따라서 면의 방향과 모서리 수는 모든 단면에서 일관성이 있어야 합니다. 면 방향은 스플라인을 정의하는 제어점의 방향에 따라 달라집니다. 이 경우 모든 3D 스케치는 상부 Trailing edge 점에서 시작하여 다시 하부 Trailing edge 점으로 돌아갑니다. 즉, 제어점 정의는 시계 반대 방향(CCW) 입니다. XFOIL에 익숙하다면 2D 섹션 점 정의가 동일한 순서로 정의된다는 것을 알 수 있을 것입니다.
위의 첫 번째 단계에 대한 CSM 파일은 다음 다운로드 링크에서 확인 할 수 있습니다.
om6Step1.csm
ESP에는 DisplayType에서 색상을 변경할 수 있으며, 다양한 색상 구성표가 준비되어 있습니다. 기본 색상 구성표는 단색 입니다:
- 솔리드 바디와 관련된 면들은 밝은 노란색 입니다.
- 시트 바디(sheet body)와 관련된 면들은 밝은 빨간색 입니다.
- 기본적인 작업의 일부로 생성된 가장자리는 녹색 입니다.
- Boolean 또는 Applied Branch에 의해 생성된 모서리는 파란색 입니다.
- 연결된 면이 하나만 있는 가장자리는 갈색 입니다.
- 연결된 면이 두 개 이상인 가장자리는 주황색 입니다.
- 노드는 작은 검은색 사각형 입니다.
7.1.2 날개 평면도(Wing planform)
이 단계에서는 위에서 생성된 형상 레이아웃을 기반으로 날개 평면을 정의한 다음 스케치를 면으로 변경하고, 이를 이동 시킵니다.
DESPMTR $pmtrName values
사용: 설계 매개변수 정의
CONPMTR $pmtrName values
사용: 상수 매개변수 정의
평면 형상(Planform)을 만들기 위해 두 가지 매개변수인 span과 leading-edge sweep angle을 정의합니다. 여기서 'span'은 설계 매개변수로 가정하여, 나중에 변경할 수 있도록 하고, leading-edge sweep angle은 현재 구성에서 일정한 값으로 가정합니다. 이를 위해 다음 두 가지 CSM 명령어를 사용합니다.
RESTORE $name index=0
사용: 이전에 저장된 바디 재생성
JOIN toler=0 toMark=0
사용: 공통된 모서리 또는 면에서 두 개의 바디 결합
그런 다음 익형을 나타내는 스케치 그룹을 restore하고 상부 및 하부 스플라인의 스케치 바디를 하나의 스케치 바디로 join 합니다. 이 스케치 그룹은 ONERA M6 Wing 모델의 Tip 익형 또는 Root 익형 입니다. 여기서 사용한 스케치 그룹들은 첫 번째 단계에서 저장한 것과 동일합니다.
ROTATEX angDeg yaxis=0 zaxis=0
사용: 스택에 가장 위쪽에 있는 그룹을 (0, y 축, z 축)을 통과하고 x 축과 평행한 축을 기준으로 회전하게 합니다.
TRANSLATE dx dy dz
사용: 스택 제일 위쪽의 그룹을 이동시킵니다.
Note
tand(x)는 degree 단위로 x의 탄젠트를 의미합니다. 자세한 내용은 ESP 5.10: Expression Rules을 참고하세요.
COMBINE toler=0
사용: Mark 이후 바디를 상위 유형으로 결합합니다.
마지막에는 나중에 restore 할 수 있도록 면을 store 합니다. 위의 두 번째 단계에 대한 CSM 파일은 다음 다운로드 링크에서 확인 할 수 있습니다.
om6Step2.csm
다음은 위 설명된 명령어에 대한 상세 내용입니다.
7.1.3 날개 솔리드 모델
이 단계에서는 **blend**를 사용하여 날개 솔리드 바디를 만듭니다.
BLEND begList=0 endList=0 reorder=0 oneFace=0 periodic=0
사용: Mark 이후 Xsects를 블렌딩하여 바디 만들기
둥근 팁은 BLEND 앞에 endList를 사용하여 생성됩니다. 이 endList="-1;1.1"은 둥근 끝의 종횡비가 1.1 임을 나타냅니다.
다음 링크에서 세번째 단계에 해당하는 CSM 파일을 다운로드 할 수 있습니다.
om6Step3.csm
그래픽 창에서 화면 왼쪽에 있는 트리의 Display 부분에 바디들이 포함됩니다. 왼쪽의 +를 눌러 목록을 확장하면 Faces, Edges, Nodes를 볼 수 있습니다. 각 항목의 오른쪽에는 다음 기능이 있습니다.
- Viz: 가시성 끄기/켜기
- Grd: 그리드 가시성 끄기/켜기
- Trn: 투명성 끄기/켜기
- Ori: 방향 끄기/켜기
또한, 엔티티 위에 커서를 올려놓고 다음 단축키를 사용할 수 있습니다.
- v: 가시성 끄기/켜기
- g: 그리드 끄기/켜기
- t: 투명성 끄기/켜기
- o: 방향 끄기/켜기
7.1.4 모서리 속성 추가(edge attribute)
모서리 속성(edge attribute)은 비정렬 표면 격자 생성 시 격자 밀도 등을 제어하기 위해 사용합니다. 모서리와 모서리 그룹에 속성을 할당하여, 나중에 각각의 모서리나 모서리 그룹에 표면 격자 매개변수를 할당할 수 있습니다. 이러한 속성에 적절한 표면 격자 JSON 파일과 결합되어 격자 매개변수의 유형과 값을 지정합니다. 모서리에 속성을 할당하는 여러가지 방법이 있습니다. 본 예제에서는 OM6 Wing 모델의 부분 별로 각기 다른 모서리 속성 추가 방법을 사용하여, 표면 격자 생성 및 일반적으로 식별이 필요한 모서리에 대한 속성을 정의합니다.
첫 번째 방법은 모델 내에서 빌드 규칙에 따라 모서리 속성을 추가하고, 속성을 유지하며 설계 매개변수를 변경할 수 있게 합니다. 그러나 형상 특징을 기반으로 모서리의 ID 번호를 얻는 것은 빌드 과정에서 어려울 수 있습니다. 이 방법을 통해서 날개의 Leading edge, Trailing edge 속성 이름을 부여합니다.
두 번째 방법은 경계 상자(bounding box)를 사용하여 모서리를 선택하고 속성을 할당하는 방식입니다. 이 방법의 어려움은 경계 상자가 다른 모서리들, 즉 다른 속성을 가져야 하는 모서리들까지 포함할 수 있다는 점 입니다. 또한 경계 상자의 입력 값을 미리 정의하는 것이 까다로울 수 있습니다. 이 방법을 통해서 Root 익형 모서리 속성 이름을 부여합니다.
세 번째 방법은 모서리 ID를 사용하여 모서리를 선택하고 속성을 할당하는 방식 입니다. 이 방법의 어려움은 빌드 과정을 와뇰하기 전에는 모서리 ID를 알 수 없다는 점 입니다. 또한 ID 번호가 빌드 과정마다 변경될 수 있기 때문에, 반복적인 형상 재생성이 필요한 경우 모서리 선택에 ID 번호를 사용하는 것은 권장되지 않습니다. 이 방법을 통해서 Tip 익형 모서리 속성 이름을 부여합니다.
7.1.4.1 (1) 노드 좌표 값 및 모서리 속성 사용(UDPRIM)
이 방법에서는 솔리드 바디에 대해 모든 노드의 ID를 수집하고 저장합니다. 모든 노드는 번호로 식별됩니다. 그런 다음 UDPRIM edgeAttr을 사용하여 모서리 노드의 좌표를 이용해 모서리에 이름을 추가합니다. 이 방법의 어려움은 솔리드 바디의 다양한 부분에 있는 서로 다른 노드를 식별하는 것 입니다. 우리는 노드 ID를 사전에 알지 못하고, 솔리드 바디가 다른 시스템이나 아키텍쳐에서 빌드될 때 노드 ID가 변경될 수 있다고 가정합니다. 또한, 빌드 과정에서 설계 매개변수를 변경하면서도 동일한 모서리에 동일한 속성을 추가할 수 있는 기능을 원합니다.
이를 위해서는 솔리드 바디에 몇 개의 노드가 있는지 알아야 합니다. 그런 다음 모든 노드를 반복하면서 위치를 기반으로 노드 ID를 저장합니다. 나중에 이 저장된 ID를 사용하여 노드를 구별하고, 그 좌표를 이용해 모서리 속성을 추가합니다.
예를 들어, xz 평면에 있는 익형을 생각해 봅시다. x 축은 Chord 방향에 따라 배치되며, Leading edge(leading edge)는 x 값이 최소인 지점에 위치합니다. 이 지점으로 Leading edge 노드의 ID를 식별할 수 있습니다. 그리고 최대 z 값을 가진 상부 Trailing edge 노드와 최소 z 값을 가진 하부 Trailing edge 노드를 구별하면 됩니다. 이 방법을 통해 우리는 Leading edge와 상부, 하부 Trailing edge 노드를 찾을 수 있습니다.
Note
이 예제에서는 날개를 구성하기 위해 "Bottom-up" 접근 방식을 사용했습니다. 솔리드 바디는 노드에서 곡선, 모서리, 표면, 면, 쉘, 마지막으로 바디가 되어 형상이 구축됩니다. 여기서 '노드'라는 용어는 각 모서리 끝에 있는 노드를 의미하며, 이는 상단 및 하단 곡선을 정의하는데 사용되는 익형 데이터 포인트와 다릅니다.
예를 들어, Leading edge와 상부, 하부 Trailing edge에 세 개의 노드가 있는 익형의 경우 다음과 같이 노드를 정렬할 수 있습니다.
# defining arrays with one row and three columns
dimension rootLeadingPoint 1 3
dimension rootTrailingPointUp 1 3
dimension rootTrailingPointLow 1 3
# 초기화 <
# initializing xmin, zmin, zmax with their opposite extremes
set xmin @xmax
set zmin @zmax
set zmax @zmin
# 초기화 >
# Looping over nodes to fine the LE
set numNodes @nnode
patbeg inode numNodes
evaluate node @ibody inode
# 조건문 <
IFTHEN @edata[1] LT xmin
set xmin @edata[1]
set rootLeadingPoint "xmin;@edata[2];@edata[3];"
set leadingNodeID inode
ENDIF
# 조건문 >
patend
# looping over nodes to find the TE
patbeg inode numNodes
IFTHEN inode NE leadingNodeID
evaluate node @ibody inode
# 조건문 <
IFTHEN @edata[3] GT zmax
set zmax @edata[3]
set rootTrailingPointUp "@edata[1];@edata[2];zmax;"
ENDIF
IFTHEN @edata[3] LT zmin
set zmin @edata[3]
set rootTrailingPointLow "@edata[1];@edata[2];zmin;"
ENDIF
# 조건문 >
ENDIF
patend
위 코드에서 **dimension**은 배열(array) 그 크기를 선언합니다.
DIMENSION $pmtrName nrow ncol
사용: 배열 매개변수를 설정하거나 차원 재 설정
그 다음, 최소값과 최대값으로 xmin, zmin, zmax를 초기화합니다. 명확한 구별을 위해 초기화 작업을 수행하는 코드 라인은 주석(# 초기화 < ~ # 초기화 >)으로 강조 표시되어 있습니다.
@nnode 명령은 현재 바디에 있는 노드의 개수를 제공합니다. @xmax, @zmax, @zmin 명령은 현재 바디의 경계 상자에서 x의 최대 값과 z의 최대/최소 값을 제공합니다. 현재 바디는 @ibody를 사용하여 접근할 수 있습니다. 노드 좌표를 얻기 위해서는 evaluate 명령을 사용합니다.
EVALUATE $type arg1 ...
사용: NODE, EDGE, FACE의 좌표 산출
evaluate 명령어 이후, 계산된 데이터는 edata 배열을 사용하여 접근할 수 있습니다.
예를 들어:
evaluate node @ibody 1
edata[1], [2], [3] 변수들은 현재 바디의 nodeid = 1의 x, y, z 좌표 값을 가지고 있습니다. 모든 노드에 대해 루프 연산을 하기 위해서 patbeg, patend를 사용합니다.
PATBEG $pmtrName ncopy
사용: ncopy 횟수 만큼 분기 블록을 실행 합니다.
CSM 스크립트 내의 조건문을 정의하기 위하여 IFTHEN, ENDIF를 사용합니다.
IFTHEN val1 $op1 val2 $op2=and val3=0 $op3=eq val4=0
사용: 분기 블록을 실행하거나 건너 뜁니다.
위의 코드의 각 루프에서 솔리드 바디의 노드 좌표 값을 연산한 후, x 좌표가 현재 xmin 값보다 작은 값을 가지면 xmin 값을 새 값으로 업데이트하고 해당 노드의 ID를 저장합니다. 이러한 방식으로 모든 노드에 대해 루프 연산을 한 뒤, x의 최대값을 xmin의 초기값으로 시작하여, x의 최소 값을 갖는 노드 ID를 찾습니다. 해당 노드의 x, y, z 좌표를 Leading edge 노드 좌표로 저장합니다. 이 조건문은 상기 코드에서 주석(# 조건문 < ~ # 조건문 >)으로 강조되어 있습니다.
나머지 노드에 대해서도 동일한 프로세스를 반복하여 z 값이 최대인 노드와 최소인 노드를 찾습니다. 위의 예제에서 이 두 조건문도 주석으로 강조되어 있습니다. 이렇게 찾아진 노드의 x, y, z 좌표를 각각 상부 Trailing edge 노드, 하부 Trailing edge 노드로 저장합니다. 이 기법을 사용하면 면을 구축할 때 노드의 좌표를 수집해야 합니다. 각 면은 솔리드 바디로 취급되므로, 면의 모든 노드에 대해서 최소 값, 최대 값 연산을 수행해야 합니다. Leading edge 노드와 Trailing edge 노드의 좌표를 배열에 저장한 후, 각 모서리에 해당하는 좌표를 사용하여 UDPRIM edgeAttr 명령어를 통해 속성을 추가합니다.
udparg edgeAttr attrname $edgeName attrstr $wingLeadingEdge
udprim edgeAttr xyzs "rootLeadingPoint[1];rootLeadingPoint[2];rootLeadingPoint[3];tipLeadingPoint[1];tipLeadingPoint[2];tipLeadingPoint[3];"
udparg edgeAttr attrname $edgeName attrstr $wingTrailingEdge
udprim edgeAttr xyzs "rootTrailingPointUp[1];rootTrailingPointUp[2];rootTrailingPointUp[3];tipTrailingPointUp[1];tipTrailingPointUp[2];tipTrailingPointUp[3];"
udparg edgeAttr attrname $edgeName attrstr $wingTrailingEdge
udprim edgeAttr xyzs "rootTrailingPointLow[1];rootTrailingPointLow[2];rootTrailingPointLow[3];tipTrailingPointLow[1];tipTrailingPointLow[2];tipTrailingPointLow[3];"
위 코드에서 udparg edgeAttr attrname $edgeName attrstr
뒤에 '$'로 시작하는 문자열이 이어지는데, 이는 UDPRIM edgeAttr에 대한 입력 인수입니다. 그런 다음 udprim edgeAttr xyzs 뒤에 두 개의 따옴표로 둘러싸인 모서리의 시작 노드와 끝 노드의 좌표가 이어집니다.
나중에 여기에 할당된 키워드 문자열을 사용하여 표면 격자 JSON 파일에서 이 모서리에 격자 매개변수의 유형과 값을 할당하는데 사용됩니다. 각 배열에서 인덱스 1, 2, 3은 각각 x, y, z를 나타냅니다.
이 방법의 어려움은 설계의 특정 위상에 따라 노드를 정렬하는 것 입니다. 예를 들어, x의 최대값과 최소값 또는 솔리드 바디에서 프로그래밍적으로 노드를 구분할 수 있는 다른 특징과 같은 것들이 달라질 수 있기 때문에 이를 고려해야 합니다.
다음 링크에서 네번째 단계의 첫 번째 방법에 해당하는 CSM 파일을 다운로드 할 수 있습니다.
om6Step4Method1.csm
위의 CSM 파일을 ESP에서 실행하여 Fig. 7.1.5의 결과를 확인할 수 있습니다.
마우스를 모서리 위에 두고 키보드에서 숫자 6을 입력하면, 모서리 속성에 대한 정보가 화면 하단 패널에 출력됩니다.
7.1.4.2 (2) 경계 상자(bounding box) 사용
이 방법에서는 모델의 x, y, z 방향에 대한 최대 값을 사용하여 경계 상자를 정의합니다. 그 다음 경계 상자 안에 있는 모든 모서리를 선택하고, 속성을 추가합니다.
select edge @xmin @xmax -0.01 0.01 @zmin @zmax
attribute edgeName $rootAirfoilEdge
select 기능에 대한 정의와 사용법은 다음과 같습니다:
SELECT $type arg1 ...
사용: @매개변수를 평가할 엔티티 선택
위 코드에서 @xmin, @xmax를 각각 최소 및 최대 x 값으로, -0.01, 0.01을 각각 최소 및 최대 y 값으로, 그리고 @zmin, @zmax를 최소 및 최대 z 값으로 하여 경계 상자를 정의했습니다. 이 경계 상자 내의 모든 모서리에는 rootAirfoilEdge라는 속성 edgeName이 할당됩니다.
다음 링크에서 네번째 단계의 두 번째 방법에 해당하는 CSM 파일을 다운로드 할 수 있습니다.
om6Step4Method2.csm
상기 CSM 파일을 ESP에서 실행하면 Fig. 7.1.6와 같이 나타납니다.
serveCSM om6Step4Method2.csm
모서리 위로 마우스 커서를 이동시킨 뒤, 숫자 6을 입력하여 edgename 속성을 메세지 패널에 출력할 수 있습니다.
7.1.4.3 (3) 모서리 ID 사용
이 방법에서 특정 모서리의 edge ID를 이미 알고 있다고 가정합니다. ID를 사용하여 모서리를 선택하고 해당 모서리에 속성을 부여합니다.
select edge 2
attribute edgeName $tipAirfoilEdge
select edge 5
attribute edgeName $tipAirfoilEdge
위 명령문에서 2와 5는 날개 Tip 모서리의 ID 입니다. 이 방법의 문제점은 모서리의 ID 번호를 항상 미리 알 수 없다는 점 입니다. 또한 일반적으로 ID를 사용해 모서리, 면, 바디를 선택하는 것은 권장되지 않는데, 이는 빌드 프로세스가 다르거나 다른 컴퓨터에서 실행되거나 ESP 버전이 다를 경우, ID가 동일하게 유지된다는 보장이 없기 때문입니다. 이 일반적인 권장 사항은 ESP 메뉴얼에서 좀 더 자세히 확인 할 수 있습니다.
다음 링크에서 네번째 단계의 세 번째 방법에 해당하는 CSM 파일을 다운로드 할 수 있습니다.
om6Step4Method3.csm
상기 CSM 파일을 ESP에서 실행하면 Fig. 7.1.7와 같이 나타납니다.
serveCSM om6Step4Method3.csm
Fig. 7.1.7에서 나타나 있듯이 모서리 속성이 제대로 추가되었는지 확인하려면 모델을 빌드한 뒤 Viz 기능을 사용해 면을 화면에서 숨기고 특정 모서리 위에 마우스 커서를 두고 숫자 6을 입력하여 메세지 패널에 출력되는 결과를 확인합니다.
7.1.5 면 및 그룹 속성 추가
바디에 대한 모서리 속성을 추가한 뒤에 면 속성을 추가해야 합니다. 면 속성은 전처리 단계에서 비정렬 격자의 조밀도를 제어하는데 사용됩니다. 그룹 속성은 여러 면들을 관련 그룹으로 묶어서 전체 객체뿐만 아니라 해당 하위 구성 요소들도 쉽게 후처리하고 분석할 수 있게 해줍니다.
전체 솔리드 바디에 면 속성을 추가하려면, 바디를 저장한 후 다시 불러와서 면 속성을 할당해야 합니다. 이렇게 하면 해당 바디의 모든 면이 동일한 면 속성을 가지게 됩니다. 그 후, 전체 솔리드 바디에 그룹 속성을 추가합니다.
전체 솔리드 바디에 면 속성을 추가하기 위해 다음과 같은 절차를 따릅니다: 1. 생성 단계 끝에서 바디를 store 합니다. 2. 바디를 restore 하여 현재 바디로 설정합니다. 3. 면 속성을 할당 합니다.
이 방식으로 해당 바디의 모든 면들은 동일한 면 속성을 가지게 됩니다.
store wingModel
restore wingModel
attribute faceName $wing
attribute groupName $wing
위 예제와 같이 면과 그룹 속성을 추가한 뒤, Root chord가 1이 되도록 스케일링하기 위해서는 다음 명령문을 사용합니다.
scale 1/0.8059 0 0 0
위 scale 명령문에 대한 정보는 다음과 같습니다.
SCALE fact xcent=0 ycent=0 zcent=0
사용: 입력한 점 위치를 기준으로 스택 상단에 있는 그룹 스케일링
다음 링크에서 다섯번째 단계에 해당하는 CSM 파일을 다운로드 할 수 있습니다.
om6Step5.csm
상기 CSM 파일을 ESP에서 실행하면 Fig. 7.1.8와 같이 나타납니다.
serveCSM om6Step5.csm
Fig. 7.1.8에서 나타나 있듯이 면 및 그룹 속성이 제대로 추가되었는지 확인하려면 모델을 빌드한 뒤 특정 면 위에 마우스 커서를 두고 숫자 6을 입력하여 메세지 패널에 출력되는 결과를 확인합니다.