海子铁路网

 找回密码
 注册进站

QQ登录

只需一步,快速开始

123
返回列表 发新帖
楼主: liaus

[庆生]如何用EXCEL画运行图

 关闭 [复制链接]
 楼主| 发表于 2004-6-26 00:26:23 | 显示全部楼层

[庆生]如何用EXCEL画运行图

下面引用由济南的大猫2004/06/26 00:05am 发表的内容:
即将完工, 不画天津站那京哈转津浦的车就没法表示了, 我的解决方法是: 将天津枢纽按不同方向, 以北京--济南列车运行实际线路分别向各个方向延伸(实在是很难用语言表达出来), 等我贴上图大概就能明白意思了. 这样 ...
好啊,期待您的大作~
发表于 2004-6-26 22:50:31 | 显示全部楼层

[庆生]如何用EXCEL画运行图

推荐用CAD 2004
发表于 2004-8-27 10:58:15 | 显示全部楼层

[庆生]如何用EXCEL画运行图

不管用Excel还是CAD,都可以利用VBA编程,直接根据表格的时间数据完成绘图的工作。
与其花大力气去用鼠标描线,不如钻研一下编程,让计算机完成大量繁复的工作:)
当然,编程的过程也不简单,可一旦做好程序便可反复使用了。
再说,用专业的运行图编制软件岂不更好?何必用鼠标绘这个图呢?所以我觉得这个方法意义不大,一家之言,望作者不要生气:)
发表于 2004-8-27 11:15:47 | 显示全部楼层

[庆生]如何用EXCEL画运行图

下面引用由悬石2004/08/27 10:58am 发表的内容:
再说,用专业的运行图编制软件岂不更好?何必用鼠标绘这个图呢?所以我觉得这个方法意义不大,一家之言,望作者不要生气:)
问题是哪里有专业的运行图编制软件?
发表于 2004-8-27 21:35:24 | 显示全部楼层

[庆生]如何用EXCEL画运行图

下面引用由悬石2004/08/27 10:58am 发表的内容:
不管用Excel还是CAD,都可以利用VBA编程,直接根据表格的时间数据完成绘图的工作。
与其花大力气去用鼠标描线,不如钻研一下编程,让计算机完成大量繁复的工作:)
当然,编程的过程也不简单,可一旦做好程序便 ...
对于非计算机专业,也非路内人的车迷来说,完成列车运行图的最好方法就是Liaus介绍的这样。为什么这么说呢,因为这是一个100%“自我参与”的过程,虽然这个过程比较吃力,也很费时间,但是这样“参与”一次,你会得到很多仅凭查阅时刻表无法得到的东西,不仅有“茅塞顿开”的兴奋,更有获得新知识,新信息的欣喜与激动。这是任何画图软件或编程都无法达到的效果。
发表于 2004-8-27 21:44:47 | 显示全部楼层

[庆生]如何用EXCEL画运行图

下面引用由悬石2004/08/27 10:58am 发表的内容:
不管用Excel还是CAD,都可以利用VBA编程,直接根据表格的时间数据完成绘图的工作。
与其花大力气去用鼠标描线,不如钻研一下编程,让计算机完成大量繁复的工作:)
当然,编程的过程也不简单,可一旦做好程序便 ...
可能的话,希望您能通过简单的例子给大家介绍一下用编程法画运行图的基本方法,不必特别的高深,也不要100%的严密,只要把基本的方法和思路理出来就好。
本分论坛特别欢迎各位高水平的车迷义务给大家作各种铁路知识的讲座,当大家的老师,使我们的素质在轻松愉快的看贴回贴过程中得以提高。我代表喜爱方案论坛的各位车迷,真挚地邀请您加入这个行列。
 楼主| 发表于 2004-8-28 00:26:57 | 显示全部楼层

[庆生]如何用EXCEL画运行图

下面引用由悬石2004/08/27 10:58am 发表的内容:
不管用Excel还是CAD,都可以利用VBA编程,直接根据表格的时间数据完成绘图的工作。
与其花大力气去用鼠标描线,不如钻研一下编程,让计算机完成大量繁复的工作:)
当然,编程的过程也不简单,可一旦做好程序便 ...
嘿嘿~
不是我小气哦~我想说两句。
VBA俺是懂的,是常用的。VBA确实可以自动实现在Office软件上的全部手工操作。但是你的原数据库从哪里来?也就是说,如果我想用VBA自动生成运行图,那么我首先需要把所有列车的时刻录入到EXCEL,这个我觉得很麻烦。而且这并不是时刻表上的简单摘抄,你同样要计算通过运行图上各小站的时刻。还有,为了使您的运行图表达起来更充分,你可能要设置一些特殊的格式,这些,你都要通过设定属性或者录入宏来实现,这个工作量也不是很小的。
还有最重要的一点,就是K177老兄讲的,有些问题,是你在自己画的过程中发现的,思考的,总结的,这个正是我当初喜欢画图的主要乐趣所在。
当然,VBA确实可以一劳永逸,当你建立了一套完整的程序和相关的数据库的时候,VBA就发挥了他的“批量生产”的作用了。
最后您说的专业画图软件,……哪里找?那我不如请铁道部的熟人帮忙直接copy一份正版运行图给我不是更好?
发表于 2004-8-30 16:12:48 | 显示全部楼层

