최종 수정: 2026-08-03 읽기 약 19분

1. 개요

BladeXtractor는 축류 압축기/터빈의 3차원 블레이드 CAD 파일에서 프로파일(Airfoil) 점 좌표를 추출하는 도구입니다.

이런 경우에 사용합니다.

터보기계 블레이드 작업을 하다 보면, 3D CAD 형상은 있지만 정확한 에어포일 점 좌표가 필요한 경우가 자주 있습니다:

  • 역설계 (Reverse Engineering): 기존 블레이드의 형상을 분석하여 설계 파라미터를 추출하거나, 새로운 설계의 기초 데이터로 활용
  • CFD 격자 생성: 전산유체역학 해석을 위한 격자 생성 시, 정확한 블레이드 표면 점 좌표가 필요
  • 블레이드 설계 검증: CAD 모델이 설계 의도대로 생성되었는지 단면 형상을 확인
  • 타 소프트웨어 연동: 다른 터보기계 설계/해석 도구로 형상 데이터를 전달

BladeXtractor는 STEP 파일로부터 원하는 Span 위치의 에어포일 단면을 자동으로 추출하여, 바로 사용 가능한 점 좌표 데이터로 변환해 줍니다.

작동 원리

  1. 블레이드 STEP 파일 로드: 기존 3D 블레이드 형상 로드
  2. Hub/Shroud 곡선 로드: 자오면(meridional plane)의 유로 형상 정의
  3. Stream Surface 생성: 지정된 Span 위치에서 Hub-Shroud를 연결하는 회전면 생성
  4. 교차선 추출: 블레이드와 Stream Surface의 교차선(Airfoil) 계산
  5. 점 좌표 출력: 교차선을 균등 분할하여 3D 점 좌표 출력
code
                          Shroud
                        ──
                       ╱  ╲
                      ╱────╲  ← Stream Surface (span=0.5)
                     ╱      ╲
                    ╱        ╲
              Hub  ╱──────────╲
                     ← Z축 (회전축) →

출력 형식

  • Ansys® TurboGrid®와 호환되는 .curve 포맷
  • 각 Span별 301개 점 (closed loop: TE → LE → TE)
  • Hub/Shroud 메리디오날 곡선 (유로 전체 범위)

2. 시스템 요구사항

  • Windows 10/11 (64-bit)
  • 디스플레이: 1280x800 이상 권장

프로그램 파일

파일설명
bladextractor.exeGUI 프로그램
bladextractor-cli.exe명령줄 프로그램

3. 입력 파일 준비

3.1 블레이드 STEP 파일

  • 형식: STEP (*.stp, *.step)
  • 좌표계: Z축이 회전축
  • 단위: mm (밀리미터)

참고: 블레이드는 단일 블레이드(Single blade)여야 합니다. 전체 로터/스테이터 어셈블리는 지원하지 않습니다.

3.2 Hub/Shroud CSV 파일

자오면(meridional plane)에서 Hub와 Shroud의 반경 분포를 정의합니다.

CSV 형식:

csv
z, r_hub, r_shroud
0.0, 50.0, 150.0
10.0, 52.0, 148.0
20.0, 55.0, 145.0
...
컬럼설명단위
z축 방향 좌표mm
r_hubHub 반경mm
r_shroudShroud 반경mm

요구사항:

  • 첫 번째 행은 헤더 (무시됨)
  • Z 값은 정렬되어 있을 필요 없음 (자동 정렬)
  • Z 범위는 블레이드 Z 범위를 포함해야 함

CSV Scale Factor:

  • CSV 단위가 블레이드 단위와 다른 경우 사용
  • 예: CSV가 미터(m) 단위이고 블레이드가 밀리미터(mm)인 경우 → Scale Factor = 1000

3.3 유동 방향 (Flow Direction)

유동이 Z축의 어느 방향으로 흐르는지 지정합니다:

설정설명
+ZLeading Edge가 Z 최소값에 위치 (기본값)
-ZLeading Edge가 Z 최대값에 위치
code
+Z 유동 방향:
    LE ─────── Blade ─────── TE
   Z_min                    Z_max
    ← 유동 입구             유동 출구 →

-Z 유동 방향:
    TE ─────── Blade ─────── LE
   Z_min                    Z_max
    ← 유동 출구             유동 입구 →

4. GUI 사용법

4.1 프로그램 실행

bladextractor.exe를 실행합니다.

4.2 화면 구성

메인화면

4.3 기본 워크플로우

Step 1: 블레이드 로드

  1. File > Open Blade... 클릭 (또는 좌측 패널의 [...] 버튼)
  2. STEP 파일 선택
  3. 3D 뷰어에 블레이드가 표시됨

