欢迎来到天天文库
浏览记录
ID:27187126
大小:55.50 KB
页数:7页
时间:2018-12-01
《基于铁路选线cad系统的图形接口方法与交互技术》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、基于铁路选线CAD系统的图形接口方法与交互技术 摘要:运用Visualc++2005和0bjeetARX2008开发工具,探讨图形实体的创建与实体属性的设置方法。 利用结果缓冲区、DXF接口方法和ObjectARX类函数,实现图形数据自动提取和图形交互功能。以此为基础开发的线路设计系统,在一些设计单位完成了多项线路工程设计,取得良好的经济效益。 关键词:计算机辅助设计;铁路选线;ObjeetARX开发工具;图形交换文件 随着计算机图形学理论和技术的迅猛发展,针对各行备业出现了多种计算机绘图和计算机辅助设计CAD(puter
2、aideddesign)的软件和开发工具,为工程设计人员提供了现代化的设计手段,提高了设计效率和绘图质量,使设计图纸更加规范化。 20世纪90年代利用AutoCAD等软件的交互式绘图,已经为工程技术和科技工作者绘图提供了很大的便利,但绘图速度和效率仍不能满足设计人员的要求。为此,利用面向对象的程序设计方法,采用绘图软件的开发工具包,开发人工智能和自动绘图的计算机辅助设计软件,已成为设计自动化的发展趋势。 近年来,土木、建筑、机械制造与设计行业在计算机辅助设计方面的研究工作取得了重要成果。 随着航测和遥感技术的发展,出现了航测
3、地形图、遥感影像图及数字地面模型等数字和图像产品,为铁路选线设计自动化和可视化奠定了基础。本文基于AutoCAD2008绘图平台和ObjectARX2008开发工具,运用Visualc++2005语言,探讨铁路选线设计图形接口方法和交互技术,通过对AutoCAD图形数据库的操作,在前台进行线路的平、纵断面的交互设计,在后台自动获取并存储设计数据,最后调用设计数据自动绘制线路平面、纵断面设计图。这种铁路选线CAD系统的实现,可为设计部门提供实用、快捷、方便的现代化设计工具,大大提高设计效率和图面质量。 1、图形接口方法 基于Vi
4、sualC++2005和ObjectARX的图形接口的建立是图形生成的基础。在线路设计图中包括几何属性和非几何属性,图形实体有直线、圆、圆弧及文字等,图形非几何属性有图层、颜色、线型等。所以,建立生成图形的基本图元和属性设置接口,是图形生成的前提。 1.1图形接口的建立 1.1.1结果缓冲区接口方法 (1)结果缓冲区结构在AutoCAD中,实体数据描述表存储在结果缓冲区中,结果缓冲区的结构为: structresbuf{structresbufrbnext;\~向下一个结果缓冲区的指针变量shortrestype;\用
5、来指明resval值的类型unionadsUvalresval;\结果缓冲区节点值的resval变量);resval变量是个同位unionadsUval类型,成员变量有adsrealrreal,rpoint[3];shortrint;charrstring等。结果缓冲区的restype字段,用来指明返回值resval的类型。ADS函数处理实体时,其返回结果缓冲区的restype字段常常是DXF(dradash;adsbuildlist(RTDXF0,LINE,10,Startp,11,endp,RTNONE);entlist=a
6、dsbuildlist(RTDXF0,CIRCLE,10,centerp,40,r,62,color,RTNONE);将实体描述表添加到结果缓冲区中:statusadsentmake(entlist);释放结果缓冲区:adsrelrb(entlist);1.1.2用创建类对象的方法建立接口一幅AutoCAD的图形是存储在一个数据库中的对象的集合。创建实体的过程就是向数据库中添加对象的过程。不同的对象有其对应的子类,如AcDbLine,AcDbCircle,AcDbArc,AcDb2dPolyline,AcDbText等。以AcDb
7、2dPolyline对象的创建方法为例,建立POLYLINE实体接口函数的方法如下: 图形接口定义: voidcreatePolyline(AcGePoint3dArrayptArr,doubledash;line(AcDb::k2dSimplePoly,ptArr,0.0,Adesk::kFalse,dash;Index(color);pNedash;>setLayer(1ayer);以读的方式打开当前图形数据库中的块表,建立指向块表的指针。 acdbHostApplicationServices()>bolT
8、able(pBlockTable,AcDb::kForRead);以写的方式打开模型空间,将块表记录指针指向模型空间数据库。 pBlockTable->getAt(ACDBMODELSPACE,pBlockTableRecord,AcDb:
此文档下载收益归作者所有