PrjInfo。项目信息表(项目名称、设计时间、设计负责人等); 属于项目级设计内容,对应有项目基本信息、车辆基本信息、车辆轮廓、车辆限界等;“设备限界”和“建筑限界”属于图纸级设计内容,对应有图纸信息、轨道线路参数、设备限界、建筑限界、设备布置等;项目数据和图纸数据都有报表生成功能。程序的运行和用户的操作都应遵循这个原则。根据以上内容,系统功能结构设计如图2所示。
(4)系统数据库设计。系统属于CAD二次开发软件,主要功能是计算和绘图,需要读写的数据量较小。考虑到与VBA的兼容性,本系统采用MicrosoftAccess数据库,数据库访问引擎采用比较成熟的DAO技术。本系统的数据库分为:默认数据库和用户数据库。
默认数据库存与程序文件存放在一起,为DefaultA.mdb、DefaultB1.mdb和DefaultB2.mdb3个文件。从文件名可以看出,这3个文件是与车辆类型对应的,默认数据库记有某种车辆类型的车辆基本信息、车辆轮廓控制点坐VehiInfo。车辆信息表(车辆类型、车体长度、车辆定距、车体长度等);
Points。车辆轮廓及车辆限界表(包含车辆轮廓及车辆限界的控制点坐标);
DrawingsInfo。图纸信息表(图纸名称、设计人、线路类型、曲线半径等);
DrawingsEquip。图纸设备限界表(包含设备限界的控制点坐标);
DrawingsStr。图纸建筑限界表(包含建筑限界相关数据)。
其中PrjInfo、VehiInfo、Points是与项目对应的,其记录数不会发生改变;DrawingsInfo、DrawingsEquip、DrawingsStr是与图纸对应的,在用户数据库中会随着图纸的添加与删除而增减。
5)系统使用流程。参考限界手工设计过程,本系统的使用及运行流程如图3所示。
3 系统开发关键技术
1)DVB工程启动器[3]。本系统采用VBA开发,VBA与VB存有差别,其差别之一是程序运行时无法得到自身DVB工程文件的运行路径,会导致程序无法进行自我定位,不能在运行时访问默认数据库和预制的设备图块文件,因此程序在运行时需要通过某种外部途径获得自己的运行路径。另外,启动VBA程序的一般途径是运行某个宏命令,而从用户角度考虑的话,这是及其不方便的,需要采用某种用户熟悉的运行程序的方法。综合以上两点,本系统通过一个.exe程序启动。该程序主要功能是自动加载并运行本CAD系统,并初始化配置文件,为VBA程序的运行作准备。入口程序如图4所示。
该程序使用VisualBasic6.0开发,用户可以通过该程序的快捷方式或者直接双击该.exe文件运行工程启动器。程序加载后,将列举系统注册表中所记录的已安装的AutoCAD程序的路径,如果用户要从其他未注册的CAD软件中运行本系统,可以点击“其他”按钮选择程序文件。
用户点击“确定”按钮后,程序将生成C:\Gauges.tmp文件,该文件的典型内容如下:
[Operation]
DVBPath=C:\ProgramFiles\MetroGauges\
随后程序使用Shell语句运行AutoCAD软件并加载Gauges.dvb工程文件。如果用户选择了“加载后执行VBA程序”,当AutoCAD软件运行并加载Gauges.dvb后,程序向AutoCAD主窗口发送键盘消息“-vabrunStartProgram”以启动系统。程序采用以下方式使工程自动运行。
PublicSubRunMacro()
SendKeys“{ESC}”,True
SendKeys“{ESC}”,True
SendKeys“-”,True
SendKeys“ 上一页 [1] [2] [3] [4] 下一页
|