船舶海洋製図演習における船殻および線図作成システムの開発
学生会員

村田 昂矢*

正 会 員

木村 元**A Development of Ship-Hull and Lines Generator System for Technical Drawing Exercises
byKoya Murata, Student Member

Hajime Kimura, Member

Key Words: 3D printer,Ship-Hull,Lines,X3D,Spline

1. 緒言

九州大学の船舶海洋製図演習において，線図作成および各種計算を支援するためのシステムを開発したため報告する．九州大学では学部三年次において，船舶製図教育の一環として，一隻の船の製図を行っている．全長90[m]～100[m]程度の範囲内で船種，主要目等を過去に実際に建造された船を参考にしながら決定し，線図（lines）の作成，排水量や復元力などの諸計算，概略一般配置図，重量分布図，荷重分布図の作成，強度計算などを行う．
本システムではこれらのうち，線図の作成および排水量，浮心位置，復元力等の計算支援を行う．
製図演習では計算で Excel などの表計算ソフトを使用する場合を除き，図面や計算によって得られる曲線等はすべて手書きで行う．この中でも線図の作成は難しい課
題であり，正面線図（Body plan），半幅平面図（Half-breadthplan），側面線図(Sheer plan)の３つの図面で整合性が取れ，線が滑らかに結ばれるように何度も調整を行うフェアリングという作業を行う必要がある．また，線図を描けたとしても実際の船殻の曲面を頭の中だけで正確にイメージするのは非常に困難である．そこで，本システム
においては線図の作成によって得られるオフセット点列の入力によって，線図作成，および船殻の 3D による表示，3D プリンタを使用した船殻 3D データの造形を行うことで自らが設計した船をより直感的に捉えることを可能にすることを目指した．
一般的にはコンピュータを用いて図面を書く場合はCAD（Computer-aided design）が使われ，近年は 3D-CADを利用して立体的に行うことも可能になっている．本稿
で提案するシステムとの大きな違いは，あらかじめ存在する手作業によって描かれた図面から得られるオフセット点列を前提としてコンピュータによって 3D モデルを生成する点である．自分で描いた図面から実際に物ができあがる体験をできることからモノ作りの楽しさや設計の重要性を認識する上で効果的であり，船型に対する理解も深めることができる．
また，諸計算においても本システムが計算結果を評価する上で一つの指標となるため，誤り等に気づきやすく効率的に作業を進めることができる．
以上のことから本システムを使用することで，従来の演習のように図面をただ描くだけではイメージし辛かっ*九州大学工学部地球環境工学科** 九州大学大学院工学研究院©日本船舶海洋工学会

た船殻の立体形状に関する理解の促進や作業効率向上を図ることが可能になり，製図演習におけるモチベーションの向上を期待することができる．

2. システムの概要
従来の船舶製図においては，あらかじめ決めておいた（block coefficient）などの主要目を元にして，線図の作成を行う．線図の作成は「バッテン」と呼ばれる曲線定規を使用し，バッテンをたわませることで任意の曲線を表現し，線図の作成を行っている．本システムでは紙の図面からバッテンを用いることによって描かれた曲線から得られるオフセット点列をスプライン曲線によって結んで線図の生成を行う．スプライン曲線はスプライン関数と呼ばれる区分的多項式によって描かれる曲線であり，点群の関数近似の手法のひとつである１）．バッテンのような自在定規を用いた曲線をうまく表現することが可能
で，線図の作成には手頃である．
本システムはプログラミング言語である Python3.6 を使用し，Python のデフォルト GUI モジュールである Tkinterを用いて作成した．GUI として作成を行った意図としては，製図の途中段階で使用することを想定し，直感的な操作が可能で，誰でも簡単に結果を得ることができるという理由からである．CUI では若干操作が複雑化するため，支援を行うという本システムの開発意図にそぐわない．
仕様の概要としてはまずオフセット点列を定められた形式の Excel ファイルにあらかじめ入力しておく．次に船体主要目入力画面において，決定した船体主要目を入力し，線図を描くためのキャンバスの縮尺などを変更する．
次に Excel ファイルを開き，Python の GUI 画面上に線図を表示する．その後，排水量，復原力の計算などを実行したり 3D グラフィックス用のファイルフォーマットである X3D として出力を行ったりする．

