【集中講座】Rhino: 解析系コマンドについて

このページではRhinoの便利な解析系コマンドの使い方をご紹介します。
解析系コマンドを使用することで、より正確で綺麗なモデリングが可能になります。
ここではよく使う解析系コマンドに絞って解説していきます。

曲線を解析する

曲線の曲率を表示する:CurvatureGraphコマンド

曲線の曲率の状態を視覚的に確認しながら曲線の編集ができるコマンドです。
CurvatureGraphコマンド(解析メニュー>曲線>曲率表示オン)を実行し、確認したい曲線を選択します。
曲率表示ダイアログが開きますので、表示スケール(ひげの長さ)、密度(ひげの密度)を見やすい数に変更します。
終了するときはダイアログ右上の×印をクリックします。

左図は曲率がスムーズに連続している状態、右図は一見滑らかに見えますが、折れ(キンク)があり、曲率連続していない状態です。ひげが途中で切れています。
曲率表示をさせたまま制御点編集を行うことで、よりきれいな曲率に整えることが可能です。

「曲率表示」ダイアログを右上×印で閉じると、曲率表示を終了できます。

ひげの見え方で連続性を確認する

  • G0(位置連続・左):ひげが途切れた表示になります。同じ点で接していますが方向も曲率も一致していません。
  • G1(接線連続・中):ひげに段差がある表示になります。接している点の方向が同じ状態です。
  • G2(曲率連続・右):ひげに切れも段差もない表示になります。接する点の方向が同じ、かつその点の曲率が連続しています。

曲率の解析を使用しきれいな曲線を用意することで、そこから作成されるサーフェスも美しく仕上がります。
曲率連続について詳しく知りたい方は下記ページもご参照ください。
Rhino: 連続性と次数

サーフェスを解析する

サーフェスを解析するコマンドでは、よく使うものとして①曲率分析(CurvatureAnalysis)、②ドラフト角度を表示(DraftAngleAnalysis)、③環境マッピング(EMap)、④ゼブラマッピング(Zebra)があります。

①曲率を色で表示:CurvatureAnalysisコマンド

曲率をカラーグラデーションで表示するコマンドです。
CurvatureAnalysisコマンド(解析メニュー>サーフェス>曲率解析)を実行し、表示させたいオブジェクトを選択します。
「曲率」ダイアログにて任意の範囲を設定することで、曲面の部分的な凹みや歪みがないか確かめたり、曲率の変化の様子をチェックしたりすることができます。

②ドラフト角度を表示:DraftAngleAnalysisコマンド

型を抜く際のアンダーカットや抜き角度を視覚的に確認するコマンドです。
詳しくはこちらのページに記載しています。
【集中講座】型を作成する時に有効な機能 – DraftAngleAnalysis、RibbonOffset について

③反射画像でサーフェスの滑らかさを確認する:EMapコマンド

サーフェスの表面に反射画像をマッピングすることで、視覚的に滑らかさを確認できるコマンドです。
EMapコマンド(解析メニュー>サーフェス>環境マッピング)を実行し、表示させたいオブジェクトを選択します。
「環境マッピングオプション」の赤枠部分をクリックすると、反射画像を変更することができます。

④縞模様でサーフェスの連続性を確認する:Zebraコマンド

縞模様を使用して、サーフェスの滑らかさと連続性を視覚的に確認することができます。
Zebraコマンド(解析メニュー>サーフェス>ゼブラマッピング)を実行し、表示させたいオブジェクトを選択します。
ゼブラオプションダイアログで縞の方向、サイズ、色などを変更できます。
縞の見え方による連続性の違いについてはこちら(Rhinoヘルプのゼブラマッピング解説)をご覧ください。

さまざまな数値を測定する

数値を測定するコマンドは以下になります。結果はコマンドヒストリに表示されます。

①点の座標値を測定する:EvaluatePtコマンド

点の座標値を測定するコマンドです(解析メニュー>点)。
点オブジェクトだけでなく、オブジェクトスナップを使って端点・中点・中心点等も測定可能です。

②曲線やエッジ長さを測定する:Lengthコマンド

曲線またはサーフェス・メッシュ・SubDのエッジの長さを測定するコマンドです(解析メニュー>長さ)。

③点同士の距離を測定する:Distanceコマンド

2つの点の間の距離を測定するコマンドです(解析メニュー>距離)。

④角度を測定する:Angleコマンド

2組の線(エッジも可)の間の角度を測定します(解析メニュー>角度)。

⑤半径を測定する:Radiusコマンド 直径を測定する:Diameterコマンド

指定した点の半径・直径を測定します(解析メニュー>半径、解析メニュー>直径)。

⑥面積を算出する:Areaコマンド

