欢迎来到天天文库
浏览记录
ID:12608589
大小:25.50 KB
页数:4页
时间:2018-07-18
《基于objectarx的交通工程绘图系统的研究与开发》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、基于ObjectARX的交通工程绘图系统的研究与开发 1引言 在市政设计领域中,交通标志的绘制及其工程量统计非常重。在长达数十公里的道路上,按照设计规范逐个绘制标牌,并加以统计,是一项较为耗时的工作。为此,需要利用计算机辅助制图进行参数化设计。根据GB768-2016中关于道路交通标志的规定,本文将常用的交通标志归为以下几类:警告标志47种、禁令标志48种、指示标志36种、指路标志79种、旅游标志17种、辅助标志22种,并制作成模板保存到Dwg文件中。根据设计需要使用模板时,其内容和尺寸都可能被调整,这给参数化设计带来一定挑战。为此,本文使用基于DWGdirect的图形交互技
2、术,增强参数化体验;通过深度克隆技术,快速绘制参数化修改后的标牌;再结合标牌属性的自识别,实现一键式工程量统计,提高整体设计效率。 DWGdirect图形交互技术 DWGdirect源于开放设计协会,是一套针对CAD文件读写的高质量类库。它可以独立于AutoDesk平台对DWG文件进行读写操作及图形查看,方便集成到Winform窗体上。本文设计的软件系统中,将DWGdirect与.net的Panel相结合,构建交通标志的展示区,如图1中的黑色背景区域,并支持标志内容的实时编辑,联盟为用户提供了高效的交互途径。 DWGdirect加载图形文件 在读取文件之前,需要通过创建的
3、实例来注册服务,这是调用所有DWGdirect方法的前提。文件的读取首先要通过DatabaseServices实例化数据库,然后运用ReadDwgFile方法读取指定图形文件。打开方式尽量使用OpenForReadAndAllShare模式,减少文件占用报错的机率。读取文件到数据库后,需要将其指定为当前工作的数据库。 2.图形交互控件的初始化 先从文件加载绘图模块并创建绘图驱动器。这涉及到命名空间下的GsModule和Device类。然后通过Device的WindowHDC属性绑定Panel控件。接着为Dwg数据库指定上下文ContextForDbDatabase,并启用Us
4、eGsModel属性。最后通过方法启动视图,完成交互控件的初始化。 图形编辑 针对交通标志,主要是编辑标志中的文字内容,这需要文字的选取和修改两个步骤。文字的选取主要通过绘图驱动器graphichsDevice的ActiveView,得到当前视图,然后调用其Select方法,并传入鼠标点击的位置坐标,从而得到文字对象的ID。再用TransactionManager啟动一个事务,根据ID得到文字对象,修改对应的内容、颜色等属性即可。 深度克隆技术 参数编辑后的交通标志需要绘制到用户CAD中,这里通过数据库之间的克隆技术来实现。克隆时需要考虑实体、符号表之间的关联,保证克隆的
5、完备性。ObjectARX中数据库对象的封装,包括命名对象字典、块表、层表、字体样式表、标注样式表、线型表、视口表、UCS表、注册应用表等,它们的对应关系如图2所示。这些关系中包含硬所有、软所有、硬指针、软指针等关联关系。调用WblockCloneObjects,通过深度克隆将标牌模板中的实体,及其对应的图层、字体、线型等具有指针关系和所有关系的对象,一并复制到当前图形中。 标牌属性自识别 标牌自识别通过扩展数据XData来实现。该机制方便自定义的应用程序进行简单的读写操作。同一实体可以为不同应用程序存储数据,这需要通过事务将RegAppTableRecord添加到应用程序符
6、号表中,完成应用程序名的注册,并通过数据类型,指定扩展数据所属的应用程序。XData支持的数据类型有限,其DXF组码范围为[1000,1071],且每个实体的Xdata数据最大为16K。我们仅将标牌的类别、形状、尺寸、备注等关键信息存储到标牌外框的扩展数据中,供标牌统计时使用。 结语 通过对DWGdirect开放类库,以及深度克隆和扩展数据等AutoCAD二次开发技术的研究与讨论,对交通标牌的绘制与工程量统计提出了有效解决方案。其效率在实际工程应用中得到证实。交通标线的识别与自适应绘制将是下一步的研究重点。
此文档下载收益归作者所有