「マップ」のワークシートを開きます。
ここでは、鳥瞰図、ダイアグラム、路線図で、何を
どのエリアで表示させるか定義します。
定義は、A列にコード名を、B〜L列には、コード別に決まったパラメータを入れます。
文字列の入力が必要なコードでは、M列に文字を入れます。
列 | ||
A | コード | 要素とテキストは、 コードによって異なります。 詳細は次表参照。 |
B | 要素1 | |
: | : | |
L | 要素11 | |
M | テキスト |
最初、何について定義するのかを表すため、Indexから始めます。
百の位が1だと鳥瞰図、2はダイアグラム、3は路線図です。
下2桁はエリアを表していて、01〜12までがあります。
たとえば、「103」は、鳥瞰図モードのエリア3を定義することになります。
Indexコードを入力したら、次の行から描画に関するコードを打ち込みます。
描画は上から順番に行われますので、背景などは最初に定義します。
なお、Train4の画面は1000×750に設定されていますので、描画の際は
念頭に置いてください。
重要コード | メインとなる重要なコード |
描画コード | 画面を飾るための「おまけ」的コード |
Index | 描画をする前に宣言します |
code | 意味 | 要素 | 文字 | ||||||||||
A (列) | B | C | D | E | F | G | H | I | J | K | L | M | |
11 | Rail | From | To | x1 | y1 | x2 | y2 | R | G | B | パラメータ | ||
21 | Section | From | To | y1 | y2 | パラメータ | |||||||
31 | Rail2 | From | To | 種別 | x1 | y1 | x2 | y2 | R | G | B | パラメータ | |
42 | Line | x1 | y1 | x2 | y2 | R | B | G | 太さ | ||||
44 | Text | x | y | R | G | B | Font | 縦 | 斜線 | イタリック | 文字 | ||
45 | Rect | x1 | y1 | x2 | y2 | R | G | B | |||||
46 | SkyRect | x1 | y1 | x2 | y2 | ||||||||
47 | Circle | x1 | y1 | x2 | y2 | R | G | B | |||||
48 | Circle2 | x1 | y1 | x2 | y2 | R | G | B | 太さ | ||||
101〜112 201〜212 301〜312 |
Index | R | G | B | 名称 |
描画コードを入れる前に、最初に宣言をします。
101〜112は鳥瞰図モードのそれぞれMap 1〜Map 12に対応します。
同様に、ダイアグラムで201〜212、路線図で301〜312です。
RGBでは、背景色を指定します。鳥瞰図ではR=G=B=230を推奨しています。
また、そのエリアの名称も文字列で入力します。
鳥瞰図モードの時に、計算駅番号FromからToへ向かう電車が表示されます。
画面上の座標は、(x1,y1)−(x2,y2)で、線路の色は、RGBで定義します。
パラメータは次のようなバイナリコードになります。
bit | 意味 | 選択 | code | ||
11 | 21 | 31 | |||
2^0 | 駅名表示 | 0-しない 1-する | ○ | ○ | ○ |
2^1 | 途中駅表示 | 0-しない 1-する | ○ | ○ | ○ |
2^2 | To駅表示 | 0-しない 1-する | ○ | ○ | ○ |
2^3 | 線路方向 | 0-横 1-縦 | ○ | × | ○ |
2^4 | 駅名位置 | 0-30dot 1-80dot | ○ | × | ○ |
2^5 | 待避表示 | 0-する 1-しない | ○ | × | × |
2^6〜15 | 予約 | 0で固定 | − | − | − |
「To駅表示」は、一連の線路の終端部の場合のみ「1」にしますが、通常は0です。
「線路方向」で「横」にすると横方向に線路が延びていると判断し、駅名は
下に縦長に、電車の待避は上下方向になります。
「駅名位置」は、線路と駅名の文字をどれだけ離すかです。
通常は「0」ですが、電車が待避を行い文字列に隠れてしなうときは「1」にします。
「待避表示」は、通常は、「0」ですが、線路が込み入っていて待避表示
させたくないときは「1」にします。
バイナリコードについてパラメータは、バイナリコードで入力します。 たとえば、2^5から2^0までの2進法の数値が、001001 (2^4 は2の4乗の意味) |
ダイアグラムを表示する区間を定義します。
計算駅番号FromからTo間を走る電車が画面のy1からy2まで
ダイアグラムで表示されます。
パラメータの内容は、前述の表と同じです。
なお、ダイアグラムなので2^3以降のパラメータは無効です。
路線図で線路を定義します。
意味は、コード11の「L1」と同じです。
種別には、その路線の種別番号を入力します。
すると、その種別で止まらない駅は、マークが表示されません。
RGBには、線路の色を設定します。
パラメータの内容は、前述の表と同じです。
線を引きます。
(x1,y1)-(x2,y2)までRGBで指定された色で、指定された太さで引きます。
RGBで指定された色で指定されたフォントでテキストを書きます。
縦 | 0-横 1-縦 |
斜線 | 0-しない 1-する |
イタリック | 0-しない 1-する |
(x1,y1)を起点として、x方向に幅x2、y方向に高さy2の矩形範囲を、
RGBで指定された色で塗りつぶします。
(x1,y1)を起点として、x方向に幅x2、y方向に高さy2の矩形範囲を
時間にあった空の色で塗りつぶします。
(x1,y1)-(x2,y2)の矩形範囲内に、RGBで指定された色で
塗りつぶされた円を書きます。
(x1,y1)-(x2,y2)の矩形範囲内に、指定された色と太さで円を書きます。
円は塗りつぶされません。
A | B | C | D | E | F | G | H | I | J | K | L | M | |
1 | 101 | 230 | 230 | 230 | 全体 | ||||||||
2 | 46 | 0 | 0 | 1000 | 150 | ||||||||
3 | 11 | 1 | 2 | 10 | 350 | 636 | 350 | 128 | 128 | 255 | 2 | ||
4 | 11 | 2 | 3 | 636 | 350 | 990 | 350 | 128 | 128 | 255 | 6 | ||
5 | 11 | 3 | 2 | 990 | 450 | 636 | 450 | 128 | 128 | 255 | 3 | ||
6 | 11 | 2 | 1 | 636 | 450 | 10 | 450 | 128 | 128 | 255 | 7 | ||
7 | 102 | 230 | 230 | 230 | 新橋〜台場 | ||||||||
8 | 46 | 0 | 0 | 1000 | 150 |
まず、鳥瞰図のエリア1に、路線全体の様子を表示することにしました。
1行目には、このエリアの宣言です。コードは101になります。
B〜D列は、背景色です。鳥瞰図で推奨されているR=G=B=230にしました。
M列には、このエリアの名称を入力します。
2行目には空を定義するためにコード46を定義しました。
この場合、座標(0,0)を基準として、右に1000ドット、下に150ドットの範囲が
空になります。
3行目がメインコードの「Rail」です。計算駅1の新橋から、計算駅2の台場に行く電車を
描画します。画面上では、(10,350)から(636,350)へとレールが引かれます。
このレールの色は、(R,G,B)=(128,128,255)という青系の色になります。
L列にはパラメータを入れます。
このレールは、画面上では上の方に描画されるので、駅名は表示させたくありません。
ただ、途中駅のマークは表示させました。
「To駅表示」は、基本的に0です。線路も横方向です。そのほかもbitも0です。
2^0 | 駅名表示 | 0-しない 1-する |
2^1 | 途中駅表示 | 0-しない 1-する |
2^2 | To駅表示 | 0-しない 1-する |
2^3 | 線路方向 | 0-横 1-縦 |
この表から、2進法で「0010」なので、10進法では「2」になります。
したがって、パラメータは2と求まりました。
4行目は、3行目のレールの続きです。
計算駅2の台場から、計算駅3の有明までレールを引きます。
パラメータは基本的に前回と同じです。
ただし、3行目で、新橋→台場、4行目で台場→有明と続いているレールは
この区間で終わります。そのため、「To駅表示」は「1」にしてください。
2進法では「110」なので、10進法では「6」です。
2^0 | 駅名表示 | 0-しない 1-する |
2^1 | 途中駅表示 | 0-しない 1-する |
2^2 | To駅表示 | 0-しない 1-する |
2^3 | 線路方向 | 0-横 1-縦 |
5から6行目は、有明から新橋へと向かうレールを定義しています。
今度は画面の下側に描画されるので、駅名を表示させます。
「To駅表示」についてですが、5〜6行目のレールは、6行目で切れます。
そのため、5行目は「To駅表示」は「0」、6行目は「1」になります。
それぞれ2進法では「0011」「0111」なので、10進法では「3」「7」です。
5行目 | 6行目 | ||
2^0 | 駅名表示 | 0-しない 1-する | 0-しない 1-する |
2^1 | 途中駅表示 | 0-しない 1-する | 0-しない 1-する |
2^2 | To駅表示 | 0-しない 1-する | 0-しない 1-する |
2^3 | 線路方向 | 0-横 1-縦 | 0-横 1-縦 |
7行目から、エリア2の定義が始まっているので、エリア1は6行目で終わりです。
「To駅表示」について鳥瞰図、ダイアグラム、路線図、すべてが これは、To駅の表示を行わなくても、線路が連続で しかし、描画されることのない終端の駅では不具合が起きます。 |
A | B | C | D | E | F | G | H | I | J | K | L | M | |
15 | 201 | 255 | 255 | 255 | 全体 | ||||||||
16 | 21 | 3 | 2 | 740 | 476 | 3 | |||||||
17 | 21 | 2 | 1 | 476 | 10 | 7 |
ダイアグラムをエリア1に描画するので、コードは201になります。
16行目では、有明から台場へのダイアグラムの区間を定義しています。
ダイアグラムの時間線は、y座標の10から740まで引かれるので、
起点を740からはじめると、ぴったりになります。
F列のパラメータは、駅名表示、途中駅表示なので、3,7になります。
なお、ここでは、計算駅番号3→2,2→1方向の定義を行いましたが
反対方向の1→2、2→3の定義は必要ありません。
A | B | C | D | E | F | G | H | I | J | K | L | M | |
22 | 301 | 230 | 230 | 230 | 全体 | ||||||||
23 | 31 | 3 | 2 | 1 | 990 | 400 | 636 | 400 | 128 | 128 | 255 | 3 | |
24 | 31 | 2 | 1 | 1 | 636 | 400 | 10 | 400 | 128 | 128 | 255 | 7 |
路線図の主要コードである「Rail2」は、「Rail」とかなり似ています。
違うのは、A列のコードが11から31になるのと、D列に「種別」という項目が追加されます。
種別は1しかないので、1にします。
ワークシートの「平日」「土日」など、時刻表入力に関わるワークシートを開きます。
路線によっては、「平日」「土曜」「日曜」の3種類や、全日共通などありえるので
ダイアの種類に応じて、ワークシートを増減させてください。
ワークシートの1行目は、コンパイルには関係ない部分です。
どの駅の時刻を入力しているのかわかるように、駅名などを入れておくと便利です。
2行目はヘッダーといわれる部分で、最も重要です。
時刻データは1計算駅あたり、3列単位(時、分、待機時間の3列)で
H列から入力することになります。
そのため、3列ごとに、計算駅番号を入力します。
計算駅番号は、通常は1から順に入れるものですが、この限りではありません。
列 | 空欄可否 | ||
A | 種別 | 種別番号を入力 | × |
B | 車種 | 車種番号を入力 | × |
C | 車両数 | ○ | |
D | 特記事項1 | バイナリコード 列車情報 | ○ |
E | 特記事項2 | バイナリコード 運行情報 | ○ |
F | From | 始発駅の計算駅No | ○ |
G | To | 終着駅の計算駅No | ○ |
H | 発車時刻(時) | 計算駅1の発車/停車時間 | ○ 空欄は電車が 来ないと認識 |
I | 発車時刻(分) | ||
J | 停車時間 | ||
: | : | 上のものを1ブロックとして 計算駅数だけ繰り返します |
|
? | 電車番号 | ○ | |
? | 名称 | ○ | |
? | 備考 | ○ |
種別には、「各駅」「急行」などの種別番号を入力します。
種別番号は、種別の行数に対応します。
電車アイコンの種類を番号で入力します。
アイコンと番号の関係はリファレンスをご覧ください。
車両数は、電車の車両の数です。
わからないときは、0にして下さい。
特記事項1には、指定席の有無、特急・急行料金の有無などを、
バイナリコードで記入します。特になければ、空欄のままにします。
bit | ||
2^0 | 普通 自由席 | 0-なし 1-あり |
2^1 | 普通 指定席 | |
2^2 | グリーン 自由席 | |
2^3 | グリーン 指定席 | |
2^4 | 寝台車 | |
2^5 | 特急・急行料金 | |
2^6 | 整理乗車券 | |
2^7〜15 | 予約 | 0で固定 |
特記事項2には、運行情報を入れます。
bit | ||
2^0〜2 | 分離・併合 種別変更関係 |
0で固定 現在未使用 |
2^3 | 臨時電車 | 0-no 1-yes |
2^4〜15 | 予約 | 0で固定 |
始発駅、終着駅は、計算駅番号を入力します。
始発駅がわからないときは、空欄のままにします。
「ヘッダー」でどの列が、どの計算駅になるかというのを宣言しました。
1つの計算駅ごとに3列単位で列が確保されていますので
順番に、発車時刻(時)、発車時刻(分)、待機時間(分)の順で
入力していきます。
この時刻入力は、電車がその駅を通れば入力する必要があるので
電車が停車しなく、通過する場合でも入力する必要があります。
待機時間は0にすると通過扱いになります。
電車が来ない場合は、空欄のままにしておきます。
ヘッダーでは、計算駅で使用する列を宣言しました。
そして、宣言がされていない最初の3行が文字列を入力する列になります。
これらの列は、順番に、電車番号、名称、備考を入力します。
電車番号は、鉄道各社が各電車につけている固有の番号です。
わからなければ空欄にしておきます。
名称は、「やまびこ14号」のような名称です。
備考があれば、備考を入力します。
このようなことを一つ一つの電車に対して行います。
行\列 | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P |
1 | 新橋 | 台場 | 有明 | |||||||||||||
2 | 1 | 2 | 3 | |||||||||||||
3 | 1 | 39 | 6 | 1 | 3 | 6 | 0 | 1 | 6 | 14 | 1 | 6 | 23 | 1 | ||
4 | 1 | 39 | 6 | 1 | 3 | 6 | 8 | 1 | 6 | 22 | 1 | 6 | 31 | 1 | ||
5 | 1 | 39 | 6 | 1 | 3 | 6 | 16 | 1 | 6 | 30 | 1 | 6 | 39 | 1 |
1行目は、コンパイル時には無視されます。
ヘッダで用いる計算駅番号が何駅なのかメモしておくといいでしょう。
2行目はヘッダーです。
H列以降が時刻データを実際に入力する部分です。
今回は、計算駅は3つあるので、新橋駅から順に3列ずつ宣言します。
まず、列Hに1を入力しました。
すると隣の2列を含めた、列H,I,Jが計算駅1の時刻データを入力すると
宣言したわけです。列Hには発車時刻の「時」が、列Iには「分」、列Jは
待機時間「分」を入力することになります。
続けて台場駅の計算駅番号である2を入力すると列K,L,Mが宣言されます。
なお、1列空けて次の宣言をしようとしても、それ以降の宣言は無効になりますので
空きのないように宣言してください。
3行目から本格的に時刻データを入力することになります。
列A〜Gでは、電車の基礎データを入力します。
最初の新橋発の電車は6:00発で、普通、有明行きですので
列Aの種別は「普通」の1になります。
列Bの車種は、最も似ている(?)のが39番のアイコンでしたので、39を入力。
列Cの車両数は6両編成です。列D,Eに入力する特記事項はないので
空欄のままにします。
列Fの始発は新橋発なので、新橋の計算駅番号の1を入力。
列Gの中着は有明行きなので、同様に3を入力します。
列H,I,Jには、新橋でのデータを入力します。
この電車は6:00発なので、列Hに6、列Iに0,待機時間は分かりませんが
とりあえず1にしておきます。
列K,L,Mには台場駅の発車時刻を入力します。
6:14発なので、6,14,1とそれぞれ入力します。
待機時間は1分となっていますが、コンパイル時に30秒にできます。
4行目は、次の電車が6:08なので、・・・と同様の作業を繰り返すことになります。
これら時刻データ入力の作業は、今のように横方向に作業するのではなく、
縦方向の方が効率がいいです。つまり、新橋駅の発車時刻を最初に
一気に入力し、次に台場駅、・・・としたほうが早いです。
行\列 | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P |
232 | 1 | 39 | 6 | 1 | 3 | 24 | 0 | 1 | 24 | 14 | 1 | 24 | 23 | 1 | ||
233 | 1 | 39 | 6 | 3 | 1 | 6 | 3 | 1 | 5 | 49 | 1 | 5 | 40 | 1 | ||
234 | 1 | 39 | 6 | 3 | 1 | 6 | 11 | 1 | 5 | 57 | 1 | 5 | 48 | 1 |
このように、232行目まで新橋発有明行きの電車を入力し終わったら
続けて、有明発新橋行きのデータを入力します。
このようにして、平日のワークシートが完成します。
土日ダイアも同様です。
長かったデータ入力が終われば、後はコンパイルです。
順調にいけば、5分後にTRAファイルが完成しているでしょう。
まず、コンパイルの作業にはいる前に、表計算ソフトのデータを
誤って消さないように、どこかにバックアップしておきましょう。
コンパイルの準備として、表計算Softのデータをタブ区切りのテキスト形式にします。
ここでは、表計算SoftとしてMicrosoft Excel2000(以下Excel)と、
Lotus 123 97(以下123)の場合で説明します。
まず、テキスト化を行う範囲を選択し、それを、コピーします。
次に、メモ帳やワードパッド(テキスト)などを開き、ペースとします。
これを保存すれば、タブ区切りのテキスト形式になります。
ただ、この方法は楽ですがデータ量が多いとできません。
Excelの場合は、保存形式のメニューから「テキスト(タブ区切り)」を
選択すれば、データ量が多くても大丈夫です。
このとき、今開いているワークシートだけしか保存されないので
ワークシートごとにこの作業を行います。
さて、保存するときのファイル名はデータの種類によって次のようになります。
データ | ファイル名 |
路線情報 | info.txt |
種別 | kind.txt |
駅 | eki.txt |
マップ | map.txt |
時刻表データは、ダイアの種類によって変わってきます。
今回は、平日ダイアと土日ダイアの2種類でしたので
それぞれ、「data1.txt」「data2.txt」というファイル名で保存します。
曜日別 ダイア構成 |
1 | 平日 | 土日 | |
2 | 平日土日 | |||
3 | 平日 | 土 | 日 | |
4 | 平日土 | 日 | ||
作成するファイル | data1.txt | data2.txt | data3.txt |
テキストファイルとTrain4Makerは同じフォルダーに持ってきます。
そこで、Train4Makerを実行させます。
Train4Makerの詳しい使用方法は、こちらをご覧ください。
「ファイル」-「設定」で、次のようなダイアログが現れます。
この線は、平日ダイアと土日ダイアの2種類なので、「曜日別ダイア」は
「平日/土日」にします。
待機時間は1分も停車することはなく、30秒程度なので「1分の待ち時間を30秒へ」
をcheckします。また、1行目はデータでないので「1行目は無視する」をcheckします。
データの区切り方法は、タブ区切りなので「タブ」を選択します。
「OK」で設定ダイアログを閉じた後、「F9」を押します。
保存場所と名前を指定するとコンパイルされます。
もし出てしまった場合は、Train4 Makerのページを参考にしてください。
先ほどのコンパイルでエラーメッセージが出なければ、これで完成です。
早速、Train4で出来映えを見てみましょう。
ダイアグラムを用いると、時刻表の入力ミスがすぐ発見できます。
いいデータが完成したら、公開するといいでしょう。
当ホームページに送っていただければ、Train4のページで公開します。
また、Vectorに登録するのもいいでしょう。