サーフェス、ポリサーフェス、ハッチング、閉じた平面曲線、メッシュの面積を算出するコマンドです(解析メニュー>マスプロパティ>面積)。
関連ページ:
Rhino,Grasshopper: 1e+09 等の表記について

⑦体積を算出する:Volumeコマンド

ソリッド・ソリッドメッシュの体積を算出するコマンドです(解析メニュー>マスプロパティ>面積)。
オープンエッジのない閉じた形状である必要があります。
関連ページ:
Rhino: 体積計算について
Rhino,Grasshopper: 1e+09 等の表記について

モデルの問題をチェック・修復する

モデルを次工程に渡す・3Dプリンタで出力する・SolidDifferenceコマンドを用いる時などに必要なのが、ソリッド状態(オープンエッジや非多様体のない閉じた形状)になっていることです。これをチェック・修復する方法です。

①オープンエッジや非多様体をチェックする:ShowEdgeコマンド

「閉じたソリッドポリサーフェス」を作成したつもりが、プロパティパネルでオブジェクト情報を見ると「開いたポリサーフェス」となっている場合は、ShowEdgesコマンド(解析メニュー>エッジツール>エッジの表示)を使ってオープンエッジを見つけることができます。分析したいオブジェクトを選択するとエッジ分析ダイアログが開くので、必要に応じて「オープンエッジ」「非多様体」を選択し、ビュー上でエッジを確認します。
非多様体について詳しくはこちら(マニホールドとノンマニホールド、こんなBREPモデルは作っちゃだめに記載)

オープンエッジを確認したら下記のいずれかの方法で修復を行います。

  1. エッジ周りを修復する
    参考:Rhinoceros: 作成済みデータの精度を上げたい、隙間を埋めたい
  2. モデルを再作成する
  3. 次のJoinEdgeコマンドを使用しエッジを結合する

②オープンエッジを結合する:JoinEdgeコマンド

許容差外の2つのオープンエッジを結合するコマンドです(解析メニュー>エッジツール>エッジを結合)。
実際にモデルの隙間が埋まるのではなく、許容差を部分的に変更することで閉じた状態とみなすというものになります。3つ以上の複数のエッジを持つオープンエッジには適用できません。
後工程で問題が発生することがあるため、こちらは最終手段として使うのにとどめ、途中段階では上記1.の方法や2.の再作成を推奨します。

③問題のあるオブジェクトを表示する:SelBadObjectsコマンド

ファイル全体のオブジェクト内から、問題のあるオブジェクトがある場合に選択してくれるコマンドです(解析メニュー>診断>破損オブジェクトを検出)。問題のオブジェクトが特定できない場合に便利です。

④問題のあるサーフェスを抽出する:ExtractBadSrfコマンド

ポリサーフェスから問題のあるサーフェスを抽出するコマンドです(解析メニュー>診断>破損オブジェクトを抽出)。
抽出したサーフェスを取り除き、再作成してJoinします。

⑤オブジェクト同士に干渉があるかチェックする:Clashコマンド

クリアランス距離を指定し、クリアランスで指定された距離よりオブジェクト間の距離が小さいと、干渉したとみなし検出してくれれるコマンドです(解析メニュー>干渉)。Rhino7から加わった新しいコマンドになります。
下記はクリアランスを1mmに設定してRとhの干渉をチェックした例です。

その他の便利な解析系コマンド

①サーフェスの法線・UV方向を確認、反転する:Dirコマンド

サーフェスの法線やUV方向を確認、編集するコマンドです(解析メニュー>方向)。
例えば SolidDifferenceコマンド(ソリッドメニュー>差)で、サーフェスを使ってソリッドの一部を削除したい場合、カッターとなるサーフェスの法線方向が残したい側に向いている必要があります
法線が残したい側に向いていない場合、削除したい側が残ってしまった例です(左:実行前、右:実行後)。

Dirコマンドで法線の向き(白い矢印)を確認し(左図)、法線が下向きになるよう「反転」オプションをクリックし反転させEnterで確定します(中図)。
その後SolidDifferenceコマンドを実行すると、意図通りの結果になります(右図)。

②オブジェクトを収める直方体を作成する:BoundingBoxコマンド

オブジェクトをすっぽり収める直方体を作成するコマンドです(解析メニュー>バウンディングボックス)。
変形系のコマンドを行うときの基準として使用するのに便利です。

複数のオブジェクトがある場合、オプションで「累積=はい」(デフォルト)にするとまとめて1つの直方体に(左図)、「累積=いいえ」にするとそれぞれ別の直方体になります(右図)。

デフォルトでは曲線によって構成された直方体になりますが、オプションで「出力=ソリッド」「出力=メッシュ」に切り替えソリッドやメッシュにすることも可能です。