Step 2: Hub/Shroud CSV 로드

  1. File > Open Hub/Shroud CSV... 클릭
  2. CSV 파일 선택
  3. Hub(파란색)와 Shroud(빨간색) 곡선이 표시됨

Step 3: 파라미터 설정

CSV Scale:

  • CSV 단위가 블레이드와 같으면 1.0
  • CSV가 미터(m)이고 블레이드가 mm이면 1000.0

Flow Direction:

  • LE가 Z 최소에 있으면 +Z (LE at min Z)
  • LE가 Z 최대에 있으면 -Z (LE at max Z)

Span List:

  • 추출할 Span 위치 지정 (0.0 = Hub, 1.0 = Shroud)
  • 값 입력 후 Add 클릭
  • 11 spans 버튼: 0.0, 0.1, 0.2, ... 1.0 자동 추가
  • 항목 선택 후 Remove 클릭하여 삭제

Z Range:

  • 블레이드 Z 범위가 자동 표시됨
  • 필요시 수동 조정 (Hub/Shroud 곡선의 유효 범위와 맞춤)

Step 4: 프로파일 추출

  1. Export Profiles 버튼 클릭
  2. 출력 폴더 선택
  3. 프로젝트 이름 입력
  4. 처리 진행률 표시
  5. 완료 메시지 확인

4.4 3D 뷰 조작

마우스:

  • 왼쪽 드래그: 회전
  • 가운데 드래그: 이동
  • 휠: 줌

뷰 버튼:

버튼기능
+X, -X, +Y, -Y, +Z, -Z정면도
ISO등각 투상도
Fit전체 보기

4.5 설정 저장/불러오기

File > Save Config...: 현재 설정을 JSON 파일로 저장 File > Open Config...: JSON 설정 파일 불러오기

설정 파일을 저장하면 CLI에서 동일한 설정으로 배치 처리 가능


5. CLI 사용법

5.1 기본 사용법

cmd
bladextractor-cli.exe config.json

5.2 JSON 설정 파일

json
{
    "bladeStep": "blade.stp",
    "hubShroudCsv": "flowpath.csv",
    "csvScaleFactor": 1.0,
    "spans": [0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0],
    "flowDirection": "+z",
    "spanBoundaryMargin": 0.01,
    "zRange": {
        "auto": true,
        "marginPercent": 15.0,
        "min": 0.0,
        "max": 100.0
    },
    "output": {
        "directory": "output",
        "projectName": "MyBlade",
        "debugStep": true,
        "saveLog": false
    }
}

5.3 설정 옵션 상세

입력 파일

설명기본값
bladeStep블레이드 STEP 파일 경로(필수)
hubShroudCsvHub/Shroud CSV 파일 경로(필수)
csvScaleFactorCSV 좌표 스케일1.0

Span 설정

설명기본값
spans추출할 Span 목록 (0.0~1.0)(필수)
spanBoundaryMarginHub/Shroud 경계 마진0.01

spanBoundaryMargin: span=0.0 또는 1.0에서 발생할 수 있는 수치 오류 방지. 예: 0.01이면 span=0.0은 0.01로, span=1.0은 0.99로 처리

유동 방향

설명기본값
flowDirection"+z" 또는 "-z""+z"

Z 범위

설명기본값
zRange.autoZ 범위 자동 계산true
zRange.marginPercent자동 Z 범위 마진 (%)15.0
zRange.min수동 Z 최소값 (auto=false 시)-
zRange.max수동 Z 최대값 (auto=false 시)-

auto=true: 블레이드 Z 범위에 marginPercent를 추가하여 자동 계산 auto=false: min/max 값을 직접 지정

출력 설정

설명기본값
output.directory출력 폴더"output"
output.projectName프로젝트 이름STEP 파일명
output.debugStep디버그용 STEP 출력true
output.saveLog로그 파일 저장false

5.4 실행 예시

cmd
> bladextractor-cli.exe config_rotor.json

[info] BladeXtractor v0.5.0
[info] Config loaded: config_rotor.json
[info]   Blade: NASA_Rotor38.stp
[info]   CSV: FlowPath.csv
[info]   Spans: 11
[info]   Flow direction: +z
[info] Loading blade STEP file...
[info] Loading hub/shroud CSV...
[info] Processing span 0.00...
[info] Processing span 0.10...
...
[info] Profile extraction complete.

6. 출력 파일

6.1 출력 폴더 구조

code
output/
├── MyBlade.curve          # 블레이드 프로파일 (모든 Span)
├── MyBlade_hub.curve      # Hub 메리디오날 곡선
├── MyBlade_shroud.curve   # Shroud 메리디오날 곡선
├── MyBlade_debug.stp      # 디버그용 STEP (옵션)
└── MyBlade.log            # 실행 로그 (옵션)

