- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于ObjectARX交通工程绘图系统探究及开发
基于ObjectARX交通工程绘图系统探究及开发 摘要:在市政道路交通工程设计过程中,交通标牌绘图量大,统计耗时,影响着整个设计项目的进度。本文中设计的交通工程绘图系统,采用DWGdirect中的图形交互技术、ObjectARX中的深度克隆技术,以及标牌属性的自识别技术,从自动化与智能性等方面着手,极大地提高了设计出图效率
关键词:市政道路;DWGdirect图形;工程绘图系统
中图分类号:TP311.52 文献标识码:A 文章编号:1007-9416(2017)01-0165-01
1 引言
在市政设计领域中,交通标志的绘制及其工程量统计非常重。在长达数十公里的道路上,按照设计规范逐个绘制标牌,并加以统计,是一项较为耗时的工作。为此,需要利用计算机辅助制图进行参数化设计。根据GB 5768-2009中关于道路交通标志的规定,本文将常用的交通标志归为以下几类:警告标志47种、禁令标志48种、指示标志36种、指路标志79种、旅游标志17种、辅助标志22种,并制作成模板保存到Dwg文件中。根据设计需要使用模板时,其内容和尺寸都可能被调整,这给参数化设计带来一定挑战。为此,本文使用基于DWGdirect的图形交互技术,增强参数化体验;通过深度克隆技术,快速绘制参数化修改后的标牌;再结合标牌属性的自识别,实现一键式工程量统计,提高整体设计效率
2 DWGdirect图形交互技术
DWGdirect源于开放设计协会,是一套针对CAD文件读写的高质量类库。它可以独立于AutoDesk平台对DWG文件进行读写操作及图形查看,方便集成到Winform窗体上。本文设计的软件系统中,将DWGdirect与.net的Panel相结合,构建交通标志的展示区,如图1中的黑色背景区域,并支持标志内容的实时编辑,为用户提供了高效的交互途径
2.1 DWGdirect加载图形文件
在读取文件之前,需要通过创建Teigha.Runtime.Services的实例来注册服务,这是调用所有DWGdirect方法的前提。文件的读取首先要通过DatabaseServices实例化数据库,然后运用ReadDwgFile方法读取指定图形文件。打开方式尽量使用OpenForReadAndAllShare模式,减少文件占用报错的机率。读取文件到数据库后,需要将其指定为当前工作的数据库
2.2 图形交互控件的初始化
先从WinGDI.txv文件加载绘图模块并创建绘图驱动器。这涉及到Teigha.GraphicsSystem命名空间下的GsModule和Device类。然后通过Device的WindowHDC属性绑定Panel控件。接着为Dwg数据库指定上下文Context ForDbDatabase,并启用UseGsModel属性。最后通过LayoutHelperDevice.SetupActiveLayoutViews方法启动视图,完成交互控件的初始化
2.3 DWGdirect图形编辑
针对交通标志,主要是编辑标志中的文字内容,这需要文字的选取和修改两个步骤。文字的选取主要通过绘图驱动器graphichsDevice的ActiveView,得到当前视图,然后调用其Select方法,并传入鼠标点击的位置坐标,从而得到文字对象的ID。再用TransactionManager?⒍?一个事务,根据ID得到文字对象,修改对应的内容、颜色等属性即可
3 深度克隆技术
参数编辑后的交通标志需要绘制到用户CAD中,这里通过数据库之间的克隆技术来实现。克隆时需要考虑实体、符号表之间的关联,保证克隆的完备性。ObjectARX中数据库对象的封装,包括命名对象字典、块表、层表、字体样式表、标注样式表、线型表、视口表、UCS表、注册应用表等,它们的对应关系如图2所示。这些关系中包含硬所有、软所有、硬指针、软指针等关联关系。调用WblockClone Objects,通过深度克隆将标牌模板中的实体,及其对应的图层、字体、线型等具有指针关系和所有关系的对象,一并复制到当前图形中
4 标牌属性自识别
标牌自识别通过扩展数据XData来实现。该机制方便自定义的应用程序进行简单的读写操作。同一实体可以为不同应用程序存储数据,这需要通过事务将RegAppTable Record添加到应用程序符号表中,完成应用程序名的注册,并通过DxfCode.ExtendedDataRegAppName数据类型,指定扩展数据所属的应用程序。XData支持的数据类型有限,其DXF组码范围为[1000,1071],且每个实体的 Xdata数据最大为16K。我们仅将标牌的类别、形状、尺寸、备注等关键信息存储到标牌外框的扩展数据中,供标牌统计时使用
文档评论(0)