前回は「Gazebo/MoveIt のための 3D モデリング(6)滑らかなサーフェス – 作成編(その1)」として Rhinoceros のコマンドを利用した滑らかなサーフェスの作成例を紹介しました.
今回は NURBS の次数と制御点を少し意識したサーフェスの作成方法について説明します.
側面視(Rhinoceros の Back ビュー)に線があるのでこれをサーフェスの1辺とします.このサーフェスの1辺に相当する線を「直線(Line)」で描画します.
また洗濯機側面後部の辺を「エッジを複製(DupEdge)」で複製します.
そして「洗濯機側面後部の辺を複製した曲線」の「サーフェスの1辺に相当する線」よりも高い部分を「トリム(Trim)」します.
ブレンド曲線を「曲線ブレンド(調整) (BlendCrv)」で描画します.
ブレンド曲線の描画中にビューを洗濯機正面(Rhinoceros の Right ビュー)に移動して図面上の洗濯機上部角部形状に沿うように制御点の調整をしてからブレンド曲線の描画の確定をします.
結果, 5点4次 の NURBS 曲線になります.
「曲線を押し出し(ExtrudeCrv)」でサーフェスを作成します.
洗濯機上面と側面間のサーフェス作成で使ったプロファイル曲線をコピー移動して洗濯機前面と側面間のサーフェスも作成します.
洗濯機前面は球面サーフェスですので平断面でトリムすると円になりますのでその円の中心を通る Y軸 と平行な軸回りにプロファイル曲線を「回転(Revolve)」します.
洗濯機前面サーフェスをこれまで作成してきた洗濯機ソリッドモデルから「サーフェスを抽出(ExtractSrf)」して新規サーフェスの作成作業を失敗しても元ソリッドに影響がないようにしておき,また洗濯機ソリッドモデルは「非表示」か「ロック」状態にしておきます.
洗濯機前面サーフェスのトリムをします.洗濯機上面と側面間のサーフェスの上端のエッジを「複製(DupEdge)」した曲線で上面視(Top ビュー)でトリムします.
前述のようにここでトリムされた前面サーフェスのエッジは円弧ですので,洗濯機側面視(Rhinoceros の Back ビュー)で Osnap の「中心点」をチェックして「円(Circle)」を描画します.この円弧エッジをクリックすることで中心点を選択してこの円弧の端点をクリックして半径を決定します.
円を描画したら「回転(Revolve)」でサーフェスを作成するプロファイル曲線の配置が容易なのと洗濯機前面付近のみサーフェスを作成したいので,円の中心から水平に直線を描画して円の下半分をトリムします.
円の前端部にサーフェスのプロファイル曲線を配置します.「コピー(Copy)」して「回転(Rotate)」しても良いですし,前回の記事で利用した「3点指定配置(Orient3Pt)」でコピー配置しても良いです.
「回転(Revolve)」を使ってプロファイル曲線を円の中心を通る Y軸 に並行な軸回りに 0° から洗濯機上面より高い位置までサーフェスが作成するよう角度を指定してサーフェスを作成します.
洗濯機前面下部のサーフェスが上部サーフェスを Z=350mm の面で「ミラー(Mirror)」したものであるのと同様に洗濯機前面と側面間のサーフェスもミラー反転するとともに Z=350mm でトリムして「結合(Join)」します.
前回の記事までで作成した洗濯機ソリッドモデルのサーフェスをトリムしたものに置き換えるなどして今回新しく作成したサーフェスと「結合(Join)」したポリサーフェスが右の図です.
結合したポリサーフェスでは「エッジを表示(ShowEdges)」で洗濯機前面・側面・上面の交わる頂点付近に隙間が確認できますが,この箇所は後でフィレットサーフェスを作成して閉じるので,ここでは暫定的に各辺の交点を結んだ直線で洗濯機側面視で両サーフェスをトリムしています.
互いが同じサーフェスに接続する曲率変化率連続のサーフェス同士の場合,サーフェスの交差角度が浅すぎて交わる曲線を Rhinoceros が計算できないことがあります.サーフェスを細分しながら交線を計算させたり,計算できた範囲の交線と大体それらしい曲線を手動で描画したりして閉じたポリサーフェスにすることも可能ですが,今回は最終的には使わないトリムラインですので暫定的にオープンエッジにしています.
前回の記事の四角いボタンのモデリングでは「曲率連続フィレットサーフェス」を作成し,また丸いボタンの角部は「曲率変化率連続曲線」を「回転(Revolve)」して「曲率変化率連続のフィレットサーフェス」を作成しました.
ここでは前回の丸いボタンの方法の応用として「曲率変化率連続曲線」を「曲線を押し出し(ExtrudeCrv)」し,また「制御点を編集した曲率変化率連続曲線」を「回転(Revolve)」して「曲率変化率連続フィレットサーフェス」を作成します.
まずは洗濯機上面と側面コーナー部の間に「曲率変化率連続のフィレットサーフェス」を作成します.先述のコーナー部の大きめのサーフェスと同じように曲率変化率連続のプロファイル曲線を作成して「曲線を押し出し(ExtrudeCrv)」でサーフェスにします.
プロファイル曲線は洗濯機の上面図にフィレットの長辺の線が見られるのでそれを目安にして両端の接続条件「G3(曲率変化率連続)」にて 8点7次 の曲線を描画します.
プロファイル曲線を「曲線を押し出し(ExtrudeCrv)」してフィレットサーフェスを作成します.
次に洗濯機前面と側面コーナー部の間に「曲率変化率連続のフィレットサーフェス」を作成します.これもコーナー部の大きめのサーフェスと同じように曲率変化率連続のプロファイル曲線を作成して「回転(Revolve)」でサーフェスにします.
先程の “洗濯機上面と側面コーナー部の間に「曲率変化率連続のフィレットサーフェス」” のプロファイル曲線をコピー配置します.
洗濯機前面の球面サーフェスに曲率変化率連続で接続するので曲線の修正が必要で,次の図にあるような側面コーナー部形状と洗濯機前面の形状の両方に曲線変化率連続接続するプロファイル曲線にします.
また,修正したプロファイル曲線が元のプロファイル曲線と同じような制御点配置をしていると後の記事で取り上げる両フィレットサーフェス間をつなぐフィレットサーフェスを作成するときに便利なので制御点の Y方向位置 を揃えるようにします.
制御点の Y方向位置 を揃えるための補助線を描画しておきます.
プロファイル曲線の修正の方法は主に2つの方法「再構築的方法」と「修正+調整的方法」があるのではないかと考えています.
8点7次 の曲線のようなブレンド曲線(BlendCrv)の機能に備わっているのと同じ曲線の場合は「再構築的方法」を用いて,曲線の次数+1個よりも多い制御点を持つようなブレンド曲線(BlendCrv)の機能に備わっていない曲線の場合は「修正+調整的方法」を用いると比較的整った曲線ができるのではないかと思います.
「修正+調整的方法」はサーフェスのマッチング修正でも同様のことを3次元的に行います.これは次回の記事で紹介する予定ですので,予習的に今回の2次元上での調整方法を体験しておくのも良いかもしれません.
プロファイル曲線ができてしまえば後は洗濯機の上面と側面のコーナー部サーフェスと同じ軸回りの「回転(Revolve)」と「ミラー(Mirror)」を実行して適切にトリム・結合するとフィレットサーフェス作成は終了です.
ここでも暫定的にオープンエッジを残しています.
一部のサーフェスを曲率分析(CurvatureAnalysis)したときのキャプチャ画像が次の図です.
洗濯機の前面と上面の間の少し大きめのフィレットサーフェスと洗濯機前面の上下のミラー反転されているサーフェス間の大きめのフィレットサーフェスもこれまで紹介してきた方法と同様に曲率変化率連続のサーフェスとして作成しますので,大まかに紹介します.
フィレットを架けるサーフェスを洗濯機のポリサーフェスから抽出して編集します.
右の図は洗濯機両サイドのフィレットエッジの Y座標 で新規作成した2つのフィレットサーフェスをトリムして結合したものです.
洗濯機全体のポリサーフェスのうち洗濯機前面と上面のサーフェスをフィレットを追加したポリサーフェスで置き換えて結合して「エッジを表示(ShowEdges)」したのが右の図です.
まだ暫定的に隙間を開けたままにしています.
さらにレンダリング表示をしてキャプチャした画像が右の図です.
だいぶ洗濯機本体の細かいサーフェスも作成できてきたように思います.
今回の記事はここまでです.
本シリーズ次回の記事は
「Gazebo/MoveIt のための 3D モデリング(8)滑らかなサーフェス – 作成編(その3)」
として,今回は暫定的に隙間を開けてしまっている部分を塞ぐサーフェスの作成をする過程で
について説明する予定です.
コメントを投稿するにはログインしてください。
著者について