轨道位置数据生成工具

帮您省去手打轨道坐标参数的麻烦


编程: Asnacinjar

本程序能干什么?

制作OpenBVE线路时,我们常常遇到不止一条轨道的路段。这时除主轨道外,我们还需要布置其他轨道。由于OpenBVE的机制所限,仅主轨道支持Track.Curve、Track.Pitch等几何变换指令。若想调整其他轨道的位置,就只能依靠Track.Rail指令后的X和Y两个坐标参数来实现。

Track.Rail RailIndex; X; Y; RailType (官方文档)

考虑到轨道通常按25米分段,全线就需要大量的.Rail指令来调整其他轨道的位置,手动输入这些.Rail指令无疑是极其繁琐的。
本程序可以自动生成其他轨道的.Rail指令,轻松生成平顺的轨道,省去编写大量.Rail指令的麻烦。

下载 v1.2.2

演示视频:BV17b411F7uT

版权说明

本程序作者及本教程作者为 @asnacinjar
本网站
经授权转载于此。本工具及本页图文内容均不适用 CC-BY-SA。

快速使用说明

打开程序,界面如下:

更详细的使用说明

如果您看了上面的说明仍一头雾水,可以参考以下更详细的使用说明。我们将以郑州市的一段真实铁路为例,为您讲解如何使用本工具生成轨道数据。

假设红色的线是您的主轨道,黄色的线时您希望铺设的其他轨道(下称“目标轨道”),并假设您已经通过.Curve指令设置好了主轨道的曲线形状。您首先要将目标轨道划分成若干段,便于接下来的数据生成工作。考虑到本程序采用三次函数规律生成数据,您最好将目标轨道划分成几段近似于三次曲线的形状。

我们这里把轨道分成3段,测出每段轨道起讫点的主轨道位置。(注意:由于OpenBVE机制限制,您的每段轨道起讫点的主轨道位置均应为区块长度25的整数倍。)填写目标轨道的编号(RailIndex),此处不妨设为1。
我们发现,I、II两段中目标轨道相对主轨道的距离变化近似三次曲线,而III段的目标轨道与主轨道的相对距离基本固定不变。因而,我们可以用轨道数据生成器生成I、II两段的目标轨道数据,而III段可不必生成。
以I段为例,使用谷歌地球测得I段起讫点处主轨道和目标轨道所夹锐角的大小。

计算所求的夹角的正切值,即为导数。我们注意到,I段起始点处两条轨道几乎平行,夹角视作0,那么起点的导数就是0。(注:本程序提供了导数和角度的转换功能,输入夹角值即可方便地算出对应的导数。)请注意,这里的夹角有正负之分。若目标轨道相对主轨道向左(逆时针)倾斜,则为负值;向右(顺时针)倾斜则为正值。这里终点处的夹角为-10°,对应导数为-0.176。

然后,用谷歌地球测量起讫点处主轨道和目标轨道的水平距离。注意:测量时标尺应与主轨道垂直,而不是与目标轨道垂直。
请注意,这里的距离同样有正负之分。若目标轨道在主轨道左侧,则距离为负;在右侧则距离为正。这里起点处水平距离是-26m,终点处水平距离是-99m。

将测得的各项数据填入对应的文本框,按“生成”按钮,即得I段内目标轨道的所有.Rail指令。将输出栏内的代码粘贴到您的路线CSV档的适当位置即可。
以相似的方法,您可以选择导出目标轨道相对主轨道的垂直距离,并可以继续生成II段及更多路段,或其他目标轨道的位置数据。(提示:此处I段和II段轨道相接,因而II段初位置的导数和水平距离、垂直距离均与I段末位置相等,可直接拿来使用。)
最后,您可以在RouteViewer中检查您生成的轨道是否平顺,形状是否与预期相符。若轨道的形状与预期差异过大,您可微调输入的导数和距离数值,或者重新为轨道分段并温习一下三次曲线是什么形状

提示

  1. 由于程序使用三次函数生成数据,这也就决定了该程序只适用于目标轨道相对主轨道的距离变化接近三次函数的情况。若目标轨道为与主轨道夹角过大、接近圆弧、甚至向后弯了回来,还是另寻好办法吧(例如目标轨道整体建模)。
  2. 部分高分辨率屏幕用户可能遇到软件界面模糊的现象。右击图标,选择属性——兼容性进行设置,即可让界面恢复正常。