3. システムの内容
本システムの詳しい仕様について説明する．
使用したオフセット点列は AP から FP までの船長（Lpp）を長さ方向に等分割したときの断面番号である
AP, 1/4,1/2,3/4,1,1 1/2,2,2 1/2,3,4,5,6,7,7 1/2,8,8 1/2,9,9 1/4,9 1/2,9 3/4, FP における断面を採用し，各断面における基線から一定間隔の水線における半幅のオフセット，さらに，船首尾端の断面における同様のオフセットを使用した．通常，線図によって得られるオフセット点列には水線（waterline）によって得られる点列の他に断面を幅方向に一定間隔に区切った線であるバトックライン（buttock line）により表される点列があるが，3D による船殻の表示，排水量計算，復元力計算にはこの点列の情報は不必要であったのと，バトックラインによる点列と水線による点列が極端に近接する位置の近傍で曲線が大きく波打ってしまう現象が発生したため今回は使用しないこととした．この現象については後述する．
3.1 線図作成
線 図 は 正 面 線 図 （ Body plan ） お よ び 半 幅 線 図（Half-breadth plan）を描画した．側面線図(Sheer plan)については上で述べた都合上バトックライン（buttock line）による点列を省略したため本システムでは描画しないこととした．正面線図および半幅線図は３次のスプライン曲線によって描画した．
スプライン曲線は与えられたn 個の制御点を通り，各制御点における微分係数が等しくなるような曲線であり，各点での接続が滑らかになるためバッテンを使用して描いた曲線に近似することができる．各点はn 1個の以下の関数で結ばれる．
0,1, ⋯1(1)上のスプライン曲線には以下の拘束条件を設ける．
(2)

(3)
(4)
(5)
0(6)
この拘束条件を満足するように方程式を解くと，各係数は次のように表される．
(7)
a(8)
(9)
は以下の連立方程式を解くことによって求められる．
0(10)
2(11)
これらの係数から得られるスプライン関数を本システム
では使用する．5)
線図を描画する際にはオフセット点列を制御点として計算し描画した．例として使用したオフセット表および実際に描画した結果を Table 1，Fig. 1，Fig. 2 に示す．

Table 1 An example of offsets
AO01/41/2
3/41
1 1/222 1/2345677 1/288 1/2
99 1/49 1/2
9 3/4
10FO0000000
0.2
1.5
3
4.3
6
6
6
4.9
4
2.9
1.5
0
0
0
0
0
0

1
0
0
0
0
0
0.063
1.121
3.063
4.6
5.95
6.882
6.923
6.882
6.6
6.075
5.08
3.562
2.15
1.22
0.541
0.105
0
0

2
0
0
0
0
0.05
0.742
2.2
4.11
5.5
6.555
7.162
7.2
7.2
7
6.615
5.721
4.382
2.921
1.99
1.094
0.35
0
0

3
0
0
0
0
0.65
1.783
3.501
5
6.075
6.81
7.2
7.2
7.2
7
6.755
5.961
4.782
3.246
2.265
1.402
0.55
00

4
0
000.401
1.695
3.001
4.7
5.73
6.501
7
7.2
7.2
7.2
76.805
5.99
4.932
3.364
2.465
1.602
0.7
0
0

5
0
0
0.3
1.4
3
4.382
5.595
6.301
6.89
7.1
7.2
7.2
7.2
7.01
6.805
6
4.981
3.423
2.575
1.714
0.845
0
0

6
0
0.584
1.63
3
4.455
5.441
6.225
6.792
7.101
7.175
7.2
7.2
7.2
7.01
6.805
65
3.423
2.62
1.79
0.9
00

7
0
2.661
3.525
4.601
5.31
5.921
6.65
7.042
7.2
7.2
7.2
7.2
7.2
7.01
6.80565
3.424
2.65
1.835
0.99
0.04
080
3.4
4.23
5.121
5.72
6.241
6.81
7.092
7.2
7.2
7.2
7.2
7.2
7.01
6.805
65
3.424
2.65
1.835
0.99
0.04
0

90
3.6
4.6
5.4
6
6.5
6.9
7.1
7.2
7.2
7.2
7.2
7.2
7.01
6.805
65
3.424
2.65
1.835
0.99
0.04
0

100
3.75
4.7
5.5
6.1
6.6
7
7.1
7.2
7.2
7.2
7.2
7.2
7.01
6.805
65
3.424
2.65
1.835
0.99
0.04
0Fig. 1 Half-Breadth Plan of offsets shown in the table 1.

Fig. 2 Body Plan of offsets in the table 1.

プログラムの都合上，基線位置に近い水線で幅を持たないような断面のときはその箇所での幅をすべて 0 にして，これを制御点として使用した．
3.2 3D モデルの生成
本システムでは得られた正面線図および半幅平面図から 3D モデルを生成し，X3D 形式によってファイルを出力する機能を有する．モデルの生成方法は船体を長さ方向に小区間で分割した多数の正面線図から得られる点群をすべて三角形メッシュで結ぶことによって生成することとした．
まず，オフセット点列から得られた半幅平面図を微小間隔で区切った各断面の座標を取得し，その座標データから微小区間に区切った断面における正面線図をすべて取得する．今回は 100 分割とした．100 分割によって得られた正面線図は Fig. 3 に示す．

Fig. 3 Interpolated Body Plan from Fig.2.