[庆生]如何用EXCEL画运行图

[这个贴子最后由悬石在 2004/08/30 04:17pm 第 1 次编辑]

回复各位真诚的网友:)
用Excel的VBA画图,所需使用的主要语句当是AddLine方法:
比如:
Private Sub Workbook_Open()
Set myDocument = Worksheets(1)
With myDocument.Shapes.AddLine(Worksheets("Sheet1").Range("A1").Value, Worksheets("Sheet1").Range("B1").Value, Worksheets("Sheet1").Range("A2").Value, Worksheets("Sheet1").Range("B2").Value).Line
    .DashStyle = msoLineDash
    .ForeColor.RGB = RGB(0, 0, 0)
End With
End Sub
所需数据主要有停站时分、起停车附加时分、运行时分、是否停站、站间距等等,逻辑上来说,只要手绘能确定的坐标,也一定能用程序来确定。
VBA和表格公式相结合,完全可以完成计算、绘图和格式设置,甚至VBA比手工能完成更多工作。大家多看看VBA的书自然会明白。但这确实不是一两句能说明白的。
另外,我觉得如能把CAD2000版本之后的VBA同Excel相结合,可能会更好用。
Hercules提出的“哪里有专业的运行图编制软件”,西南交通大学的倪少权教授等人花费十余年心血研究的那套软件就很好,我亲眼见过模拟使用的,人工机助绘图已完全达到实用水平,甚至自动绘图也已基本可行,但毕竟运行图包含了很多人为因素,所以完全自动绘图尚需时日,但完全可利用这软件进行人工绘图。
我觉得各位如果真对此感兴趣,就不该仅停留在自娱自乐的层面,毕竟这不同于艺术文学方面的爱好,而是技术性很强的工作,要做就该做些有实用价值的东西来。如果没专业的软件,自己设计个简单的也蛮好,或者干脆在纸上画。
对于初学者,用liaus的方法绘图也不失为熟悉行车组织原理的好方法,但以我在学校时的经验,在计算机上画运行图(我当时用的CAD)很难取得感性认识,反而不如在纸上画。
发表于 2004-8-30 21:50:56 | 显示全部楼层

[庆生]如何用EXCEL画运行图

下面引用由悬石2004/08/30 04:12pm 发表的内容:
回复各位真诚的网友:)
用Excel的VBA画图,所需使用的主要语句当是AddLine方法:
比如:
Private Sub Workbook_Open()
...
非常感谢悬石朋友的指点。在此谈几点愚见和体会。
画运行图的方法,总结起来就是两大类。
一是软件法(比如利用EXCEL或AUTOCAD)或者悬石网友在这里介绍的编程法,它们的实质其实是一样的。也就是说,如果有全面的原始数据库(具体在这里也就是路用列车时刻表),只要把时刻数据输入,就可以很快捷地得到列车运行图。比较而言,编程法好像还需要一点计算机专业知识,虽然并不高深难懂。而EXCEL的图表功能,实际就是一个编好了基本绘图程序的“万能”工具,在手边有全面的原始数据库的情况下,只要输入它们,用EXCEL的图表功能比自己再次编程要省时而且方便得多,同时比较容易为一般网友掌握。我和T372等网友,一开始就是用的这个方法(T372网友在本版也有过详细介绍)。这个方法最大的优点是电脑绘图,避免了人工找点带来的误差,因而非常精确。其缺点是,数据必须全面,如果有数据缺失,图就不能保持连贯。而这个问题,对于非路内人士的普通车迷而言,是很难逾越的一道坎。因为如果没有路用表,就无法得知非客运业务停车(最常见的是避让)的具体时间和地点。这种令人无可奈何的限制使我在努力几次后,最终放弃用之生成京沪线列车运行图的想法。
二就是手工绘图法,根据原始数据库,在坐标纸上找点,连线成图;或者L版介绍的鼠标描图法,以EXCEL的表格作为坐标纸,这两者的实质也是一样的。这种方法相比第一种来说,比较繁琐费时,但它的魅力在于,即使没有全面的数据,也可以把图画下去,当全部列车的图线都出现在图上后,哪列车应该在哪个时间段,哪个车站避让哪列车,就变得非常清晰,容易推理和判断(尽管有时自己的推理并不符合列车运行实际),然后你就可以根据自己的判断,修改避让时间和地点使之更加合理。这样画过一遍以后,感觉就好像自己把所有的列车都乘坐了一遍,对每趟车的运行特点都有比较深刻的印象,这是第一种方法绝对无法达到的效果。所以这种看似枯燥费力的作图法实际上是乐趣横生的,因此我还是很推崇L版的这种方法。
具体来说,本人曾经用第一种方法完成了不太繁忙因而鲜有避让的干线铁路--京包线的运行图,由于避让很少,市贩时刻表的数据基本可以保证运行图的完成;但是此法很难应用到运输繁忙,避让频繁的京沪线(特别是沪宁区间),改用Liaus作图法,虽然费了不少时间和精力,但得到了很精细也基本准确的运行图,同时感觉自己的知识和经验都有所长进。
发表于 2004-9-1 11:42:45 | 显示全部楼层

