空中写真を用いて呉線広駅を作る(2)

ここからは全て常に他軌道扱いとなる軌道を配線していきます。

留置線群(4~8番線)を作る

CurveTrack Solver の Mode3-1 を繰り返し使っていきます。

4番線

開始地点

Hiro_3 の 603m地点から分岐器左曲線を作ります。
この先はすぐに8番両開き分岐器が設置されているので同時に記載します。

[Hiro_4]
file = Hiro_4.txt
absolute_coordinate = False
parent_track = Hiro_3
origin_kilopost = 603
x = 0
y = 0
z = 0
angle = 0
color = steelblue
BveTs Map 2.02:utf-8
#【記載区間】広駅4番線
#----------基本線形----------
0;
	Curve.SetGauge(1.067);
	Curve.SetCenter(1.067/2);
	Curve.SetFunction(1);

0;
	Curve.Begin(-300);
# Hiro_8 or Hiro_4
distance + 20;
	Curve.End();
	Curve.Begin(237);
distance + 15;
	Curve.End();

distance + 100;
	Curve.Interpolate(0);

guide_4 を再表示し、Hiro_4 の延長と guide_4 を右曲線で繋げていきます。
今回は半径R=300、緩和曲線長TCL=10 としました。

結果を反映し、延長しておきましょう。

終了地点

軌道Hiro_4はHiro_3に10番左片開き分岐器(半径R=185.5m、曲線長20m)を通り合流していきます。

Mode3-1 を用います。

結果を反映し、適度に延長しました。

空中写真からずれていますが、地理院地図の空中写真は2009年撮影であり、より新しいgooglemapと比べたところ線形が変わっているように思われたのでこのまま続行します。

5番線

上り方は車止め、そこから10番左片開き分岐器を経て4番線(Hiro_4)に合流します。
すなわち4番線の最後に行った内容を繰り返すことになります。

[Hiro_5]
file = Hiro_5.txt
absolute_coordinate = False
parent_track = Hiro_2
origin_kilopost = 710
x = -18
y = 0
z = 0
angle = 0
color = deeppink

合流地点の少し先まで延長しています。

6番線

ゆるやかな右曲線を描いたのち5番線に合流していきます。

[Hiro_6]
file = Hiro_5.txt
absolute_coordinate = False
parent_track = Hiro_2
origin_kilopost = 710
x = -23
y = 0
z = 0
angle = 0
color = gold

Hiro_5とHiro_6は実際には開始地点が異なりますが、親軌道を同じとしたのでorigin_kilopostを揃えています。
必要のない箇所は実際にBVEで読み込む際にRepeaterの開始地点で調整すればよいです。

留置線の曲線半径は小さめのことが多いので、本線でもよく見かける300m、緩和曲線長は10mとしました。

7番線・8番線

分岐側

まずは7番線(Hiro_7)、8番線(Hiro_8)の直線区間を用意します。

[Hiro_7]
file = Hiro_7.txt
absolute_coordinate = False
parent_track = Hiro_2
origin_kilopost = 710
x = -27
y = 0
z = 0
angle = 0
color = green

[guide_8]
file = guide.txt
absolute_coordinate = False
parent_track = Hiro_2
origin_kilopost = 710
x = -31
y = 0
z = 0
angle = 0
color = red

Hiro_8はHiro_4の20m地点から8番両開き分岐器左曲線(半径237m、曲線長15m)として始まるので以下を記述します。

[Hiro_8]
file = Hiro_8.txt
absolute_coordinate = False
parent_track = Hiro_4
origin_kilopost = 20
x = 0
y = 0
z = 0
angle = 0
color = orange
BveTs Map 2.02:utf-8
#【記載区間】広駅8番線
#----------基本線形----------
0;
	Curve.SetGauge(1.067);
	Curve.SetCenter(1.067/2);
	Curve.SetFunction(1);

0;
	Curve.Begin(-237);
distance + 15;
  Curve.End();

distance + 300;
	Curve.Interpolate(0);

Hiro_8とguide_8を半径300m、緩和曲線長10mの右曲線で繋げます。

guide_8をコメントアウト、Hiro_8は記述を反映し適度に延長して読み込んでみます。

合流側

Hiro_4へ10番右片両開き分岐器(半径185.5m、曲線長20m)を通り合流していくので、まずは補助曲線を作ります。

[guide_curve]
file = guide_curve.txt
absolute_coordinate = False
parent_track = Hiro_4
origin_kilopost = 510
x = 0
y = 0
z = 0
angle = 180
color = red
BveTs Map 2.02:utf-8
#【記載区間】補助線(曲線)
#----------基本線形----------
0;
	Curve.SetGauge(1.067);
	Curve.SetCenter(1.067/2);
	Curve.SetFunction(1);

0;
	Curve.Begin(185.5);
distance + 20;
	Curve.End();

