导航菜单

VB对CAD二次开发在软横跨编程及出图的应用

罗 林 生

(中铁建电气化局南方公司接触网分公司 湖北 武汉 430000)

摘 要:接触网作为电气化铁路的重要组成部分,接触网为电力机车提供电能保障,对于弓网的正常受流起到决定性的作用。软件开发以VB 6.0开发工具为基础,同时连接Access数据库、AutoCAD各种版本以及Excel来共同完成软横跨的编程、计算、出图、报表导出以及后期对数据库中软横跨零件的维护,使该软件能够满足不同设计单位设计的软横跨结构形式及不同生产厂家生产的软横跨零部件,保证计算软件的通用性。

教育期刊网 http://www.jyqkw.com
关键词 :接触网;软横跨;数据库;编程;出图

中图分类号:TH122 文献标识码:A doi:10.3969/j.issn.1665-2272.2015.08.043

0 引言

随着科学技术的发展、铁路运量的快速增长和对能源利用率的重视,为适应我国经济发展需要,我国电气化铁路也得到迅猛发展,截至2014年底,我国电气化铁路总里程突破5万km。

接触网作为电气化铁路的重要组成部分,接触网为电力机车提供电能保障,对于弓网的正常受流起到决定性的作用。因此,接触网施工质量的好坏将直接影响到电气化铁路的运营安全以及广大群众的人身安全和财产安全。目前,站场接触网设计主要有两种安装方式:一种是200km/h以上时速的硬横跨接触网安装方式,该种安装方式结构稳定,其制作主要由专业化的工厂预制完后发往现场由施工单位通过现场组装,然后利用轨道吊吊装到位,但该种安装方式结构复杂,运输及安装均不便,而且造价昂贵,该种安装方式主要用于高速铁路;另一种是200km/h及以下时速的软横跨接触网安装方式,该种安装方式结构稳定性较硬横跨差,软横跨的计算和预制均由施工单位独立完成,但该种安装方式结构简单,运输及安装均简便,而且造价低,该种安装方式主要用于普速铁路。

目前,国内软横跨计算方法主要有2种:一种是模拟抛物线法,通过抛物线原理,利用软绳的自然柔软性在现场比照实物形成抛物线进行预安装。然后进行各节点标注和测量其长度,数据采集完后再拆除软绳,最后根据采集的数据在料库中心进行预制及现场安装到位,该种方法操作方便,但施工效率低下,而且没有考虑软横跨加负载后的受力状态,施工误差很大;完全靠现场人员的直观经验,目前已基本淘汰;另一种是Excel表格法,根据力学分析原理,通过软横跨各节点的力矩分析,将软横跨各节点的长度用重量进行代替,编制计算公式,然后将公式利用Excel表计算功能,由电脑进行计算得到各节点对应的长度,然后由技术人员根据各节点长度进行人工绘图,并在图纸上标注各节点需要预制的长度及各零部件所在的位置,最后由作业人员完成预制和安装。该种方法利用计算机功能,其计算精度高,但因不能直接生成图纸,还需要技术人员进行人工绘图,其效率较低。

为了能够将计算结果通过某种工具直接生成图样并将各节点对应的长度及各零部件的扣减长度均能在图纸上反映出来,因此成立了课题攻关组,针对这一问题进行攻关。软件开发以VB 6.0开发工具为基础,同时连接Access数据库、AutoCAD各种版本以及Excel来共同完成软横跨的编程、计算、出图、报表导出以及后期对数据库中软横跨零件的维护,使该软件能够满足不同设计单位设计的软横跨结构形式及不同生产厂家生产的软横跨零部件,保证计算软件的通用性。

1 软横跨软件编程的要点难点

主要讲述采用Visual Basic语言编写软横跨软件,Visual Basic 是一种由 Microsoft 公司开发的结构化的、模块化的、面向对象的、包含协助开发环境的事件驱动为机制的可视化程序设计语言,它源自于BASIC编程语言。VB拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统,可以轻易的使用DAO、RDO、ADO连接数据库,或者轻松的创建ActiveX控件。程序员可以轻松的使用VB提供的组件快速建立一个应用程序。

1.1 理清程序的整体思路

在正规编程,都得用Visio画程序流程图、时序图等,理清事物所对应的关系。笔者就参与编写的软横跨助手来简单说明流程图(见图1)。

1.2 理解软横跨计算原理

对软横跨方面的知识点细节进行反复理解,通透,同时去现场多观察特征,这里主要讲述编程方面,不作详解。

1.3 账号登录

一款好的软件,应该具备账号登录,以此保证用户使用的安全性,当然,如果每次登录都需要输入密码,会引起用户的厌烦,因此需要记住密码的功能,当然也需要修改密码的功能。

1.4 调用AutoCAD生成模型

调用AutoCAD生成模型,网上有很多相关的资料,也有很多的代码,方法都是一样的,代码如下:

Private Sub Command1_Click()

’首先引用 acad 2009 Object Library类型库(或者其他版本的类型库)

Dim myAcadApp As AutoCAD.AcadApplication,activeDoc As AutoCAD.AcadDocument,acMS As AutoCAD.AcadModelSpace

On Error Resume Next

