基于面向对象技术CAD自动绘制铁路长途干缆设计图的研究
2016-12-08芦苇
芦苇
(中铁第五勘察设计院集团有限公司,北京102600)
基于面向对象技术CAD自动绘制铁路长途干缆设计图的研究
芦苇
(中铁第五勘察设计院集团有限公司,北京102600)
现阶段,我国铁路长途的运输使用在逐年上升,对铁路通信干缆的要求也越来越高。基于面向对象技术CAD自动绘制铁路长途干缆设计图的研究,分为3部分来介绍,对于促进铁路通信干线光缆、区间短段光、电缆线路工程和区间视频监控系统前端设备设计向高层次的集成化、智能化和标准化方向发展具有重要的理论意义和现实意义。
算法分析;面向对象设计;光缆引入、引出计算;沿线设备
【DOI】10.13616/j.cnki.gcjsysj.2016.09.074
1 CAD接口访问和面向对象化图元
1.1 对象唯一性
每个图元对象都有自身唯一的标识,通过这种标识可计算相应的坐标点。在对象的整个生命期中,它的标识不能改变,具有唯一性,并且不同的对象不能有相同属性的标识。
1.2 多态性
相同的方法或函数、过程可作用在多种类型的图元对象上并获得不同的结果。不同的对象,收到同一消息可以产生不同的结果,这种现象称为多态性,每个图元对象以适合自身的方式去响应共同的消息以到达线路两侧建筑物模型的创建。
1.3 对象继承关系
CAD二次开发中C#常用对象继承关系如图1所示。
1.4 访问CAD的DXF数据交换接口
AutoCAD是由美国Autodesk公司开发的单线程图形编辑系统,维持着一个十分紧凑的图形数据库(包含图形的几何和拓扑信息),以DWG数据格式存储,开发者很难直接读取其数据并加以利用,我们可以利用其DXF(Drawing eXchangeFormat)数据交换接口把高级语言嵌入在CAD内部进行计算和绘制图元,它是一种顺序结构文件,在一定组码符号规定下包括了实体命令和几何数据信息文件。
图1 对象继承关系
图2 图元表示
图3 基础模块调用关系
1.5 简单图元绘制
简单图元绘制示例如图2所示。
2 基于面向对象技术CAD自动绘制铁路长途干缆设计图的实现
2.1 软件结构设计及模块划分
此次开发的自动绘制干缆程序以功能化、实用化为目标,采用面向对象设计思想,有利于根据铁路通信业务需求对业务逻辑进行修改和扩展。(1)将设计目标的功能细化,通过学习设计标准和设计原则寻求设计目标的精确性;(2)采用组件函数设计实现复杂化向通用化转变,将设计目标按功能和内容划分为各级子模块,降低耦合度,提高模块间内聚,若铁路通信设计标准有所变化,只需要修改相应模块,如图3所示。
2.2 区间建筑、设备、图框设计模块
区间建筑房屋、设备点设计过程中的一个重要思想就是分段处理,在平面图绘制中,必须要以包含区间布点里程信息、线路上桥隧信息、基站设置情况(各专业提供的Excel表格),外部数据文件作为绘制条件写入数组[1],通信机械室(站房)、隔离开关、光缆分歧头及桥隧的所有里程,先对所有数据∑ak=a1+a2+…+an求和,式中,k为整数集合的长度或总量,定义小于n且和n互质的数构成的集合为Array<z>,称呼这个集合为n的完全余数集合,对于互质的整数a和n,有a^φ(n) mod n=1,让数组中每n个元素中最后一个作为本组的结点,再对总数量分组求和后下一个元素插入点的X轴向后划定间距,整数集合存在n= kp+r,式中,n为最大因子,k为系数,p为正整数,r为余数,根据余数变换坐标点期间捕捉一个设备的插入点的X轴作为坐标转换原点,然后遍历整个数组再根据数组下标来动态计算其他图元的X轴和Y轴坐标,将这些数据总数量求模取余计算后分段存储在集合中并封装成函数,通过调用所需函数即可分段绘制出所需区间设备组平面图框架,此时图框也可根据余数来确定个数,通过个数进行矩形坐标点变换即可按分组绘制标准图框,同时解决了美观问题。但是针对光缆分歧盒设计是按千米盘长决定的,与其他设备点里程对应关系有差别,这也是程序设计中的难点。另一个难点就是连续桥分段处理,即同一架桥体现在两段图框平面中的坐标变换。程序中要注意的地方很多,对于一个链表结构的集合,需要考虑加入断链表后,断链表中里程的实际里程如何转换为在平面图中的实际位置,这也是按图纸图面进行节约长度的处理。
2.3 区间光电缆引入、引出路径设计模块
除上、下行主干线外,难点在于区间光电缆路径的建立,程序中首要考虑的是每个房屋、每个设备有无光电缆引入、引出,如果存在,就构建结构体函数,
例如,通信机械室有引出光缆到隔离开关1,也引出到救援通道1,上一个邻接组中的基站也有到通信机械室的光缆引入,还有回路情况,此时应按照多对多的数据结构关系进行程序设计。多对多的数据关系意为多个集合之间的数据关系,该关系中第一个集合中的一个行可以与第二个集合中的一个或多个行相关联。第二个集合中的一个行也可以与第一个集合中的一个或多个行相关连。在没有借助数据库系统的情况下,只能通过图结构、树型结构来构建结构体模拟数据库查询功能,通过读写Excel文件来对数据结构重组完成集合数据对应关系,为了节省内存开销我们选用嵌套遍历后折半查找算法,求出拥有引出线缆的房屋结果集。
下面提供一段集合中折半查找实现的伪代码:
BinarySearch(max,min,des)
mid-<(max+min)/2
while(min<=max)
mid=(min+max)/2
if mid=des then
return mid
elseif mid>des then
max=mid-1
else
min=mid+1
return max
将第一个集合中的n个元素分成大致相等的两部分,用第二个集合中存在的引入设备的结果集X跟其做比较,取a[n/2]与X做比较,如果X=a[n/2],则找到X,算法中止;如果X<a[n/2],则只要在数组a的左半部分继续搜索X,如果X>a[n/ 2],则只要在数组a的右半部分搜索X,时间复杂度无非就是双层遍历的次数。时间复杂度可以表示为O()=O(logn)。这样做是因为CAD软件是个单线程的程序,避免了出现笛卡尔积的情况。此外,程序还需考虑区间干线的走向及过轨位置;线缆的单侧敷设还是双侧敷设;在单线桥的地方,还要根据桥上是否有设备以及根据通信机械室或基站的位置来确定线缆是否分开绕行;还应根据设计规范考虑在上设备杆时和上桥时线缆的弯曲系数;程序就是按照以上设计原则布置各设备干线及区间支线光电缆的走行情况[2]。
2.4 基础数据的读写
该程序为单线程执行,所有后台数据都是按格式读写Excel表格,包括自行编制的平面数据及配置文件,通过引用微软的COM组件并将其转换成.NET组件才可以在程序中正常调用。考虑到每位用户Excel存放位置不同,我们将提供对话框选取形式获取Excel文件,避免移植到其不同用户机上的路径问题。
3 结论
此次研发的铁路长途通信干缆自动绘制软件基于AutoCAD2015平台,在.NET2013开发环境下利用C#语言进行铁路通信施工图的设计与开发,在设计周期短的形势下,快速准确、保质保量地完成了设计任务,为各站按时开通奠定了基础。
目前该设计软件只应用于客专线路,针对普速线路的情况,今后还需做进一步的扩展和完善工作,期望满足各种线路及区间设计要求。
【1】罗法水.铁路站场平面一体化应用的研究及开发[J].铁道标准设计,2005(6):12-13.
【2】易思蓉,庄海珍.一种大型带状数字地形模型数据结构[J].铁道勘察,2004(5):34-36.
Study on Long-distance Railway Trunk Cable Designs by CAD Automatic Plotting Based on Object-oriented Technology
LU Wei
(China Railway Fifth Survey and Design Institute GroupCo.Ltd.,Beijing 102600,China)
Nowadays,long-distance railway transport is increasing year by year,asking for more from the railway trunk cable.As the study on long-distance railway trunk cable designs by CAD automatic plotting based on object-oriented technology,this paper makes an introduction in three parts.It has important theoretical and practical significance to promote the designs of trunk cable,short section light and cable line engineering and front end equipment of interval video monitoring system to a higher level of integration,intelligence and standardization.
algorithm analysis;object-oriented design;optical cable inlet and outlet calculation;line-side equipment
TP391.72
A
1007-9467(2016)09-0178-03
2016-08-20
芦苇(1983~),男,河南郑州人,工程师,从事通信设计、软件工程研究。