Hiro_7とguide_curveをゆるやかな右曲線で繋ぎます。空中写真から反向曲線と推測しました。

留置線なので厳密に作る必要性が高いとは言えないので、うまくいく条件を手当たり次第に探ります。
今回は半径を600m、緩和曲線長を20mとしました。

Results:
   CCL:        109.380054
   startpoint: (-897.189617, -288.691167)
   shift:      32.079391

$pt_a = 200.000000;
$pt_a +32.079391;
$cant = 0;
Curve.SetFunction(1);
Curve.Interpolate(0.000000,0);
$pt_a +52.079391;
Curve.Interpolate(600.000000, $cant);
$pt_a +161.459445;
Curve.Interpolate(600.000000, $cant);
$pt_a +181.459445;
Curve.Interpolate(0.000000,0);

guide_curveを上書きするようにHiro_7とHiro_4(guide_curve 0m地点)を半径185.5mの右曲線で繋ぎます。

Results:
   CCL:        20.000000
   startpoint: (-1033.114757, -354.578277)
   shift:      1.504116

$pt_a = 382.000000;
$pt_a +1.504116;
$cant = 0;
Curve.SetFunction(1);
Curve.Interpolate(0.000000,0);
$pt_a +1.504116;
Curve.Interpolate(-185.500000, $cant);
$pt_a +21.504116;
Curve.Interpolate(-185.500000, $cant);
$pt_a +21.504116;
Curve.Interpolate(0.000000,0);

最後にHiro_8をHiro_7に合流させます。Mode9-3を用いHiro_8から反向曲線を伸ばします。
合流地点は指定できませんが、開始地点を動かしながら近似する位置を強引ではありますが探します。

[Curve fitting]
Inputs:
   Fitmode:          9-3. Compound α->β (fixed R,R2)
   Cursor α,β,γ:     A,B,C
   Ponint α:         (-907.144865, -287.990046)
   Ponint β:         (-986.973945, -327.517087)
   Ponint γ:         (0.000000, 0.000000)
   Direction α:      -160.400000
   Direction β:      -152.004200
   Direction γ:      0.000000
   Transition func.: line
   TCLα:             10.000000
   TCLδ:             0.000000
   TCLβ:             0.000000
   L intermediate:   0.000000
   R1:               300.000000
   R2:               -300.000000
Results:
   CCL1:      59.168843
   CCL2:      20.230520
   endpt:     (-987.096185, -327.585452)
   shift from pt. α: 0.000000
   shift from pt. β: 0.140059

$pt_a = 331.000000;
$pt_a;
$cant = 0;
Curve.SetFunction(1);
Curve.Interpolate(0.000000,0);
$pt_a +10.000000;
Curve.Interpolate(300.000000, $cant);
$pt_a +69.168843;
Curve.Interpolate(300.000000, $cant);
$pt_a +69.168843;
$cant = 0;
Curve.Interpolate(-300.000000, $cant);
$pt_a +89.399363;
Curve.Interpolate(-300.000000, $cant);
$pt_a +89.399363;
Curve.Interpolate(0.000000,0);

endptとβの座標がほぼ一致しているので採用とし反映します。空中写真上の誤差が若干大きい気もしますが。

東引き上げ線(Hiro_11)

上り方進行方向右側にある引き上げ線を作ります。
分岐器前端距離程を整数値としたいので前端側から始めることとし、以下のように新たに記述し読み込んでみます。

[Hiro_11]
file = Hiro_11.txt
absolute_coordinate = False
parent_track = Hiro_2
origin_kilopost = 488
x = 0
y = 0
z = 0
angle = 180
color = pink

[guide_11]
file = guide.txt
absolute_coordinate = False
parent_track = Hiro_2
origin_kilopost = 400
x = 5
y = 0
z = 0
angle = 180
color = red
BveTs Map 2.02:utf-8
#【記載区間】広駅東引き上げ線
#----------基本線形----------
0;
	Curve.SetGauge(1.067);
	Curve.SetCenter(1.067/2);
	Curve.SetFunction(1);

0;
	Curve.Begin(-185.5);
distance + 20;
	Curve.End();

CurveTrack Solver Mode3-1で半径300m、緩和曲線長10mの右曲線を作りHiro_11とguide_11を繋げ、適当な位置まで延長すれば完成です。

$pt_a = 20.000000;
$pt_a +15.266376;
$cant = 0;
Curve.SetFunction(1);
Curve.Interpolate(0.000000,0);
$pt_a +25.266376;
Curve.Interpolate(300.000000, $cant);
$pt_a +47.611390;
Curve.Interpolate(300.000000, $cant);
$pt_a +57.611390;
Curve.Interpolate(0.000000,0);

電留線(Hiro_21, Hiro_22)

上り方進行方向左側に存在する電留線を作ります。はじめに毎度おなじみ補助線を引いていきます。

