2010-12-07

Rhinocerosで画像からwing gridを作る

準備

元画像(たとえば翅を広げた蝶を背中から見た平面図、など)を用意する。フォーマットはビットマップ (.bmp)。

前処理

たとえば、Irfan Viewで必要な範囲だけ選択 → crop (Ctrl+Y) し、Ctrl+Eでフィルタ選択画面へ。Find Edgesをlevel 5とかでかけてエッジを強調する。Sを押して別名で保存 → ビットマップ (.bmp) で保存。

あるいは、GIMPでDBPを使って複数の(連番)ファイルにunsharp maskをかける など。

Rhinoceros での作業

色の設定

白黒画像に対して黒い線は見づらいので、まず色を変える。メニューの File > Properties... から、

Rhino Options > Appearance > Colors > Selected objects
の右の色をクリックして変更。

Rhino Options > Appearance > Advanced Settings > Wireframe > Objects > Control polygon color
を Use fixed color にし、すぐ下の色をクリックして変更。

Rhino Options > Appearance > Advanced Settings > Wireframe > Objects > Curves > Curve color usage
を Use single color for all curves にし、すぐ下の色をクリックして変更。

グリッドの設定

後で書く。

基本操作

Rhinocerosを起動。Top とある左上のペイン(上面図)をクリック。メニューから「View > Maximize」で最大化。マウスホイールで視点を拡大縮小できる。キャンバスが全部見えるくらいまで縮小しておく。ウィンドウ下の Snap をクリックしておく(グリッドにスナップする)。右ドラッグで画面移動できるのを覚えておく。また、Spaceキーで直前の動作を再実行できる。これを知らないと死ぬ。

画像の配置

メニューの「View > Background Bitmap > Place」で画像を選ぶ。すると上の方のコマンドバー(?)に「画像を置く四角の始点を指定しろ」と出る。始点をキャンバス
左上中央、原点に指定し、終点は
画像が最大になるようにとるキャンバスの右端になるように、右下に向かって図を拡大する。こうすると1ピクセルが1mmに対応して、DippMotionなど他のソフトとの連携がしやすくなる、はず。ビットマップが(グレースケールで)置かれる。必要なら「View > Background Bitmap > Grayscale」を外せばカラーになる。

プロット

メニューの Curve を多用する。

外形のみ抽出する場合

TBD.

芯線と半径を取得する場合 (UPDATE 2014-11-28)

レイヤーを適宜利用すると楽。
  1. 外形を Control Point Curve で適当にトレースする。点数はいくら多くてもいいので、それなりにリアルに引いておくとよい
  2. 基準線を引く。下記の垂線が取れるように。ただし、CFDするのだから前縁後縁をどう配置するかも考えながら決める(この取り方次第ではうまくいかなくて、やり直しもあり得る)
  3. 基準線を適当な数に分割。60とか。これは目安
  4. 基準線から、垂線を適当に一本引く
  5. (オプショナル)背景を隠す
  6. 垂線を、両側に十分長く(どこに平行移動しても外形線を超えるように)延長する
  7. 垂線を、offset (平行移動コピー)しまくる。コマンドバーの"Distance="の部分をクリックすると距離を変えられるので使う(コマンドでdをタイプしてもいい)。Spaceキーあるいは右クリックによる (redo) も当然利用。このとき、基準線上の点を目安に使う。厳密に従う必要はない
  8. 基準線と、基準線上の点を別レイヤーにして不可視化しておく
  9. 垂線の、外形線からはみ出た部分を、外形線を利用して trim する
  10. (オプショナル)外形の曲率が大きな箇所(直線的な変化でない箇所)に垂線をたくさんひいたりして手直し
  11. 外形線をレイヤーで不可視化
  12. 残った直径にあたる線を全選択し、 Curve > Point Object >Divide Curve by > Number of segments で MarkEnds=Yes にして 2 で分割。これで一気に端点と中点が得られる
  13. 点を全て選択して「Export selected > .txt」すれば座標データが得られる。あるいは芯線データと外径点を分けて export してもよい

No comments: