江西理工大学2014届本科生毕业论文(设计)
)
(princ “\\n请检查支持文件的安装,然后重试。“) (princ) )
;;;=====Autoload LISP Applications =====
; set help for those apps with a command line interface (command“netload”“C:\\\\roadset\\\\roadBZ”) (setfunhelp “c:gotour””””gotourl”)
(3)启动CAD,在CAD命令框中输入“LoadRoad”命令,加载应用程序菜单(针对于初次运行该软件)。
(4)字体样式设置,选择所需字体。字体一般选定为宋体,这软件能识别的字体是宋体。
图2-12 设置字体
图2-13 设置文字样式
9
江西理工大学2014届本科生毕业论文(设计)
2.3.2 应用过程
2.3.2.1 pl命令绘制征地红线
高铁用地图上少不了征地红线,征地红线是划定大部分征地的界限。而巨长的征地红线绘制时是使用pl命令完成的。有些高铁施工单位提供的竣工资料只含有坐标,缺少边桩的里程、左右偏距。这种情况下只能使用pl命令来绘制征地红线。如果这一段的点位较多,可以首先在Excel表中批量获取每个点位的x、y坐标。复制粘贴在pl命令下,就能批量绘制生成高铁征地红线。并且在后期修改点位方便迅捷。
2.3.2.2 公路边桩绘制工具
公路边桩绘制工具如图2-1
公路边桩绘制工具的使用和上面介绍的过程基本一致。(这里的实际操作图形和表格数据省略,后面二次开发后会统一给出):
a. 对于一段线路,首先是确定它的线路中线,对它使用“起始里程设置”
命令,定义好这一段线路中线的起始里程,改正数,道路边桩的字体大小。这个过程是为绘制边桩提供起始依据的。
b. 线路中线定义好后,分两种情况绘制道路边桩。一种是根据已知坐标来
绘制道路边桩,根据提供的边桩x、y坐标输入到计算机内,一个个生成道路边桩。另一种情况是提供了边桩的里程和偏距,使用“使用里程绘制边桩”的命令。根据CAD底下命令窗口出现的提示一一输入要的数据,如边桩里程,左右偏距等信息。这里要注意偏距有正负之分,里程从小到大方向右偏距为正,左偏距为负。如果左右偏距弄混,绘制的铁路用地图就会出错。
c. “导出边桩信息”命令是导出图上边桩点的里程,偏距,坐标等信息,
既可以导出普通边桩也可以导出安全边桩的信息。这些信息用于最后描绘各地的征地地理位置。
2.4 普通CAD绘制铁路用地图存在的问题与缺陷
2.4.1 普通CAD的特点
a.工作费时费力,效率很低下,必须一个个输入坐标或里程偏距来绘制边桩; b.在后期出错更改时只能一个个点进行查找,然后把错误的一个个更改回来; c.在制作铁路竣工图时,界址点必须一个个根据原来界址点的角度旋转后才能与线路中线对齐。
总之早期的CAD在绘制铁路用地图时只能单个半自动地完成用地图的绘制工
10
江西理工大学2014届本科生毕业论文(设计)
作。
2.4.2存在的问题
早期建设的高铁少,里程短,复杂程度低,沿路的征地面积也少。上面改造过的CAD处理这种数据量少,数据简单,图形简易的铁路用地图能适用。但随着现在国家提出了中国高铁近中期规划,“四纵四横”客运专线正在中国慢慢展开。高铁用地图绘制工作难度因此加大,征地面积几十倍的加大,线路交叉重叠,错中复杂。
而早期CAD在已知道路边桩坐标和已知里程,偏距条件下绘制道路边桩都只能一个个输入,来绘制道路边桩和安全边桩。
2.4.3 缺陷
AutoCAD软件不足的主要表现为: (1)图形输入工作量大、效率低。
(2)若需生成系列图纸,CAD人员只能通过大量修改,“人工”参数化绘图。
(3)费时巨大,效率极低,易出错,并且更改错误很繁琐。无法一起自动化处理大量数据,只能单个自动标注道路边桩。很难满足中国高铁高速建设的要求,严重影响铁路的正常运营与使用。
(4)由于大量的坐标、里程、偏距等数据的人工输入计算机,很容易出错,造成图形的错误。
就比如此次的沪昆高铁是江西省内第一条严格意义上的高速铁路,南昌铁路局就希望这条高铁能顺利完美的建成通车。高铁用地图能正确,快速的提交。但如果使用早期这种CAD是无法完成这个工程项目的。这就要求我们改善工作使用的工具。
2.4.4 改进的目标与要求 目标:
1.能批量绘制道路边桩和安全边桩,快而准确。避免一个个数据纯手工输入进计算机。
2.能快速的识别出一些简易错误,并且及时给使用者报错。例如输入的坐标整数部位不是6位数,就及时提醒技术人员。
要求:
1. 提高高铁竣工图绘制的效率,包含加快绘制速度,绘制的边桩准确无误。尽量实行计算机全自动绘制边桩。少量工作依靠技术人员的手动调整。这样
11
江西理工大学2014届本科生毕业论文(设计)
就能保证高铁建成的后续工作能快而准的完成,不会滞后高铁的正常营运时间。
2. 软件算法或程序中加入一些限制条件和报错程序,使这个软件得到优化。提前排除某些错误数据的干扰。
12
江西理工大学2014届本科生毕业论文(设计)
第三章 CAD二次开发的技术思路及开发后的功能
3.1 CAD的二次开发
CAD二次开发的简单介绍:
(1)二次开发的定义:二次开发是指在通用的平台软件上,利用其开发接口进行特定的功能定制开发。 (2)二次开发的缘由
通用的平台不能或者不方便实现某些特定的功能,这些特定功能往往是: 1)一组命令的集合。通用平台需要多次操作才能实现,通过二次开发可以很方便的将这些简单功能整合成一个命令,方便用户使用。例如,标注道路边桩符号(也可以通过块和属性定义);
2)需要一些专业的计算。通用平台不提供专业计算,只有通过二次开发实现。例如,在AutoCAD下绘制Bezier曲线,需要根据给定的控制点计算曲线上的离散点坐标。还有如InteCAD的尺寸驱动功能,参数化过程需要进行复杂的CBA算法支持,这些都需要进行二次开发实现。
3)需要数据库的支持。通用平台一般不方便提供数据库支持,只有二次开发工具通过ODBC或者其他方式访问数据库系统。如标准件库系统。
另外,典型零部件设计系统(齿轮,蜗轮,轴,链轮,皮带轮等)不但需要使用多个命令调用,进行专业计算,还要数据库的支持,它是典型的二次开发系统。
(3)开发的原理
C/C++二次开发程序执行原理是通用平台在载入二次开发生成的可执行程序时,第一步直接回调其入口函数Initialize(),而二次开发程序在此进行初始化,并调用具体的函数来实现二次开发的特定功能。第二步调用另外入口函数UnInitialize(),执行程序退出前的操作。 (4)进行二次开发的过程
不同的通用平台提供不同的二次开发接口,一般的都提供C/C++语言编译型开发接口。(有的还提供Basic语言、LISP语言等解释型开发接口) C/C++语言二次开发的步骤:
1)编辑C/C++源程序,使用该平台提供的二次开发接口API函数或类; 2)编译、链接,生成可在该通用平台下运行的可执行程序.EXE或.DLL; 3)在通用平台下载入可执行程序,执行得到相关的结果。
3. 2 自动批量绘制道路边桩的算法实现及应用
本文所提供的道路设计图是AutoCAD 的DWG 格式数据,道路中线为多段线,
13