[Hiro_21]
file = Hiro_21.txt
absolute_coordinate = False
parent_track = Hiro_3
origin_kilopost = 598
x = 0
y = 0
z = 0
angle = 180
color = turquoise

[Hiro_22]
file = Hiro_22.txt
absolute_coordinate = False
parent_track = Hiro_3
origin_kilopost = 598
x = 0
y = 0
z = 0
angle = 180
color = teal


[guide_21]
file = guide.txt
absolute_coordinate = False
parent_track = Hiro_2
origin_kilopost = 500
x = -5
y = 0
z = 0
angle = 180
color = red

[guide_22]
file = guide.txt
absolute_coordinate = False
parent_track = Hiro_2
origin_kilopost = 500
x = -10
y = 0
z = 0
angle = 180
color = red
BveTs Map 2.02:utf-8
#【記載区間】広駅電留1番線
#----------基本線形----------
0;
	Curve.SetGauge(1.067);
	Curve.SetCenter(1.067/2);
	Curve.SetFunction(1);

0;
	Curve.Begin(118);
distance + 15;
	Curve.End();

distance;
	Curve.Begin(-237);
distance + 15;
	Curve.End();
BveTs Map 2.02:utf-8
#【記載区間】広駅電留2番線
#----------基本線形----------
0;
	Curve.SetGauge(1.067);
	Curve.SetCenter(1.067/2);
	Curve.SetFunction(1);

0;
	Curve.Begin(118);
distance + 15;
	Curve.End();

distance;
	Curve.Begin(237);
distance + 15;
	Curve.End();

今回は曲線半径は正直こだわる必要がないので、Mode1を用い始点を固定して各補助線に繋げていきます。

$pt_a = 30.000000;
$pt_a;
$cant = 0;
Curve.SetFunction(1);
Curve.Interpolate(0.000000,0);
$pt_a +5.000000;
Curve.Interpolate(516.105690, $cant);
$pt_a +22.703080;
Curve.Interpolate(516.105690, $cant);
$pt_a +27.703080;
Curve.Interpolate(0.000000,0);
$pt_a = 30.000000;
$pt_a;
$cant = 0;
Curve.SetFunction(1);
Curve.Interpolate(0.000000,0);
$pt_a +15.000000;
Curve.Interpolate(-828.389933, $cant);
$pt_a +68.419269;
Curve.Interpolate(-828.389933, $cant);
$pt_a +83.419269;
Curve.Interpolate(0.000000,0);

仕上げに適当な位置まで延長します。

西引き上げ線(Hiro_31)

まずは分岐点を調べます。

[Hiro_31]
file = Hiro_31.txt
absolute_coordinate = False
parent_track = Hiro_3
origin_kilopost = 1150
x = 0
y = 0
z = 0
angle = 0
color = purple
BveTs Map 2.02:utf-8
#【記載区間】西引き上げ線
#----------基本線形----------
0;
	Curve.SetGauge(1.067);
	Curve.SetCenter(1.067/2);
	Curve.SetFunction(1);

0;
	Curve.Begin(-185.5);
distance + 20;
	Curve.End();

distance + 100;
	Curve.Interpolate(0);

次に分岐器の先の左曲線を作ります。カーソルBを左曲線の先にTrackをabsoluteとして絶対座標指定し、向きを調整します。
あとはこれにCurveTrack Solverで繋げていくだけです。

角度が1°異なるだけでも生成結果が大きく変わるので注意しましょう。

$pt_a = 20.000000;
$pt_a +26.737537;
$cant = 0;
Curve.SetFunction(1);
Curve.Interpolate(0.000000,0);
$pt_a +36.737537;
Curve.Interpolate(-500.000000, $cant);
$pt_a +49.426818;
Curve.Interpolate(-500.000000, $cant);
$pt_a +59.426818;
Curve.Interpolate(0.000000,0);

同時にHiro_1,Hiro_2,Hiro_3も延長していきますが、Hiro_3は副本線を通ったため若干他より大きい距離程となっています。駅構内を配線し終えるまでは引き続きこの値を用いますが、この先新たな基準点を用いて配線をする際にずれを相殺することとなります。

本線は左曲線(半径600m)を描きます。同様にして延長していきます。

ここでは緩和曲線長を20mとしましたが、これは最低20m(車両1両分)は本線上では必要と考えており、ほかの長さも試したところ曲線長CCLが最も適切な値が出たためです。50mほどあることが多いと個人的には考えています。


以上で全ての線路を引き終えました。出力してBVE Trainsim内で読み込んでみましょう。

Repeaterの開始・終了位置等を調整すれば完成です。

このように与えられた情報が少ない中でも配線作業を行うことができました。みなさんも是非Tsutsujiを使ってみてはいかがでしょうか。

また、この場をお借りしてTsutsujiを開発された粉山葵様にお礼申し上げます。

タイトルとURLをコピーしました