る MeshLab を用いて表示した結果を Fig.4 に示す．線に見えている箇所は実際には細かく分割された点の集合である．
次にこれらの点を三角形メッシュによってつないでいく．まず，前後方向に断面を二つとり，この二つの断面の点を上甲板側からつないでいく．船体中央部は平行部になっており断面形状がほぼ変化しないため，二つの断面は容易に結ぶことができるが，船首尾では長さ方向に断面高さが変化すため，前後方向に隣合う点を結んでいく方法だと途中で一方の断面で点が無くなり，結べなくなる．この問題を解決するため，前後方向で隣あう点のペアが存在する場合はそのペア同士を結び，どちらかが先に端点に達し，途中で点のペアが作れなくなった場合はその端点を固定して残りのすべての点を放射上に結ぶことによって曲面を生成した．実際に得られた船殻の出力結果とメッシュの様子を Fig. 5，Fig. 6 において示す．

この正面線図から得られる点群を使用する．今回水線は0.1[m]刻みで点を取得したため，合計で約１万個の点群を用いた．これらの点群のみを集めてフリーソフトであFig. 4 A 3D-view of interpolated offsets.

Fig. 5 An obtained ship-hull from the calculation result.

等の計算を行った．積分器法では計算用横断面として，8断面または 10 断面を用いる．今回は 8 断面のほうを採用し，断面番号 1/2,2,3,5,7,8,9 1/2 の断面を取り，ほとんどの場合船体中央部は平行部であるため断面番号 5 を二回用いることで 8 断面とした．
また，3D モデル生成時には船の高さは船の Depth で打ち切っていたが，復原力の計算を行う場合，舷弧の影響は無視できない．そのため，舷弧として船舶満載喫水線規程で定められている標準舷弧の式を用いて算出した高さを各横断面に適用した．なお，キャンバについては考慮していない．用いた標準舷弧の式は以下の通りである．
1.666
50.8(12)0.833
Fig. 6 Obtained meshes around the stern.
3.3 排水量計算
排水量計算はオフセット表を用いてシンプソン則を適用し，計算した．
一般に排水量をオフセット表にて計算する場合は，ビルジ部の曲率の影響で若干の誤差を生じるためこの部分を下方付加部として扱い，面積計（プラニメータ）を用いて別途に計測する２）．製図演習においてもこの方法を用いるが，今回はスプライン曲線が円弧を表現できない都合上からビルジ部の曲率は十分に再現できていない．
このことから，下方付加部の面積を別途計算しても誤差が生じることは回避できないため，この部分の別途の計算は省略し，近似解を得ることとした．
本システムでは，排水量曲線，LCB，KB，浮面心前後位置（CF）についての曲線を表示する．(Fig.7): 前半部舷弧高さ

25.4,

(13)

: 後半部舷弧高さ, : 船長

実際に本システムにおいて復原力を計算する場合，入力として仮想重心位置，排水量を受け取ることとし，まず入力から得られた仮想重心位置における復原力交叉曲線を描き，次に復原力交叉曲線を用いて入力から得られた排水量における復原力曲線を表示する．復原力交叉曲線，復元力曲線は三次元のグラフに描画し，立体的に捉えることが可能になるようにした．復原力交叉曲線，復原力曲線の例を Fig. 8 において示す．

Fig. 8 Obtained cross and stability curves.

4. 3D プリンタによる出力

Fig.7 Obtained Hydrostatic curves.
3.4 復原力計算
製図演習において復原力は積分器法（Integrator method）
3）と呼ばれる積分器（インテグレータ）を使用する方法によって計算される．積分器を巡回する作業は慎重に行う必要があり時間もかかる．また台数も限られており，効率的な作業を行うことが理想的である．そのため，復原力を即座に概算できることが作業効率向上やモチベーション向上につながる.
本システムでの計算は積分器と同様の計算を行う数値
積分のプログラムを作成することで，積分器法とほぼ同出力される船殻の X3D データはすべてポリゴンで表現されているため，容易に STL フォーマットへ変換することが可能であり 3D プリンタによる造形が可能になる．3Dプリンタでは縦に長い船体を一度に造形すると小さなものしか出ないため，造形時には船体を三分割したファイルを作成して造形を行った．3D プリンタを使用した実際の造形の様子，また実際に造形された船殻を Fig. 9～Fig.
12 に示す．
造形に使用した 3D プリンタは株式会社オーピーティー製の「UP! Plus」を使用した．この 3D プリンタは 2017年現在，約 49 万円で販売されており 4），造形の材料となるフィラメントも 700[g]～1[kg]あたり約 3000 円程度で入手することができ,模型ひとつあたり 70[g]程度である
ため，演習における使用を想定することは十分に可能である．造形には合計で 6 時間程度を要した．

Fig. 9 Early stage of the making by a 3D-printer.

