2. tateyama_up の構築¶
2.1. 始点での向き調整¶
空中写真に対して明後日の方向を向いているtateyama_up軌道の向きを調整する。
Measureウィンドウを開く
以下の操作は全てカーソルAに対して行う
trackメニューからtateyama_upを選択する
これで、カーソルAの位置と方向はtateyama_up軌道上に限定される
Pos.をクリックして、カーソルをtateyama_up軌道左端(距離程: 0m)にセットする
trackメニューから @absolute を選択する
これで、カーソルAは任意の位置と方向に設定できる
Dir.をクリックして、カーソルを空中写真の線路の方向にセットする
dirフィールドにカーソルAの向きが表示される
ここでは-86.1度
下記のようにmain.cfgを修正し、再読み込みする
tateyama_upの方向が空中写真と一致する
...
[tateyama_up]
...
angle = -86.1
...
2.2. プラットホーム部¶
Measureウィンドウの CurveTrack Solver機能 を使ってプラットホームにかかる曲線軌道を求める。
カーソルAのtrackをtateyama_upに設定する
カーソルAの位置・方向をプラットホームにかかる曲線軌道の始端にセットする
カーソルBのtrackを @absoluteに設定する
カーソルBの位置・方向を曲線軌道の終端にセットする
CurveTrack Solverを以下の設定にしてDo Itする
α: A, β: B
mapsyntax にチェック
Mode: 1. α(fix)->β(free), R(free)
カーソルAを起点、カーソルBの延長線上を終点とする円軌道を求める
下図のようにカーソルA, Bを結ぶ曲線軌道(青)が得られる
2.2.1. 緩和曲線の追加¶
求められた曲線軌道は空中写真上の線路よりもやや左側を通過しているように見える。 ここでは、緩和曲線を挿入して微調整を試みる。
カーソルCをプラットホーム中心あたりの軌道中心にセットする
方向は指定しなくてもよい
CurveTrack Solverを以下の設定にしてDo Itする
γ: C
mapsyntax にチェック
Mode: 6. α(fix)->β(free) via γ, R(free)
カーソルAを起点、カーソルBの延長線上を終点とする円軌道に対して、カーソルCに最も近い点を通過するように緩和曲線を追加する
下図のようにカーソルCを通過する曲線軌道(オレンジ)が得られる
ターミナルに出力された自軌道構文をtateyama_up.txtにコピー&ペーストする
BveTs Map 2.02:utf-8 0; Curve.SetGauge(1.067); Curve.SetFunction(0); $pt_a = 190.000000; $pt_a; $cant = 0; Curve.SetFunction(1); Curve.Interpolate(0.000000,0); $pt_a +10.184781; Curve.Interpolate(-202.926975, $cant); $pt_a +155.094676; Curve.Interpolate(-202.926975, $cant); $pt_a +165.279457; Curve.Interpolate(0.000000,0);
データのリロード(F5)を行うと、下図を得る
カーソル |
x |
y |
dir |
track |
kilopost |
---|---|---|---|---|---|
A |
12.9 |
-189.6 |
-86.1 |
tateyama_up |
190.0 |
B |
-37.7 |
-343.6 |
-129.9 |
@absolute |
/ |
C |
3.2 |
-272.8 |
/ |
@absolute |
/ |
2.3. 本線との合流部¶
電鉄富山寄りの本線との合流部にある片渡り線を構築する。
ここで、片渡り線を構成する分岐器は開き角から、下図に示すような10番片開き分岐器と仮定する。 他の箇所の分岐器も10番分岐器として扱うことにする。 (参考: 分岐器をつくる 第1回-片開き分岐器 導入編-, Eden's BVE works)
カーソルAのtrackをtakayama_upに設定する
カーソルAの位置・方向を片渡り線始端にセットする
CurveTrack Solverに以下のパラメータをセットしてDo Itする
CCL: 18.53
R: 185.5
α: A, β: B
Assign results to cursor にチェック
mapsyntax にチェック
Mode: 4. α(fix), R(fix), CCL(fix)
カーソルAを始点とした半径185.5m, 全長18.53mの曲線が求められる
ターミナルに出力された自軌道構文をtateyama_up.txtにコピーアンドペーストする
カーソルCのtrackを @absoluteとして片渡り線の終端にセットする
CurveTrack Solverに以下のパラメータをセットしてDo Itする
CCL: 18.53
R: -185.5
α: B, β: C (要変更)
mapsyntax にチェック
Mode: 3. α(free)->β(free), R(fix)
カーソルB, Cを通過する半径-185.5m, 全長18.53mの直線が求められる
ターミナルに出力された自軌道構文をtateyama_up.txtにコピーアンドペーストする
ここでコピーする自軌道構文には、カーソルBに相当する位置の距離程情報が含まれていないので、修正が必要
カーソルBを @absolute 設定にしているため
... $pt_a = 381.000000; $pt_a +0.000000; $cant = 0; Curve.SetFunction(1); Curve.Interpolate(0.000000,0); $pt_a +0.000000; #片渡り線の始点側曲線 Curve.Interpolate(185.500000, $cant); $pt_a +18.530000; Curve.Interpolate(185.500000, $cant); $pt_a +18.530000; Curve.Interpolate(0.000000,0); $pt_a = 0; #この行要修正 $pt_a +17.473817; $cant = 0; Curve.SetFunction(1); Curve.Interpolate(0.000000,0); $pt_a +17.473817; #片渡り線の終点側曲線 Curve.Interpolate(-185.500000, $cant); $pt_a +36.082812; Curve.Interpolate(-185.500000, $cant); $pt_a +36.082812; Curve.Interpolate(0.000000,0);
手順9でコピーアンドペーストした構文の距離程を修正する
カーソルBに相当する位置の距離程を手計算する
カーソルAの距離程は381.0m
カーソルBは分岐器曲線の終点: 距離程は381.0+18.53m
よって下記の通り修正できる
... $pt_a = 381.000000; $pt_a +0.000000; $cant = 0; Curve.SetFunction(1); Curve.Interpolate(0.000000,0); $pt_a +0.000000; #片渡り線の始点側曲線 Curve.Interpolate(185.500000, $cant); $pt_a +18.530000; Curve.Interpolate(185.500000, $cant); $pt_a +18.530000; Curve.Interpolate(0.000000,0); $pt_a = 381 + 18.53; # 修正結果 $pt_a +17.473817; $cant = 0; Curve.SetFunction(1); Curve.Interpolate(0.000000,0); $pt_a +17.473817; #片渡り線の終点側曲線 Curve.Interpolate(-185.500000, $cant); $pt_a +36.082812; Curve.Interpolate(-185.500000, $cant); $pt_a +36.082812;こちら のように、合流側の軌道を予め敷いておくと、上記の手順を省略できる
変更したデータをリロード(F5)して完成
カーソル |
x |
y |
dir |
track |
kilopost |
備考 |
---|---|---|---|---|---|---|
A |
-53.3 |
-362.2 |
-129.9 |
tateyama_up |
381.0 |
|
B |
-64.4 |
-377.0 |
-124.2 |
@absolute |
/ |
Solverによる自動設定(Measureウィンドウには非表示) |
C |
-88.2 |
-409.7 |
-129.9 |
@absolute |
/ |