Set myAcadApp = GetObject(, "Autocad.Application") ’检查AutoCAD是否已经打开

If Err <> 0 Then ’没有打开

Err.Clear

Set myAcadApp = CreateObject("Autocad.Application") ’打开CAD

If Err Then

MsgBox Err.Number & ":" & Err.Description ’打开失败

Exit Sub

End If

End If

相信对CAD二次开发的程序员来说很不陌生,在初学时,就会发现一个很大的问题,当把程序开发好了,打包到其他电脑上运行,就会发现如若其他电脑里的CAD的版本与所开发电脑的版本不同,那么编写的软件就无法调用其它的CAD也不可能别人用你的软件就要别人去安装那个版本的CAD,而本身CAD就安装很费时,因此要对程序改进,如下:

Private Sub Command1_Click()

’不引用CAD的类型库

Dim myAcadApp As Object, activeDoc As Object, acMS As Object‘注意这里修改的地方,网上几乎很难找得到。

On Error Resume Next

Set myAcadApp = GetObject(, "Autocad.Application") ’检查AutoCAD是否已经打开。

If Err <> 0 Then ’没有打开

Err.Clear

Set myAcadApp = CreateObject("Autocad.Application") ’打开CAD

If Err Then

MsgBox Err.Number & ":" & Err.Description ’打开失败。

Exit Sub

End If

End If

这样稍微改编后,就能调用各种版本的AutoCAD,不至于在直接引用特定AutoCAD版本库而引起其他版本的AutoCAD无法调用。下面来介绍下画图情况:

在VB编译器里form1里添加输入框控件以及按钮。

1.5 调用数据库

在很多软横跨预制或者计算出图软件上,很多都没有引用数据库,只是单纯的使用静态文本来做软件。在软件开发过程中,确实很省事,但是在维护上是非常困难的。举个例子:假如现在开发一个静态的软横跨计算软件,也许现在对这个项目的软横跨很实用,但是到了下一个项目,如果软横跨用的零件变了,岂不是又得重里面修改程序,这就弄得很不和谐,那下下一个项目呢?难道总是要修改程序?因此,学会使用数据库是有效解决这个弊端,目前主流的大型数据库有Oracle、Sybase、DB2、SQL server,小型数据库有:Access、MySQL、BD2等。开发程序时可以根据程序将要面对数据的大小还确定使用什么样的数据库,当然,开发软横跨计算软件不需要那么大的数据库,采用微软办公软件自带的Access和MySQL就足够了,本文就以微软办公软件自带的Access举例。

在编程上,很多使用者喜欢引用ADOAC控件来调用数据,这样似乎很方便,但是有一点在打包软件后,很容易因为没有对那控件进行注册,而导致软件出错。这里建议大家不要引用。

在VB 6.0里编程,加入MSHFlexGrid控件,增加“增、删、改、查”四个按钮,写入代码如下:

Dim strSql2$

Dim rs2 As New ADODB.Recordset

strSql2 = "select * from 支柱类型 "

Set rs2 = New ADODB.Recordset

rs2.Open strSql2, conn, 3, 3

Set MSHFlexGrid2.DataSource = rs2

frmxc_zh.MSHFlexGrid2.ColWidth(0) = 600

frmxc_zh.MSHFlexGrid2.ColWidth(1) = 1 400

frmxc_zh.MSHFlexGrid2.ColWidth(2) = 1 100

frmxc_zh.MSHFlexGrid2.ColWidth(3) = 1 000

frmxc_zh.MSHFlexGrid2.ColWidth(3) = 1 000

frmxc_zh.MSHFlexGrid2.ColWidth(3) = 1 000

当然,如果数据库仅限这样,就没有体现它的优势。因此还要对其进行增删改查,这样就显得软件非常灵活。

1.6 软横跨编程软件生成模型效果举例

软横跨编程软件是专门预制软横跨的比较专业的软件,不仅能计算,出图,导出报表,关键还采用了很多新的技术,如调用数据库,采用MD5加密,下面是使用软横跨助手对现场软横跨计算并生成的模型,比例和实际比例为1∶1。

2 结论

通过对软横跨软件编程的要点难点的浅析,了解到用Visual Basic 6.0编程语言或者VB其他版本对软横跨进行编程计算是非常方便,而且界面很清晰,效果是可观的。VB调用AutoCAD进行模型生成,既有AutoCAD自身的优势,又可以在模型有不足的时候进行人工修改,非常方便。而采用Excel作为报表导出,也是人性化,符合日常办公的需要。

总之,所谈及的主要是VB对AutoCAD的二次开发,学好CAD的二次开发,有助于提高实际工作的效率,提高准确率。

教育期刊网 http://www.jyqkw.com
参考文献

1 于万聚.高速电气化铁路接触网[M]. 成都:西南交通大学出版社,2003

2 李淑华.VB程序设计及应用[M]. 北京:高等教育出版社,2009

3 程绪琦.AutoCAD 2012中文版标准教程[M].北京:电子工业出版社,2012

4 王 凤.Access 2007数据库管理从新手到高手[M].北京:中国铁道出版社,2011

5 徐 灏.机械设计手册4(第二版)[M]. 北京:机械工业出版社,2000

(责任编辑 要 毅)

下载文本