Fusion Wing Importer
Flow5/XFLR5の解析データからAutodesk Fusion上に3D翼モデルを自動生成するアドイン
使用技術
プロジェクト概要
低レイノルズ数帯専用の流体解析ソフト(Flow5やXFLR5)で設計した3次元翼の解析データ(XMLおよびDATファイル)を読み込み、utodesk Fusionの3D空間上にソリッドモデルを自動生成するPythonアドインです。
今までは、尾翼設計の際に機体全体の慣性モーメントをFusionで求めることから、機体の全体モデリングを手作業で行う必要がありました。そこで、手作業で行うと非常に手間のかかる各翼型の配置やロフトの作業を完全に自動化し、空力設計からCADモデリングへのシームレスな移行を実現しました。
- 使用言語: Python
- 使用API・ライブラリ: Fusion API(adsk.core, adsk.fusion, xml.etree.ElementTree)
- 主な機能: XMLデータのパース、翼型座標データ(.dat)の読み込み、3D空間への座標変換、ロフトによるソリッドボディ生成、自動ミラーリング
技術的な工夫とアーキテクチャ
単にデータを読み込むだけでなく、CADソフトウェア特有の挙動や、解析データに含まれるエラーを吸収するための工夫を随所に盛り込みました。
1. 空間座標系の変換と姿勢制御の自動計算
XMLから取得した翼の各セクション情報(翼弦長、オフセット、上反角、ねじり下げ角)を基に、2Dの翼型座標(.dat)を3D空間へ正確にマッピングする数学的な変換処理を実装しました。コード長の25%位置をピボットとしたねじりの回転や、前区間の上反角の累積によるZ座標の算出などを自動で行います。
2. 波打ちを防止する「区間ごとの線形ロフト」処理
Fusionの標準機能で全ての断面を一度にロフト(面張り)すると、スプライン補間によって予期せぬ曲面の波打ちが発生してしまいます。これを防ぐため、隣り合う2つの断面ごとに個別のロフトフィーチャーを作成し、それらを順次結合していくアルゴリズムを採用しました。これにより、実機や解析モデルに忠実な直線的なテーパ面を再現しています。
3. 解析データのエッジケースに対応するフェールセーフ機構
外部の解析ソフトから出力された翼型データ(.dat)は、後縁がわずかに開いていることがあり、そのままではCAD上で閉じたプロファイルとして認識されません。この問題に対処するため、スプライン曲線の始点と終点の距離を計算し、微小な隙間がある場合は自動的に直線で閉じるフェールセーフ処理を実装し、ロフトエラーを未然に防いでいます。
4. UXを考慮したUI設計
処理時間が長くなるロフト生成中にはプログレスバーを表示し、ユーザーが進行状況を把握できるようにしました。
主翼・水平尾翼などの「左右対称なパーツ」と、垂直尾翼などの「非対称なパーツ」を作り分けるため、インポート時にミラーリングの要否を尋ねるダイアログを実装し、ワンクリックで結合まで完了するフローを構築しました。
今後の改善点と展望
- スプライン制御点の最適化(軽量化): 現在は.datファイルに含まれるすべての座標をスプラインの制御点として読み込んでいますが、データポイントが過剰に多いとFusionの動作が重くなる場合があります。今後は、曲率の変化が少ない部分のデータポイントを間引くスムージングアルゴリズムを導入し、CADデータの軽量化を図りたいと考えています。
- ガイドレールのサポート: ウィングレット(翼端の立ち上がり)などの特殊で複雑な形状をより美しく再現するため、単なる直線ロフトだけでなく、前縁・後縁のガイドレール曲線を自動生成してロフトに適用する機能の追加を構想しています。
関連プロジェクト
大規模データ向け高速類似文字列検索システムの実装
100万件のデータから編集距離3以内の類似文字列を高速検索するシステム。階層的フィルタリングとMyersのビット並列アルゴリズムをC言語で実装し、精度100%と実行速度の最適化を両立。
OpenCVを用いた古典的なリアルタイム動体検知アプリケーション
ビデオソース内の特定の領域(ROI)を監視し、動きを記録する動体検知アプリケーション。移動平均を用いた背景モデルの構築、モルフォロジー変換によるノイズ除去、デバウンス処理を取り入れたステートマシンによるイベント管理を実装。
XFOIL 3D
XFOILを用いた翼型の3次元極曲線を計算・可視化するCLIツール