[庆生]如何用EXCEL画运行图

我觉得我有个问题可能没表述清楚
具体使用哪种方法主要应该看:
到底是根据既有完备数据绘图(追求精确性、高效率和美观性),还是在数据不完整的情况下人工逐步推算铺图,这是完全不同的两项工作。如果数据完备,即使复杂,也可使用程序完成;相反,如果数据不完备,即使简单的不会让的两对车也需人工绘图来确定各项时分——数据的完备性和绘图的目的决定了方法的选择。
针对有完备数据的情况:
Excel自动生成的图表和编程得到的运行图是截然不同的,VBA的功能不仅是画线和制表,它还可以调整各种格式,完成Excel的几乎全部控制功能,而在编程的过程中本身也是深入了解运行图机理的过程,这和自动生成的简单图表是截然不同的。我可以肯定地说,用Excel自动生成的图表绘出的只能算运行示意图,不可能绘出真正意义上的达到liaus所绘样式的详细运行图,而VBA编程可以,而且能做得更好,但确实不是每个人都能在短期内学会的,如果仅想了解运行图,而不是做这种实际工作,我承认编程确实难度过大,不值得尝试。
针对运行图的研究,我还要说一点:对于初学者而言,可以画画既有时分已定的图(或通过大站既有时分推算小站会让情况);但在掌握了基本概念之后,若想更深入地学习,应该把重点放在已知极少数据自己重新虚拟铺图,以及如何在既有线路上进一步增加点线能力的算法方面,单纯绘图不该是最终目的。
——“你永远无法知道何处是成功的终极”——我很欣赏这句话!
 楼主| 发表于 2004-9-1 12:59:59 | 显示全部楼层

[庆生]如何用EXCEL画运行图

下面引用由悬石2004/09/01 11:42am 发表的内容:
我觉得我有个问题可能没表述清楚
具体使用哪种方法主要应该看:
到底是根据既有完备数据绘图(追求精确性、高效率和美观性),还是在数据不完整的情况下人工逐步推算铺图,这是完全不同的两项工作。如果数据完备 ...
看了悬石网友的留言,我感觉到问题确实进入了一个新的层次:工作和爱好。
我想当初开始发运行图,是出于对行车组织的兴趣。运行图是个可以初级阶段一目了然的工具。为了这个最表面的最肤浅的一目了然,我们几个网友开始研究如何来用现有工具呈现。我也曾经自己仿真模拟过一些列车时刻,然后画画运行图,但是还没有上升到如何系统的铺画运行图,改善运行图的制定方法这个高深的层次上。
“应该把重点放在已知极少数据自己重新虚拟铺图,以及如何在既有线路上进一步增加点线能力的算法方面”这个看起来……好高深啊~虽然很感兴趣,不过这个目标我还确实差的好远好远啊~
谢谢您的点评~
发表于 2005-12-21 22:48:23 | 显示全部楼层

[庆生]如何用EXCEL画运行图

顶~
发表于 2006-2-16 12:40:47 | 显示全部楼层

[庆生]如何用EXCEL画运行图

那如果是京沪直特的话,你画的只是沪宁这部分,那怎么知道他通过某个车站的时刻的啊?
发表于 2006-2-20 15:13:54 | 显示全部楼层

[庆生]如何用EXCEL画运行图

下面引用由liaus2004/06/14 11:29am 发表的内容:
对了,还有一个事情忘说了,就是有些特快列车可能很多大站也不停 ,为了使您画的运行图够准确,您可能需要事先计算一下所有列车通过某些大站的时间,基本上还是有一些规律可以遵循的:
1. 一般特快快速列车:前 ...
那如果是直特的话,你怎么计算出它通过一个车站的时间的,还有特快,快速怎么算的
发表于 2006-5-21 13:44:12 | 显示全部楼层
原帖由 悬石 于 2004-8-27 10:58 发表
不管用Excel还是CAD,都可以利用VBA编程,直接根据表格的时间数据完成绘图的工作。
与其花大力气去用鼠标描线,不如钻研一下编程,让计算机完成大量繁复的工作:)
当然,编程的过程也不简单,可一旦做好程序便可 ...

我已经编写了一个可以导入数据并自动铺画运行图的程序,详见帖子
http://bbs.hasea.com/viewthread.php?tid=68949&extra=page%3D1
您需要登录后才可以回帖 登录 | 注册进站

本版积分规则

手机版|小黑屋|Archiver|海子铁路网 ( 京ICP证120035号 京公网安备11010702001036 )

GMT+8, 2024-12-25 01:29

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表