コンテンツにスキップ

はじめに

  • なめらかな曲線と、丈夫な構造を3Dモデリングする
  • 3Dプリンタをターゲットにしているので、骨組み、補強材、隔壁を1点ずつ描かない
  • 「船型」モデルと「構造」モデルを別々につくって合成する
  • 各断面をLibreCADのレイヤーに記述して、FreeCADのloft機能等を使って3Dモデルにする
  • プロペラや舵板等、翼素を用いたモデリングは航空機(飛行機)の章を参照
  • 操舵室、艤装、推進機の設置のモデリングは除く

主要諸元の決定

  • 寸法 L(Length) x W(Width) x H(Height)
  • 船体重量
  • ペイロード重量
  • 喫水 等

今回は、3Dモデリングの手順の説明のため、概形寸法 L(Length) x W(Width) x H(Height)を決める。

諸元 概形寸法
Length 6,000 mm
Width 2,400 mm
Height 1,400 mm

実際にモデリングをすすめていくと、船舶には曲がった部分や凹凸等でてくるので、概形寸法としておく。

小型船舶として、4t車等で運搬できるサイズを想定し、船体を原寸3Dプリントで建造を目指す。 その他の諸元は、スパイラル型設計手法に沿って決定していく。

スケッチ・ドラフト作成

紙と鉛筆等で自由に書けばよい。スケッチ・ドラフトを描けば平行部や曲線部が見えてくるし、エンジンルーム、操舵室、貨物室等の区画も分かれてくる。そうすると必要な断面の数が決まってくる。

Note

断面は多ければ多いほど、3Dモデルは理想の形状に近づいていく。 断面が多いとモデリングに時間がかかるので、バランスを取ることが重要である。

初期の段階では断面を最小限にして、寸法以外の諸元(喫水、重量・重心、艤装品のレイアウト)の検討をすすめるのがよい。断面が少ないと船型がカクカクして格好悪いが、設計が収斂すれば、メッシュ細分化、平滑化編集ソフトを使って仕上げすることができる。必要な諸元が決まらないうちに格好を仕上げると手戻りが多く非効率である。

以下に、スケッチ・ドラフトの例を示す。

スケッチ・ドラフト

出図するタイミングでは、一般図としてまとめるとよい

製図の準備

今回は「船型」モデルと「構造」モデルの2つのモデルを合成して船体モデルをつくる。

合成前の船型モデルと構造モデルはこのようなイメージである。 船舶モデル例

図面体系

次の表のような図面ファイルを作っていく。

用途 断面図(2D)ファイル名 3Dモデルファイル名  説明
船型モデル hull-shape.svg hull-shape.FCStd なめらかな線はSVG形式を使う
構造モデル hull-structure.dxf hull-structure.FCStd 直線はDXF形式を使う

構造モデルのフィレット等は、船体モデルに合成したあとに行なう

基準点、向き

艤装品のアレンジは、今回は除外しているが、複数図面を同時進行するため 「基準点」と「断面の位置」を共通化しておく

今回は次の通り共通化しておく

Note

  • 基準点(0,0)は防火壁後面下部とする
  • 断面の位置は、基準点からの長さでaft方向がマイナス(-)、bow方向がプラス(+)

レイヤー名のルール

2D CADのx-y座標に対して、z座標を指定する。FreeCADで指定することもできるが、レイヤー名のルールを決めてPythonスクリプトで自動設定することが目的としている。またレイヤー名から断面の位置もわかりやすい。

Note

任意の名称-z+9999(寸法マイナスの場合は、任意の名称-z-9999)

レイヤーリストの例

これで製図の準備は整った。次にCADを使った製図を進めていこう。

断面形状作成

LibreCADを使って断面形状を製図していく。FreeCADにインポートしたときに断面が閉じた面として認識されると無駄がない。そのため断面は ポリライン(Polyline) で製図する。 ライン(Line)とスナップ機能を使ってLibreCAD上は閉じた面を作ったとしても、FreeCADでは閉じた面として扱われない。

船体外板に沿ってなめらかな構造を描きたい場合は、スプライン(Spline) を使って製図する。閉じた面を全てスプラインで製図することがポイントである。直線もあえてSplineで描くようにする。ポリラインとスプラインをスナップ機能で繋いでLibreCAD上は閉じた面となっていても、FreeCADでは閉じた面にならない。FreeCADに取り込んだあとでもDraft機能で修正はできるのだが、最初からポリラインで断面を作っておこうという話しである。

3D化前処理

断面形状を完成させたら、次に3D化するための前処理を行う。今回の前処理はz座標を追加するのみである。 ここをできる限り自動化できれば、スパイラル型設計の効率化が期待される。

このあとFreeCADでのモデリング・操作の説明を行なう。GUIでの操作の説明となるが、FreeCADにはPythonスクリプトの機能もあるので、ある程度製図の作業パターンが固まってくれば、それを活用して自動化を行なうことができる。

Note

AIの活用でPythonスクリプトは作りやすくなった。作業要領や手順を言語化できればベースをAIに作って微調整を行えばよい。

3Dモデリング

FreeCADでは、断面形状を3次元空間に投影して立体を作成する。この操作は「extrude」(拡張)または「loft」(ロフト)を使用することで行う。

「extrude」(拡張)の例

「loft」(ロフト)の例

「extrude」(拡張)または「loft」(ロフト)は閉じた面である必要がある。面が閉じていなければエラーになる。その場合はLibreCADでポリライン(Polyline)で製図されているか確認する。

次に開口部をあけたいので、論理演算を使って行なう。

論理演算の例

これで3Dモデルは概ねできた。船首楼は少し格好良いものにしたかったので、他の手順で作成する(本書では紹介しない)

設計・検証

まず重心をみてみる。材質が均質もしくは同じ比重という前提での重心である。 重心がよさそうであれば、材質を決めて重量を出す。そうすれば喫水がわかってくる。

次の画像は重心(center of gravity)計算の例である。重心計算には、FreeCADのマクロFCInfoを使っている。 重心計算の例

3Dプリント

重心、重量、喫水が期待通りであれば、ここで3Dプリントしてみるのもよい。 FreeCADの空間でシュミュレーションを続けてみることもできるが、 ミニチュアを3Dプリントして、実際に水槽に浮かべてみると検証がはかどる。 乗員人形をつくって船首、甲板、船尾等色々なところに載せたり、定員分載せたりする。 艤装品もミニチュアバラストでシュミュレートして、ピッチトリムや喫水とか実際にちゃんと浮いて安定性の確認をすることができる。

3Dプリントの方が、3Dモデル空間での物理シュミュレーションより検証しやすいし、物理シュミュレーションの計算ミス等を気にする必要がない。

まとめ

船舶モデリングのガイドとして概要・流れを紹介した。モデルケースはあくまでも架空のプロジェクトである。 LibreCADやFreeCADの詳細な操作方法はほとんど割愛している。

対象物(船舶)の3Dモデルを制作フローと図面の運用ルール、それに合わせたCADツールの組み合わせの例として参考にして頂きたい。

船舶の断面はおもて-ともの方向で描いていったが、もしかしたら客船等は、フロアーデッキ毎の断面で描いた方がよいかもしれない。

まだ工夫の余地はあるが、制作の流れはこのような感じである。次の章以降では3Dモデリングのための様々な手法を検討していく。