콘텐츠로 이동

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 페이지에 있는 형상 레이아웃을 기반으로 합니다. 이 형상에 대한 자세한 내용은 이 링크를 참고하세요.


Fig. 7.1.1 ESP에서 생성된 ONERA M6 Wing


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 익형 스케치를 만듭니다.


Fig. 7.1.2 Root 및 Tip 익형의 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

사용: 스플라인 커브에 점 추가
스케치 내부에서 우리는 점 단위로 스플라인을 정의합니다. 모든 점은 스플라인의 제어점으로 간주됩니다. spline 명령어는 아래에 설명되어 있습니다.


SKEND wireonly=0

사용: 스케치 끝내기
skend를 사용하여 스케치를 종료합니다.


GROUP nbody=0

사용: Mark 작업 후 변환 작업을 위해 그룹 바디 생성

STORE $name index=0 keep=0

사용: 스택 위에 그룹 저장
각 Root 및 Tip 익형에 대해 상단 및 하단 곡선을 별도로 정의합니다. 그런 다음 나중에 변환하기 위해 그룹화합니다. 또한 스택에서 검색할 수 있도록 그룹에 넣은 후 저장합니다. group 및 store 명령은 다음과 같습니다.


다음은 위 설명된 명령어에 대한 상세 내용입니다.

  1. Mark 설명
  2. SKBEG 설명
  3. SPLINE 설명
  4. SKEND 설명
  5. GROUP 설명
  6. STORE 설명


이 단계에서 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)

이 단계에서는 위에서 생성된 형상 레이아웃을 기반으로 날개 평면을 정의한 다음 스케치를 면으로 변경하고, 이를 이동 시킵니다.


Fig. 7.1.3 Root 및 Tip 면들이 생성된 날개 형상


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 축과 평행한 축을 기준으로 회전하게 합니다.
앞서 언급한 스케치를 xy 평면 상에 있으므로 스팬을 y 축에 대해 정렬하라면 x 축을 회전축으로 하여 회전 시켜야 합니다.


TRANSLATE dx dy dz

사용: 스택 제일 위쪽의 그룹을 이동시킵니다.
translate 명령어를 사용하여 Tip 스케치 그룹을 공간 상에 올바른 위치로 이동시킵니다. Root 스케치의 Leading edge 선은 원점 0, 0, 0에서 시작합니다. 그런 다음, Tip 면의 Leading edge x 좌표는 **span/tand(90-LEsweep)**이 됩니다. 날개를 y 축의 음의 방향을 따라 모델링 하므로, **-span**이 스팬 방향 좌표가 됩니다.

Note

tand(x)는 degree 단위로 x의 탄젠트를 의미합니다. 자세한 내용은 ESP 5.10: Expression Rules을 참고하세요.


COMBINE toler=0

사용: Mark 이후 바디를 상위 유형으로 결합합니다.
스케치 본체가 이동한 후에는 **combine**을 사용하여 스케치 본체에 면을 생성시킵니다.


마지막에는 나중에 restore 할 수 있도록 면을 store 합니다. 위의 두 번째 단계에 대한 CSM 파일은 다음 다운로드 링크에서 확인 할 수 있습니다.
om6Step2.csm


다음은 위 설명된 명령어에 대한 상세 내용입니다.

  1. DESPMTR 설명
  2. CONPMTR 설명
  3. RESTORE 설명
  4. JOIN 설명
  5. ROTATEX 설명
  6. TRANSLATE 설명
  7. COMBINE 설명


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 임을 나타냅니다.


Fig. 7.1.4 라운드 윙팁을 갖는 OM6 Wing 솔리드 바디


다음 링크에서 세번째 단계에 해당하는 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을 입력하면, 모서리 속성에 대한 정보가 화면 하단 패널에 출력됩니다.


Fig. 7.1.5 OM6 Wing 모델의 Leading edge 속성


  1. DIMENSION 설명
  2. EVALUATE 설명
  3. PARBEG 설명
  4. PATEND 설명
  5. IFTHEN 설명
  6. @nndoe, @xmax 등 설명

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 속성을 메세지 패널에 출력할 수 있습니다.


Fig. 7.1.6 OM6 Wing 모델의 Root 모서리애 대한 모서리 속성


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을 입력하여 메세지 패널에 출력되는 결과를 확인합니다.


Fig. 7.1.7 OM6 Wing 모델의 Tip 모서리애 대한 모서리 속성


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을 입력하여 메세지 패널에 출력되는 결과를 확인합니다.


Fig. 7.1.7 OM6 Wing 모델의 Tip 모서리애 대한 모서리 속성