6.2 블레이드 프로파일 (.curve)

code
## Blade profiles   MyBlade
# Section no.  1
    1.23456789E+01    6.78901234E+01    1.11111111E+02
    1.23556789E+01    6.78801234E+01    1.11121111E+02
    ...
# Section no.  2
    ...

형식:

  • 헤더: ## Blade profiles <프로젝트명>
  • 섹션 헤더: # Section no. <번호>
  • 좌표: X, Y, Z (과학적 표기법, 탭 구분)

특징:

  • 각 섹션당 301개 점 (연산 결괄에 따라 달라질 수 있음.)
  • Closed loop: 첫 점 = 마지막 점
  • 점 순서: TE → LE → TE (반시계 방향)

6.3 Hub/Shroud 곡선 (.curve)

code
    5.00000000E+01    1.23456789E+01    0.00000000E+00
    5.20000000E+01    1.23556789E+01    1.00000000E+01
    ...

형식: X, Y, Z 좌표만 (헤더 없음)

특징:

  • 약 229개 점 (연산 결과에 따라 달라질 수 있음.)
  • 블레이드 Camber line을 따라 theta 분포
  • Inlet/Outlet 영역은 TE/LE의 theta 유지

7. 문제 해결

7.1 "No intersection found"

원인: Stream Surface와 블레이드가 교차하지 않음

해결책:

  1. Z Range가 블레이드 범위와 맞는지 확인
  2. CSV의 Z 범위가 블레이드 Z 범위를 포함하는지 확인
  3. Flow Direction이 올바른지 확인

7.2 프로파일이 비정상적으로 보임

원인: 유동 방향 또는 Z 범위 설정 오류

해결책:

  1. Flow Direction 변경 (+Z ↔ -Z)
  2. Z Range 수동 조정
  3. spanBoundaryMargin 증가 (예: 0.01 → 0.02)

7.3 CSV 로드 실패

원인: CSV 형식 오류

확인사항:

  • 컬럼 구분자가 쉼표(,)인지 확인
  • 헤더 행이 있는지 확인
  • 숫자에 불필요한 문자가 없는지 확인

7.4 Hub/Shroud 곡선이 비정상

원인: CSV Scale Factor 오류

해결책:

  • CSV 단위와 블레이드 단위 확인
  • Scale Factor 조정

8. 기술 지원


9. 면책 조항

라이선스

본 소프트웨어는 Freeware로 무료로 사용할 수 있습니다.

보증 부인

본 소프트웨어는 "있는 그대로(AS IS)" 제공되며, 명시적이든 묵시적이든 어떠한 종류의 보증도 하지 않습니다. 여기에는 상품성, 특정 목적에의 적합성, 비침해성에 대한 묵시적 보증이 포함되지만 이에 국한되지 않습니다.

어떠한 경우에도 개발자 또는 저작권자는 본 소프트웨어의 사용 또는 사용 불능으로 인해 발생하는 직접적, 간접적, 우발적, 특수적, 징벌적 또는 결과적 손해에 대해 책임을 지지 않습니다.

사용자는 본 소프트웨어를 자신의 책임 하에 사용하며, 소프트웨어 사용으로 인한 모든 결과에 대해 전적으로 책임을 집니다.

상표 고지

  • Ansys, TurboGrid는 ANSYS, Inc. 또는 그 자회사의 미국 및 기타 국가에서의 등록 상표 또는 상표입니다.
  • **CLEW, Inc.**는 ANSYS, Inc.와 제휴, 후원, 승인 또는 기타 어떠한 관계도 없습니다.
  • 본 문서에서 언급된 기타 모든 상표는 해당 소유자의 자산입니다.

부록 A: 예제 설정 파일

A.1 NASA Rotor 38

json
{
    "bladeStep": "NASA_Rotor38_Blade_Surface.stp",
    "hubShroudCsv": "NASA_Stage38_FlowPath.csv",
    "csvScaleFactor": 1.0,
    "spans": [0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 0.95, 1.0],
    "flowDirection": "+z",
    "spanBoundaryMargin": 0.01,
    "zRange": {
        "auto": false,
        "marginPercent": 25.0,
        "max": 71.8,
        "min": -10.7
    },
    "output": {
        "directory": "output",
        "projectName": "Rotor38",
        "debugStep": true,
        "saveLog": true
    }
}

A.2 간단한 설정 (자동 Z 범위)

json
{
    "bladeStep": "my_blade.stp",
    "hubShroudCsv": "flowpath.csv",
    "spans": [0.0, 0.5, 1.0],
    "output": {
        "projectName": "MyBlade"
    }
}