江西理工大学2014届本科生毕业论文(设计)
CAD二次开发技术在高铁地籍数据处理中的应用
摘要:我国高速铁路快速建设,线路长度不断增长。然而普通Auto-CAD在绘制高铁用地图时用时长,准确度差,效率低下。根本无法保证我国高铁的正常营运。为此工程技术人员对CAD进行专项二次开发以解决此难题。 关键词:高铁;Auto-CAD;二次开发
第一章 我国高铁的建设情况
高速铁路简称“高铁”,是指通过改造原有线路(直线化、轨距标准化),使最高营运速率达到不小于每小时200公里,或者专门修建新的“高速新线”,使营运速率达到每小时至少250公里的铁路系统。高速铁路除了在列车在营运达到一定速度标准外,车辆、路轨、操作都需要配合提升。
高速铁路是一个集各项最先进的铁路技术、先进的运营管理方式、市场营销和资金筹措在内的十分复杂的系统工程,具有高效率的运营体系,它包含了基础设施建设、机车车辆配置、站车运营规则等多方面的技术与管理。
经过几年的不懈努力,我国目前的高速铁路也有了一番让世界瞩目的成就。以下数据可以说明我国的铁路和高速铁路的成就: 2010年底,我国铁路营业里程9万多公里,居世界第二,其中高速铁路的营业里程为7000多公里、在建高铁线路为1.6万公里,居世界第一。
2012年4月18日,科技部公布了《高速列车科技发展“十二五”专项规划》,确定“十二五”期间我国高速列车科技发展的8大目标,其中包括继续“提高高速铁路体系化安全保障技术”“提高列车速度”,以及实现“高速列车谱系化、智能化”等。该《规划》是“十二五”期间指导高铁列车技术发展的科技攻关的重大文件,对推动高铁的发展具有标志性的意义。 竣工用地平面图绘制的主要内容及标准如下:
1.标绘坐标网格,并标注国家坐标系统坐标。
2.绘制线路中线,并标注竣工里程百米标、公里标。在公里标处加注施工里程。
3.标注车站中心竣工里程及区间与车站分界的竣工里程,站、线分界里程以进站信号机为分界点,并加注施工里程。
4.绘制曲线起终里程以及标注曲线要素,桥梁、隧道、涵洞、立交道应标注中心里程并加注施工里程。
5.绘制路肩线、路堤坡脚线、路堑堑顶线。
6.标绘铁路用地界线。当有既有用地时,应标明既有铁路用地界线和新征用地界线。
7.标绘用地界桩点,标注铁路线路中心至铁路用地界线的垂直距离和竣工里
29
江西理工大学2014届本科生毕业论文(设计)
程,双线铁路以下行线为准。用地界标注采用分数表示,分子表示界桩点至线路中心垂直距离,分母表示线路竣工里程。
8.标绘省、县、乡、村各级行政境界线,界标两侧标注省、县、乡、村名,在与线路中心交叉点位置标注竣工里程和施工里程。
第二章 普通cad在高铁地籍资料整理的情况与出现的问题
普通CAD的功能比较强大,应用面广,既可以绘制平面图行,也可以绘制三维立体图形。绘制的对象广泛,包含点线面,线又包括直线,曲线,折线等等。工程上对CAD的应用相当普遍,工程人员对基本命令掌握熟练。因此这里重点介绍下pl命令,也就是绘制多段线命令。
普通CAD具体使用过程如下:
d. 对于一段线路,首先是确定它的线路中线,对它使用“起始里程设置”
命令,定义好这一段线路中线的起始里程,改正数,道路边桩的字体大小。这个过程是为绘制边桩提供起始依据的。
e. 线路中线定义好后,分两种情况绘制道路边桩。一种是根据已知坐标来
绘制道路边桩,根据提供的边桩x、y坐标输入到计算机内,一个个生成道路边桩。另一种情况是提供了边桩的里程和偏距,使用“使用里程绘制边桩”的命令。根据CAD底下命令窗口出现的提示一一输入要的数据,如边桩里程,左右偏距等信息。这里要注意偏距有正负之分,里程从小到大方向右偏距为正,左偏距为负。如果左右偏距弄混,绘制的铁路用地图就会出错。
f. “导出边桩信息”命令是导出图上边桩点的里程,偏距,坐标等信息,
既可以导出普通边桩也可以导出安全边桩的信息。这些信息用于最后描绘各地的征地地理位置。
普通CAD存在的问题与缺陷。早期建设的高铁少,里程短,复杂程度低,沿路的征地面积也少。上面改造过的CAD处理这种数据量少,数据简单,图形简易的铁路用地图能适用。但随着现在国家提出了中国高铁近中期规划,“四纵四横”客运专线正在中国慢慢展开。高铁用地图绘制工作难度因此加大,征地面积几十倍的加大,线路交叉重叠,错中复杂。
而早期CAD在已知道路边桩坐标和已知里程,偏距条件下绘制道路边桩都只能一个个输入,来绘制道路边桩和安全边桩。 AutoCAD软件不足的主要表现为: (1)图形输入工作量大、效率低。
(2)若需生成系列图纸,CAD人员只能通过大量修改,“人工”参数化绘图。
(3)由于大量的坐标、里程、偏距等数据的人工输入计算机,很容易出错,造成图形的错误。
对此技术人员进行CAD的专项二次开发,开发要达到的目标是 1.能批量
30
江西理工大学2014届本科生毕业论文(设计)
绘制道路边桩和安全边桩,快而准确。避免一个个数据纯手工输入进计算机。 2.能快速的识别出一些简易错误,并且及时给使用者报错。例如输入的坐标整数部位不是6位数,就及时提醒技术人员。
第三章 CAD二次开发的技术思路及开发后的功能
(1)二次开发的定义:二次开发是指在通用的平台软件上,利用其开发接口进行特定的功能定制开发。 (2)二次开发的缘由
通用的平台不能或者不方便实现某些特定的功能。1)一组命令的集合。2)需要一些专业的计算。3)需要数据库的支持。 (3)开发的原理
C/C++二次开发程序执行原理是通用平台在载入二次开发生成的可执行程序时,第一步直接回调其入口函数Initialize(),而二次开发程序在此进行初始化,并调用具体的函数来实现二次开发的特定功能。第二步调用另外入口函数UnInitialize(),执行程序退出前的操作。 (4)进行二次开发的过程
不同的通用平台提供不同的二次开发接口,一般的都提供C/C++语言编译型开发接口。(有的还提供Basic语言、LISP语言等解释型开发接口)
边桩自动绘制流程如下:
①设置中线的起始里程及从哪端为起点等相关属性,为方便今后访问,中线属性存入XData 中; ②选择边桩对应中线( 可能存中线分段情况) ; ③输入边桩数据( 给定里程或边桩坐标) ; ④判断中桩落在哪个片段上,并判断片段类型; ⑤选择相应算法,计算中桩点M,计算边桩点P( 如果输入数据是给定里程) ; ⑥计算M 到P 的方位角,这个方位角用于绘制边桩数据的文本信息,保证文本标注和边桩线方向一致,即控制文本标注的旋转角度,利用此方位角加/减一个微小角度,计算出文本标注位置; ⑦绘制边桩线及相关信息。
第四章 二次开发后的CAD实际应用情况与评价
开发后的CAD在沪昆高铁上的实际应用如下,根据施工单位提供的表格坐标数据,结合二次开发的CAD绘制出如下高铁征地图。
31
江西理工大学2014届本科生毕业论文(设计)
上图是沪昆高铁高安市祥福镇的局部征地图 铁路两侧新出现的红色线条与数字就是征地红线
通过该软件在沪昆高铁上的实际应用,验证了系统的可靠性,结果表明该公路边桩绘制工具的性能是可靠的、高效的。
第五章 cad二次开发的结论与展望
CAD开发的简单背景,即:基于自动绘制算法和绘制流程,利用Auto-CAD 二次开发组件ObjectArx + C#编程生成DLL 动态库,在AutoCAD 利用netload 命令加载运行。这里具体介绍ObjectArx。
ARX是AUTO-CAD R13之后推出的一个全新的、真正意义上的面向对象的开发环境。它采用各种类库,功能更为强大,编程更为简洁。其开发语言为VC++。
ARX程序有如下特征:(1)能力强 (2)速度快 (3)面向对象编程 在实际应用中发现二次开发后的CAD具有如下特性: (1).能力强
一组命令的集合。通用平台需要多次操作才能实现,通过二次开发可以很方便的将这些简单功能整合成一个命令,方便用户使用。例如,标注道路边桩符号。它能集多种命令于一体,给实际的工作带来了很大帮助,省时省力。能力强还体现在它能处理非常复杂的图形,只要工作人员理清分支图形,它都能正确绘制图形。
(2).速度快
需要一些专业的计算。通用平台不提供专业计算,只有通过二次开发实现。例如,在AutoCAD下绘制安全边桩,需要根据给定的里程计算直线上的长度偏距。这些计算是在二次开发中加入的某些算法实现的。能快速提升绘制铁路竣工图的速度。还比如多种批量绘制工具的开发,能打包一起处理大量数据,且有时短而 32
江西理工大学2014届本科生毕业论文(设计)
快。
但它也有不足之处,(1).由于此次的二次开发是在ARX环境下实现的,因此它有更大的危险性和破坏性。首先,ARX程序比ADS要复杂得多。(2).在绘制道路安全边桩不能同时上下隔100米同时绘制,使得必须分开来上半边和下半边多次绘制。(3). ARX应用程序是一个动态连接库,调试时需要频繁启动AUTO-CAD,额外消耗的时间比Windows下的ADS多。 根据这些不足之处,有如下改进建议:
(1)尽量优化批量绘制的某些算法,加快批量绘制的速度,且不会让电脑死机。此外再加某些程序让绘制的边桩从小里程到大里程,从偏距小的到偏距大的绘制。这也算二次开发不彻底,在实际工作中会带来比较多的麻烦。这些麻烦只能靠大家一个个人工调整过来。
(2)降低二次开发对AUTO-CAD和操作系统带来的危险性和破坏性。在长期工作中,大家经常碰到AUTO-CAD出现致命错误而无法操作,有时还无法保存前面的大量操作。绘制的图形文件也会因此有所损坏。
(3)道路安全边桩的绘制无法全自动完成。安全边桩的四个命令还需集体优化,无法在铁路中线上下每隔100米自动绘制安全边桩。只能重复定义两条中线和安全边线后分别上下绘制安全边桩。这还极易出现软件错误。
本文介绍的是为满足高铁竣工图的高效绘制而对CAD进行的专项二次开发。其实在很多其他领域中,普通CAD也很难满足专项工程的应用。所以为满足各类工程应用的需求,对CAD或其他工程软件的二次开发是很重要的工作。这项工作能更好的改善工程软件,让这个软件的使用更有针对性,高效性。
33