図面出力に関して その1

だいぶ更新が滞ってしまった.今現在,なんやかんやで思い悩んでいた試験飛行は成功のうちに幕を下ろし,次のイベントに進みつつある
そして試験飛行での運用などなどを終えた今,前に書いた記事が「ちょっとまだ甘いな...」と思えるくらいには成長した.


今回の記事では「図面出力」に関する技術的な記事をば.


プログラムの設計ルーチンもある程度固まってきたので,3次元CADと2次元CADへの設計の出力にかんして最近力を入れてきた.そしてとりあえず完成したので記事としてまとめておきたい.

CAD化する意義は明らかだ.「作るためのマスター」である.

ただし3次元モデル化は話が違い,私は「設計に異常性がないか確認する」ことと「チームのモチベーションを上げる」ことにあると思う.
そしてさらに「「2次元図面のもと」として活用できる」ことが鳥人間コンテストに書類を提出するチームの設計者として重要だったりする.

私が用いている3DCADは大学標準のSolidWorksであり,翼やプロペラを取り込むのであれば,翼型を翼弦長に合わせて拡大,各要素に回転行列をかけて取付角を調整し,スパン方向位置を定めて,その行列を.sldcrv,つまり座標点カーブとして出力してやれば良い.

その他いろいろ,余計な機能を実装するとこんな感じになる.

主翼のアップ(ちょっとプランクからリブが飛び出ていたりするのはバグです)




                                                        • -

ちょっと詳しい解説.知ってるという人は読み飛ばして.

まずは翼型の.datファイルから.まぁよく見るこんなものがありますね.

fx76mp160
1.00000 0.00000
0.99488 0.00292
0.98668 0.00641

0.98560 0.00240
0.99413 0.00077
1.00000 0.00000

これは単位長さあたりの翼型のラインの座標点,翼前縁を(0,0),翼後縁を(1,0)としている.
だから翼弦長750mmの翼ならばこれらすべてを750倍すれば750mmの翼弦長の翼断面が完成する.
そしてもう一つ必要な情報として「この翼断面がスパン方向どの位置にあるか」というものがある.

.sldcrvは三次元の座標点カーブであるから,スパン方向位置300mm,翼弦長750mmの翼断面をSolidWorks上に出力するためには

750.00000 300.0000 0.00000

750.00000 300.0000 0.00000

みたいな感じで「test.sldcrv」みたいな感じで出力してやれば良いのだが,実際にはそんなに世の中甘くない.

人力飛行機であれば翼にはほとんどの場合桁が入る.さらには取付角(たとえば4,2°)とか捻り下げとかもある.
これを実現するためには,何らかの方法で翼型の座標中心を主桁中心にうごかし,そのあと,原点周りに回転を施してやらなければならない.
そうして加工した翼断面を,先ほど上に述べたように.sldcrvで生成し,いくつかのカーブをSolidWorksで読み込んでロフトしてやれば,翼は完成する.

実際カーブファイルと読み込んでみるとこんな感じ(点は原点)

ファイルの中身はこんな感じになる.



私はこうした一連の作業を数値計算プログラム「octave」を用いて行っている.フリーだし,プログラムはやりやすいし,ほんとオススメ.
このプログラムには翼型混合と桁位置への原点移動にpchip(「区分的 3 次元エルミート内挿多項式」,三次元スプライン補間より振動しなくて好き),
実際の.sldcrv出力にはdlmwriteのお世話になっている.


たぶんこの話はSolidWorksに限った話ではないだろう.他のCADでもたぶん同じ事だ.

                                                          • -

説明終わり.長くなったので,記事を分割して,次はPostScriptについて.