以外にもバルバス・バウ船首を持つ船や，艦艇などの特殊な形状を持つ船体の描画や 3D モデルの出力が可能になることが望ましい．そこで本システムでは一部の特殊船型の表現も可能とした．
5.1 トランサム・スターンを持つ船型
艦艇などに用いられる角型船尾をトランサム・スターンという．トランサム・スターンを線図に描く場合，左右の舷に対して角度を持って折れ曲がっている部分が存在し，この点が不連続点となり，単純にスプライン曲線を用いて表現することができない．実際にスプライン曲線によって描画すると，不連続点近傍で波打つような形状になる(Fig. 13)．この不連続点を再現するため，今回は不連続点となるオフセットで，スプライン曲線を分割し，二本のスプライン曲線をつなげることで再現することとした．実際に得られた結果を Fig. 14 に示す．

Fig. 10 Latter stage of the making by the 3D-printer.

Fig. 13 Failed Body Plan with Transom Stern using splinecurves.

Fig. 11 A sample of a ship hull made by the 3D-printer.

Fig. 14 Improved Body Plan with Transom Stern using divided
spline curves.

Fig. 12 The other hull sample made by the 3D-printer.

5. 特殊船型への対応
より汎用的な船型を表現するに当たり，標準的な船型5.2 バルバス・バウを持つ船型商船などでは推進抵抗を抑える目的で球形船首であるバルバス・バウを持つ船型が作られる場合が多い．本稿で対象としている製図演習においてはバルバス・バウを持つ船型が描かれることはあまり多くないが実際にはバルバス・バウを持つ船は多く存在するため造形を試みた．
バルバス・バウの造形を行う上で Fig. 2 や Fig. 5 において示したような船首形状とは大きく異なる点は，正面線図に描いたときに長さ方向に切ったひとつの断面で上下に二つの異なる形状の面をもつことであり，このことから 3.2 節において示した方法ではうまくメッシュを生成することができない．さらに，バルバス・バウが船体から飛び出し始める部分で，高さ方向に連続する面と途中で途切れる面とが存在し，それらのつなぎ方次第では不自然な船型になることにもなる．また，先端の球形の表現などの問題も生じる．したがって，今回はバルバス・バウの概形のみを表現することとした．
まずメッシュの作成方法として，基本的には上で述べた方法と同様の方法を用いて，突出している部分はバルバス・バウの部分と船体とに分けてメッシュを作成した．
次に突出部と船体の境界部分の結び方はそれよりさらに前方の断面との傾きを等しくすることで表現した．
Fig. 15 にメッシュの様子と実際に出力したバルバス・バウを示す．

6. 結言
本システムでは九州大学の船舶海洋製図演習についての支援を目的として開発を行った．本システムの開発により線図生成，排水量計算，浮心計算，復原力計算，3Dモデル生成を行うことが可能になった．ただし，線図の生成では側面線図を生成できていないことや,ビルジ部など表現が不十分なところも多く,各諸計算においてもこれらの影響により精度が損なわれている問題がある．
しかし,大きく外れたものではなく概算としては十分な効果を発揮し，演習支援の目的としては有効であると考える．また，線図の生成にはまだまだ発展の余地があり，計算精度向上も期待できる．今後は，より様々な船型を使用し，システムの汎用性を高めていくつもりである．

参 考 文 献1) 市田浩三,吉本富士市：スプライン関数とその応用,教育出版,1979.
2) 池田勝：小型船の設計と製図 －復元性を主として－,
海文堂,1964.
3) 大串雅信：理論船舶工学<上巻>,海文堂,1953.
4) CTK EAST:HOT MARKER WEBSHOPPING コーナ
ー,[online] http://shop.ctk-east.com/detail_3dprinter.html (参照 2017/9/22).
5) 松 本 英 敏 :3 次 ス プ ラ イ ン 補 間 法 ,[online]
http://www.civil.kumamoto-u.ac.jp/matsu/spline.pdf( 参 照2017/9/22).
Fig. 15 Obtained meshes around the bulbous bow.
Fig. 15 を見ると先端部分が球形になっておらず途中で切り落としたような形状となり，完全に表現し切れていない．オフセット点列のみからではバルバス・バウの先端形状までは得ることができず，別途詳細に形状を設定する必要があると考えられる．また，Fig. 16 に示す詳細化した正面線図から見て取れるように，高さ方向の変化をほとんど示していない．これはバトックラインを考慮しなかったことに起因するものだと思われ，部分的にでもバトックラインのオフセットについても考慮の必要性を感じた．
バルバス・バウについてはオフセット点列のみから通常のスプラインを用いた方法のみでは十分な結果が得られなかったため，部分的に点群情報を増やすなど他の方法を用いる必要があり，今後の研究課題とする．

Fig. 16 Interpolated Body Plan with the bulbous bow.