(水利水电工程专业论文)基于objectarx的水闸闸室cad系统研究与开发.pdf_第1页
(水利水电工程专业论文)基于objectarx的水闸闸室cad系统研究与开发.pdf_第2页
(水利水电工程专业论文)基于objectarx的水闸闸室cad系统研究与开发.pdf_第3页
(水利水电工程专业论文)基于objectarx的水闸闸室cad系统研究与开发.pdf_第4页
(水利水电工程专业论文)基于objectarx的水闸闸室cad系统研究与开发.pdf_第5页
已阅读5页,还剩70页未读 继续免费阅读

(水利水电工程专业论文)基于objectarx的水闸闸室cad系统研究与开发.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 摘要 随着生产技术的发展,传统的水工设计方法也在水工设计理论的基础之 上,寻求新的技术方法,以提高生产效率、缩短设计周期、减少工作量及提 高设计中的自动化程度。将o d 二次开发技术应用到水工设计中,为传统的 水工设计增加了新的生命力。 作者采用c a d 的面向对象二次开发技术,以a u t o o 2 0 0 7 d rw i n d o w s 和m i c r o s o f tw i n d o w s ) 【p 为支撑平台,m i c r o s o f t s u a ls t u d i o n e t2 0 0 5 及 o b j e c l a r xf o r a u t o c a d 2 0 0 r 7 为开发工具,开发出一套适用于多闸孔的整体式 平底板与平面闸门闸墩结构型式的中小型水闸闸室计算机辅助设计系统。利 用本系统,可以明显缩短设计周期,有效的提高的生产效率,系统生成的施 工图可应用于工程施工。 本文首先分析了目前计算机辅助设计技术的研究背景和发展现状,然后 介绍了几种已有的a u t o c a d 二次开发工具,并对其进行了对比,提出了使用 0 b j e 魄幔x 进行水闸闸室二次开发的可行性和必然性。然后介绍了 o b j e c 魄r x 2 0 0 7 的特征、功能以及它的类库和程序结构。本文对水闸闸室设 计原理从结构力学角度进行了详细的分析,说明了水闸闸室的计算方法。提 出了利用0 b j c c 哦r x 2 0 0 7 进行a u t o a m 二次开发的基本思想和组织结构,详 细介绍了本系统的研究内容和实施方案,以及几个重要模块的功能和开发方 法,并重点介绍了课题实施过程中一些重要问题的解决方法。最后给出了本 系统的安装说明、使用说明和运行实例,对所做的工作进行了总结,并指出 了今后研究工作的方向。 关键词:c a da u t 0 c a d 水闸 面向对象o b 归她r x m f c a b s a c t a b s t r a c t w i i ht h ed 钾e l o p m e n to fp l o d u c e 衄c h n o l o g y ,t r a d i t 蛔n a ld c s i 鲈麟油o do f h y d r a u l i ce n g i n e e r i n gi sc h 锄g e d n 哪d 锚i 印m e t h o di sb e 锄幽e dt oi m p r o v e p r o d u e 伍d c y 、s h o n 肋d 髂i 掣血gp 痂d 、d e c r c a w o d d o a d 髓da d v 柚 a u c o m a t i z a t i i nd c s i 伊1 ta d d 。dv i t a l i t ) ,f o rd c s i 盟o fh y d r a u u ce n g i n e 唰n gb y a d a p t i n gc a dd c v e i o l 涵gt c c h n o l o g y a d o p 咖g ( 瑚) s 州c c td c v d o p i n gt e c h n o l o g y ,m c 卸t h o rd c v e l o p sm es l u i c e c b 御曲盯c a ds y s t e mf o rw i l l f i l l 锄o u to fs l u i c c - h o l e 弛dt h cw h o l et y p eo fn a t s l u i c c l e p l a t e 柚ds l u i c cp i e rf o rn a ts l u i c eg a t ei nm e d i u m 0 rm j 陆一s 砌s l u i c co n m ea u t o c a d 2 0 0 7f o rw i n d o j l ,s m i c r o s o f tw i n d o w s s u p p o r t 她p i 缅皿b y t a 虹gm i c f o s o f 【s u a ls t u d i o n e t2 0 0 5a n do b j e c t a r x 参d ra n t o c a d 2 0 0 7 笛 d e v e l o p i n gt 0 0 1 t h es y s t c m t0 n l yc a n0 _ b v i o 惦l ys h o n e nd 髓i 粤l i n gp c r i o db u ta l i n l p 玎o v ce 颤c i 朋蛆dt h cs y s l c m 啪m a :k c m cd r a l i n g sw h i c hc 蛆b cu d 五o r p r 嘲e c t ht h i sp a p c r ,a t 丘r s tt h e 卸t h o r 蜘a l y s e st h eb a c k g r o u n da n dt h ed e v e i o p m e m o fa u t o c a dt e c h n o l o g y a 丑dt h 髓i n t r o d u c e sa n dc o n t r 弱t ss c v e r a im e t h o d so f a u t o c a d ss e c o n dd e v e l o p m e n t ,蛆dp o i n t so u tt h ef e 勰i b i l i t y 卸di n e v i t a b i l i t yo f u s i n go b j e c t a r xi nd e v e l o p i n gt h es l u i c ec h a m b e r a n dt h e ne x p o u n d i n gt h c c h a r a c t e r 、f i l n c t i 姐dt h ec l a s sl i b r a r yo f0 b j e c t a r x 2 0 0 7 t h ed e s i g nt h e o r yo f t h cs l u i c e c h a m b e r i s 蛆a l y z e d i n t l l i sp a p e r a n db r i n g s f o 州a r d 也e b a s i c i d e ao f u s i n g0 b j e c t a r x 2 0 0 7i nn l ca i u t o c a d ,ss e n dd e v e l o p m e n t ,p o i n t so u t 饥 r c s c a r c hc o n t e n t s 、t h ei m p l e m e n tp r q e c t 卸ds e v e f a li m p o n 柚tm o d u l c so fi h i s s y s t e i n ,孤dt h er e s o l v to fs o m ei m p 咖tp r o b l e m sa r ei n t r o d u c c d a tl 舔t ,t h e p a p e ro f f e r st h eh e l po fi n s t a l l i n g 柚du s i n 岛a n dt h ew o r ko ft h i sp a p e ri s s u 衄a r i z c d ,t h e 曲e c t i o ft h e s e 孙c hi sp o i n t e do u t k e yw o r d 懿c a d a u t 0 c a d ;s l u 波;o b j e c t 州咄o b j e 曲呶;硼f c ; m 学位论文独创性声明 学位论文独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的 研究成果。据我所知,除了文中特别加以标注和致谢的地方外,论文中不包含 其他人已经发表或撰写过的研究成果,也不包含为获得南昌大学或其他教育 机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何 贡献均己在论文中作了明确的说明并表示谢意。 学位做作者签名c 矧铴奔签字魄 学位论文版权使用授权书 本学位论文作者完全了解南昌大学有关保留、使用学位论文的规定,有权 保留并向国家有关部门或机构送交论文的复印件和磁盘,允许论文被查阅和借 阅。本人授权南昌大学可以将学位论文的全部或部分内容编入有关数据库进行 检索,可以采用影印、缩印或扫描等复制手段保存、汇编本学位论文。同时授 权中国科学技术信息研究所将本学位论文收录到中国学位论文全文数据库, 并通过网络向社会公众提供信息服务。 ( 保密的学位论文在解密后适用本授权书) 学位论文作者签名c 手写,唾麟 签字日期:肿 月哆日 导师签名( 手写) :掀 签字日期:仍习年2 月乞:弓日 j 1 第一章绪论 第一章绪论 1 1 课题的背景及研究意义 1 1 1 课题的背景及研究现状 计算机辅助设计( c o m p u t e r 硝d e dd e s i 印) ,简称。蛐,是指以计算机作 为主要的技术手段来生成和运用各种数字信息和图形信息,以进行产品的设 计。其主要服务于建筑、机械、电子等行业的总体设计,外型设计,结构设 计,优化设计,有限元的前后置处理等环节。它涉及到计算机科学、计算数 学、计算机图形学、数据结构、数据库、软件工程、力学、结构工程等科学 领域。 随着计算机技术的发展,计算机辅助技术( o k d ) 已经广泛应用于各门 专业的设计和研究领域以及国民经济的各个方面。在工程设计的过程中逐步 实现自动化,这是当今发展的趋势【1 1 。 就这几年来说,水利部门的设计绘图已经充分采用计算机辅助绘图。然 而,就本人在攻读硕士学位研究生前的多年工作经历来看,大多数设计人员 仍然是处于采用手工设计,计算机绘图的初级阶段。这一方面表明计算机辅 助绘图是大势所趋;另一方面以本人的经验来看,手工画一幅复杂的水工设 计图的工作量并不比计算机绘图( 用a u t o c 仰绘图软件) 要多多少。可见, 计算机绘图除了可以较好地保存图纸和便于修改外似乎没有更好的显示其优 势和特点。 要改变这种情况,就必须开发针对水利工程专业的专业化计算机辅助系 统。这种系统,应该有充分而详尽的水工特征构件图可供绘图调用;较好的 计算手段。简而言之,就是具有充分灵活性的、自动化的、专业化的计算机 辅助设计系统。但我们面临的实际困难是,由于水工构件的不规则性以及复 杂性,要完成一套完整的这个系统短时间是相当困难的【2 】。 水闸是一种低水头水工建筑物,具有挡水、泄水的双重作用,在水利工 程中应用十分广泛【孤。水闸闸室是水闸工程的主体,是对水闸起控制作用的最 第一章绪论 重要结构组成部分,在建造和运行管理过程中,承受着不同工作条件下的荷 载组合情况,其设计和施工非常复杂。 目前,设计部门在设计水闸闸室的过程中,大致过程如下: 1 根据过流要求计算闸孔尺寸,并按规范要求拟定相应的底板与闸墩的结 构型式和尺寸: 2 进行不同工况下的闸室稳定计算、地基允许承载力计算和渗流计算; 3 进行水闸闸室底板结构计算; 4 进行闸墩结构计算; 5 进行水闸底板与闸墩配筋计算,绘施工图。 从以上设计过程中可以看出,水闸闸室的设计工作量大,图形表达烦琐, 因此采用计算机辅助设计技术是有效解决水闸设计的主要途径之一,它具有 如下的优点: 提高设计出图的速度与质量 提高计算的精度 实现。蛐数据的共享 减少设计人员繁重的查表和计算工作 便于图纸修改和保存 根据本人查阅大量的文献资料得知,到目前为止,虽然国内已经有一些 关于水闸闸室的计算机辅助设计系统,并且这些辅助设计系统基本都能够较 好的解决水闸闸室设计中的结构计算问题,但是,它们都有一个共同的缺憾: 就是大部分的辅助设计系统未能很好的解决施工图的绘制和输出问题。 正是在这种背景下,笔者决定将计算机辅助设计技术应用于水闸闸室的 设计,尽可能的解决好旌工图的绘制和输出问题,开发出一套能够直接应用 于生产的辅助设计系统,以探讨计算机辅助设计( c a d ) 技术在水利工程中的应 用,并将其作为硕士论文研究课题。 , 1 1 2 课题研究的意义 目前,用传统手工计算和绘图来进行水工设计已经不能适应我国水利事 业的发展,加快设计速度已成必要,而利用a 姬技术则是达到这一日的的已 知的最有效手段。 2 第一章绪论 随着科学技术特别是计算机技术的发展,c a d 技术几乎推动了一切领域 的设计革命,其发展和应用水平成为衡量一个国家科技现代化水平的重要标 志。由于c a d 技术本身十分复杂,对于非计算机专业要解决本专业的问题而 要使用c a d 技术,从底层做起是非常困难的,而且也是没有必要的。要解决 的问题应该是在已有的图形系统上进行二次开发。所谓的二次开发,就是对 某一c a d 平台系统的再次开发;是将应用对象所遵行的各种规范、习惯,以 约束关系的形式增加到这一平台系统的约束集中,用以扩大该平台系统的约 束集,提高其智能程度的软件开发过程【4 】。该方法的中心点都是围绕着向平台 增加专业约束这一开发的中心问题进行,充分体现二次开发的本质和目的。 我们可以用图1 1 表示出二次开发的层次关系。 图1 1 二次开发的层次关系图 索 这种思想,十分精辟地表述出了二次开发在整个系统中的位置,也就是 说,只要我们充分合理的定义出本专业的专有约束集,就能开发出一个适合 于本专业的设计系统,就能充分利用计算机的高速精确的计算能力,大容量 存储和数据处理能力,同时利用人机对话加入设计人员的综合分析和逻辑判 断能力,设计出符合需要的设计系统。它对设计人员的知识结构也将产生深 远的影响。 本人决定把水闸闸室作为研究对象,并从多种水闸闸室结构型式中选择 整体式平底板与平面闸门闸墩作为辅助设计系统的应用对象,同时选择 o b j e c l a r x 开发工具,也基于以下几点考虑: 1 作为水闸最重要的组成部分,水闸闸室承受着各种工况下的荷载组合。 闸室的设计和制图也比较复杂:它的设计包括闸室稳定分析、闸底板结构设 计、闸墩结构设计以及配筋计算四大方面,并且它的结构配筋也比较复杂。 因此手工设计水闸闸室的工作量相当大,利用计算机辅助设计能够大大减轻 水利工程设计人员的劳动强度。 2 在倡导建设节约型社会的今天,国家必会进一步增大农田水利基本建 3 第一章绪论 设投入,将会有更多的水闸新建与改建;整体式平底扳与平面闸门闸墩作为 在中小型水利工程的水闸设计过程中应用极为普遍的结构型式,将会得到更 广泛的应用。因此开发出一套以整体式平底板与平面闸门闸墩作为应用对象 的水闸闸室辅助设计系统,具有更高的应用价值,将大大缩短设计时间,从 而达到提高生产效率的目的。 3 c a d 二次开发的手段比较多,o b j e 乩崾x 作为a u t o d e s k 公司专门向 公众开放用于a u t o c a d 二次开发的工具包,具有明显的优势。选择采用 o b j c c l 脚【进行c a d 辅助系统开发,与a u t o g 气d 相得益彰,更有利于程序 开发过程中图形绘制与输出等难题的解决。 4 水闸闸室计算机辅助设计系统把计算机辅助设计技术引入到水工设计 中,从根本上改变了传统的设计方法,使得设计人员能够优质、高效、经济、 轻松的完成设计,同时作为计算机辅助设计( c a d ) 技术在水利工程的应用 的实例,可以开发水工设计中的其他软件,具有良好的使用价值和较高的学 术价值。 1 2 课题的技术路线、设计步骤及开发目标 1 2 1 技术路线 本课题就是以计算机为工具,以c a d 为技术手段,以图形软件a u t o c a d 为支撑平台,采用面向对象的a r x 技术,选用m i c r o s o f t s u a ls t u d i o n e t 2 0 0 5 中的s u a lc + + 语言环境为开发平台开发一套用于解决中小型水闸闸室 设计的计算机辅助设计系统。用户通过该系统良好的用户界面,方便灵活的 操作方式,将水闸闸室设计中的有关参数输入到计算机中,系统可以生成形 象直观的图形显示,在通过人机之间的交互式操作,系统可以提供可用于生 产的施工图,大大减轻设计者的实际负担。使得设计者在一种轻松的环境中 完成复杂的设计。 总之,在完成课题的过程中,本人决定采取以下设计思想: 1 将该系统分为数据处理部分和图形处理部分; 2 采用良好的图形交互界面; 3 建立面向对象的模型结构; 4 第一章绪论 4 采用参数化设计。 1 2 2 设计步骤 完成一个完整的c a d 二次开发系统是一项复杂的工程,因此,本人将它 分成以下几个小块依次进行; 1 开发环境设置; 设置计算机辅助设计的初始环境。具体的开发环境将在1 3 节中详细讲 述。 2 输入原始资料; 设计的原始资料分为两部分,一部分是荷载部分,包括水闸闸室所受荷 载的大小和作用点等,另一部分是水闸闸室的几何定型尺寸。 3 构件分析计算; 编写程序进行水闸闸室计算,它包括闸室稳定分析、闸底板结构设计、 闸墩结构设计和结构配筋计算等。 4 图形处理和图形输出; 利用以上计算得出的数据,导入a u t o c a d ,利用a u t o c a d 生成水闸闸 室平面结构图、边( 缝) 墩与中墩平面细部结构图、闸室各截面结构配筋图、 边( 缝) 墩与中墩截面配筋图和水闸闸室钢筋表。 以上设计步骤用图1 2 表示更为清晰。 1 2 3 开发目标 本课题开发出一套适用于中小型水闸整体式平底板与平面闸门闸墩型式 的水闸闸室结构的设计软件。该辅助设计系统能够满足多闸孔水闸闸室结构 的计算,并且直接生成满足工程施工要求的施工图。 5 第一章绪论 1 3 开发环境 1 3 1 硬件环境 开始 圈形处理 图形输出 结束 图1 2 系统开发设计步骤图 本系统采用以下的硬件开发环境: p e n t i u m4 微机,c p u 为3 g h z ,内存5 1 2 m ,硬盘8 0 g ,显存1 2 8 m 。 系统的硬件应用环境的最低配置为: c p u l 0 m h z ,内存5 1 2 m ,硬盘1 0 g 。 1 3 2 软件环境 随着a u t o d 软件不断的更新,用o b j e c 愀为开发工具进行二次开发, 开发环境也存在着不同的组合。考虑到本辅助系统的应用环境需要,选取了 适应于最新版本的。如2 0 0 7 软件进行开发。 本系统的软件开发环境为: m i c r o s o 矗w i n d o w s 2 ( 1 0 i x p ,m i c 隅o f 【s u a ls t u d i o n e t2 0 0 5 , a u t o a m 2 0 0 7f o rw i n d o w s ,0 b j c c t a r xf o ra 舡t o a d 2 0 0 7 ,显示模式:分辨 率1 0 2 4 7 6 8 ,颜色增强3 2 色。 本系统的软件应用环境为: m i c r o s o f tw h d o w s 2 0 0 0 ,x p ,a u t 0 c a d 2 0 0 7f o rw i n d o w s ,显另;模式:分 6 第一章绪论 辨率1 0 2 4 7 6 8 以上,颜色2 5 6 色以上。 7 第二章a i c a d 的二次开发技术 2 1 前言 第二章a u t 0 c a d 的二次开发技术 a u t o c a d 是美国a u t o d e s k 公司于1 9 8 2 年1 2 月推出的一个通用的计算机 辅助绘图和设计软件包经过版本不断更新,功能愈益增强,已经在建筑、 机械、石油等部门获得广泛的应用。它所具备的开放的体系结构( o 口 a r c h i t e c l u r c ) 允许用户和开发者几乎在所有方面对其进行扩充和修改,能最大 限度的满足用户的特殊要求,是其深受广大用户欢迎的主要原因之一。在二 次开发方面,早在1 9 8 6 年提供了a u t o s p 程序设计的支持;1 9 9 0 年推出的 a u t o c a dr 1 1 提供了对c 语言开发环境( a d s ) 的支持;1 9 9 霉年推出的 a u t o c a dr 1 3 第一次提供了面向对象的c + + ( a r x ) 开发环境:1 9 9 7 年推出 的a u t o c a dr 1 4 中提供了对a r x 更高版本( o b j e c 姨r x 2 2 ) 的支持,并且 开始支持v b a ;1 9 9 9 年推出a u t o c a d 2 0 0 0 ,它除了提供对0 b j e c 峨r xf o r a u t o c a d 2 0 0 0 支持,也增加了s u a l u s p ,它是对a u t o u s p 的扩充【5 1 ;2 0 0 1 年,a u t o d e s k 公司又推出a u t o c a d 2 0 0 2 ,它是在a u t o o 、d 2 0 0 0 基础上的修 复和完善,之后a u t o d e s k 公司不断完善a u t o o 如软件功能,先后发布了 a u t o c a d 2 0 0 0 i 、a u t o c a d 2 0 0 2 、a u t o c a d 2 0 0 4 、a u t o c a d 2 0 0 5 、 a u t o a 牺2 0 0 6 、a u t o a k d 2 0 0 7 ,其中a u t o o d 2 0 0 7 为已发布的最新版本。 a u t o c a d 开发系统a d s ( a u t o c a dd c v e l o p m e n ts y s t e m ) 是在0 s 2 操 作系统下的a u t o a r 1 0 版本引入的。a d s 编程由c 语言和提供给开发者 用来创建应用程序的c 语言程序库组成。a d s 是随着d o s 版a u t o o 如r 1 1 提供的。a d s 现在已经过时,且不再延续,但它以a d s r x 的形式被集成到 o b i e 眈堰x 中。r 1 3 中使用的a r x 是1 9 9 6 年1 月发行的1 1 版。在r 1 4 中, 通过新的a p i ( a p p l i c a t i 衄p r o g 删m i n gh t c r f a c c ) 和其他改进,a r x 的功能 又有了新的扩充r 1 4 中的j 蝴【已经重新命名为0 b j 纰x 。至 a u t o c a d 2 0 0 r 7 ,a u t o d c s k 先后发布了0 b j e c t 舢王) ( 2 0 0 0 ,0 坷e c t a r x 2 0 0 0 i , o b j e 髓艘0 0 2 ,0 嘲e c t 凇0 0 4 ,o b j c c 渣r x 2 0 0 5 ,o b j e 眈僦0 0 6 , o b j c c t a r x 2 0 0 r 7 。0 b j c c t a r x 接口使用c c + + 。o b j e c t a r x 接口的功能十分强 大,r 1 4 自身的很大一部分就是用o b j e c t a r x 实现的。o b j e c t a r x 使程序员 窟 第二章a i 肿c a d 的二次开发技术 编写的程序具有与a u t o c a d 同地址工作的能力,这将极大地增强了a u t o c a d 功能【4 j 。 2 2a u t o c a d 的二次开发系统比较 a u t o a 山的二次开发系统,也称为a u t o da _ p i ( a p p l i t i p m g r a m m i n gi n t e r f a c e ) ,是将a u t o c a d 绘图环境客户化的基本手段。在 a u t o c a d 中,主要的开发工具有:0 b j c c l 棚;、a u t o u s p 、v i s u a l l i s p 和s u a i b 勰i c 。 2 2 1 u t o l i 8 p 和v i 8 u a i l i s p a u t o i j s p 是最早的解释型a p i ,它不是面向对象的语言,主要用来完成 重复性任务,进行客户化开发和编制a u 幻c 纽菜单以及通过简单机制为 a m t o c a d 增加命令。在逻辑上,a u t o l i s p 是一个独立的进程,通过口c ( 进 程间通讯) 与a u t o d 交互。但很难用它来开发大型的应用程序。 s u a l l s 口是a u t o d e s k 公司在a u t o c a dr 1 4 中首次提供的一种新型的 l i s p 编程工具,它是一种支持面向对象的开发环境,对a u t o u s p 进行了扩充 和延伸。在a u t o c a d 的后续版本中又得到了进一步的加强。蛐a l “s p 是一 种编译型a p i ,是a u t o i j s p 的换代产品,它完全兼容a u t o l i s p ,同时它能够 访问a u t o c a d 的多文档设计环境、c o m a c t i v e x 用户界面和事件响应器。 v i s u a l i j s p 还提供了完整的、功能强大的全新的编程环境。该环境提供括号匹 配、跟踪调试、源代码和语法检查等工具,方便用户创建和调试u s p 程序。 从而,实现了a u t o c a d 使用环境的客户化,并且能够运行在j 虹t o c a d 中的 应用程序。 2 2 2a c t i v 。x 与v i 8 u a ib a 8 i c a u t o o i d 自r 1 4 起,采用a c t i v e xa u t o m a t i o n 的形式丰富了自身的a p i a d i v e x a u t o m a t i 衄简称a 吐i v e x ( 或a u t o m a t i o n ) ,它为a u t o c a d 进一步发 展开辟了新的途径。微软公司开发的a c t i v e xa i u t o m a t i 叩技术是a p i 和一组 规范,可以将各种二进制应用程序组建集成一体。它可以采用通用语言如 9 第二章a i n d o d 的二次开发技术 v i s u a lb a s i c 构造一种或多种与应用程序独立的宏编程方式,以便于用s u a l b a s i c 、d e i p h i 、m i 口o f tj + + 等一类的编程工具对其访问,并可以按照用户定 义的顺序调用这些功能。a u t o c a d2 0 0 7 中的a c t i v e x a u t o m a t i o n 所提供的编 程接口,可以用于在w 逾d o w s 环境下的应用程序操作a u t o c a d 中的对象,其 操作功能有:提示用户输入、使用优先对象,向外设输出图形,建立a u t o o m 的视图,指定和提取扩展数据,为a u t o o 如增加专业对象等功能。 2 2 3o b j e c t a 默 o b j e c 蝴t x 是a u t o d e s k 公司针对a u t o c a d ( 1 3 o 和以上版本) 平台上 的二次开发而推出的一个开发软件包,它支持面向对象编程( 0 0 p : 0 b j e c t o r i e n t e dp r o g r a m m i n g ) ,同时也向下兼容a d s c ( 早期利用l i s p 和口c 与a u t o o d 通讯的基于c 语言的二次开发工具) 。0 b i e c l f 蛐( 的早期版本称 为a r x ( a u t o c a dr 蛐t i m ee x t e n s i o n ) ,意为a u t o o 、d 运用库扩展。目前针 对a u t o c a d 2 0 0 7 已发展为0 b i e c t 根x 2 0 0 7 ,即0 b j e c t a r xf o ra u t o c a d 2 0 0 7 。 随着面向对象技术的成熟,a u t o c a d 最强大的二次开发功能就在于它的 0 b j e c 俄r x 面向对象的开发环境以及基于0 b j e c t a r x 的图形数据库。如同 a u t o c a d 2 0 0 7 ,0 b j e c t 棚( 应用程序也支持多文档接口( m d i ) 。0 b j e c l a r x 应用程序具备运行速度更快,存储图形环境更加方便以及具有直接访问和控 制a u t o o 的能力。目前a u t o c a d 的二次开发最为高效的工具就是基于 0 b j 毗a r x 编程,a u t o d e s k 公司在开发文档中提议0 b j e c “搬x 自o r a u t o c a d 2 0 0 7 的开发环境必须使用m i c r o s o f t s u a is t u d i o n e t2 0 0 5 版本并 选用s u a lc + + 作为开发语言、w i n d o w s2 0 0 0 或者w i n d o w s ) 操作系统。 0 b j e c l a r x 充分支持c + + 类,并且提供了a c r x 、a c e d 、a c d b 、a c g i 、a c g e 、 a c u t 、a c c m 、a c l y 、a c p l 九个主要的类库来访问以及控制a u t o a 心;除此 之外还可以利用m f c 强大的类库,扩充0 b j e c l 幔x 的功能。由于a r x 采用 面向对象编程,不必考虑直接操作a u t o o d 图形数据库所带来的风险,因此 它是最为安全可靠的开发方式。 0 b j e c l a r x 程序在很多方面与i j s p 、a c t i v e xa u t o m a t i 程序不同,最主 要的不同点是,o b j e c l a r x 实质上是一个动态连接库( d u 。) ,它与a u 矧认d 共享地址空间并直接和a u t o o 如通讯。如图2 1 所示: 第二章a i 肿a 也的二次开发技术 a r x 程序比其他程序的运行速度更快,除了速度上的提高之外, o b j c c l a r x 开发还允许创建或派生新的类( c l 弱s ) ,这些类和程序源代码可以 为其他程序共享,能充分利用面向对象编程的优点( 6 1 。 图2 1各种开发方法与a u t o c a d 的连接关系 综合以上几点所述,我们可以看出o b j c c l f 锄【代表着a u t o c a d 的发展方 向,将成为a u t o c a d 二次开发的首选工具川,本课题采用的就是 0 b j e c t a r x 2 0 0 7 对a u t o c a d 进行二次开发。 2 30 b j e c t a r x 概述 2 3 1o b j e c t a 默的特征和功能 0 b j c c l a r x 主要有如下几个特征和功能: 1 事务管理:就是将各个动作组合在一起,看作一个操作单元。一个操 作单元内部还可以有其他操作单元,即操作单元可以嵌套。事务管理的好处 不仅在于对动作的易于管理,也可以简化吼d o r e d o 存储的有关信息。 2 消息响应:实现对象问的消息传递。面向对象的c a d 系统是以对象 为核心,对象之间的通信是通过消息的发送和接收实现的。称消息发送的对 象为通知对象,接收消息的对象为响应对象。当系统中一个事件发生时,通 1 1 第二章a u i d c a d 的二次开发技术 知对象就自动将该消息传给其他对象。消息响应是可以存储的,当图形文件 再次调入系统中时,对象之间的消息响应关系仍然存在。 3 非图形数据的存储:对于一个工程,不仅有具有图形表示的专业对象, 而且还有大量的工程数据( 非图形数据) 。a u t o c a d 专门有一个字典用于存储 非图形数据,字典就是一个将个字符串与一个对象相对应的映射,该字符 串称为关键字。一个字典中的关键字必须唯一,字典中的对象可以是任意类 型的非图形对象,由于字典本身也是一个非图形对象,所以字典中可以再包 含字典,从而形成嵌套【1 2 】。 4 对象的可扩充性:基于面向对象技术的c a d 开发平台的最大一个优 点就是其可扩充性。通过从已有类派生出新类,既可以继承已有类的功能, 又可以加入特有的数据和方法。利用面向对象技术的优点在于:从已有的类 派生的类自己管理自己的数据,并负责对其存储和读取;对于图形对象还要 定义自身如何显示。专业应用软件从已有的o b j e c t a r x 类派生出具有工程属 性的专业对象,从而构建整个模型。 5 通用几何库:为了支持几何图形的数据表示,提供了单独的通用几何 类库。通用几何类提供了简单线性代数类以及二维、三维几何元素类。这些 类提供了几何体的通用表示,是纯数学类,主要供各模块中的对象使用,来 表示系统中的几何元素。 2 3 20 b j e c t r x 2 0 0 7 类库简介 0 b j e 吐a r x 是一个对象类库。就如m i r o s o f t 公司的m f c ( 微软基本类库) , 如果说m f c 提供了一系列开发w i n d o w s 的基本类库,那么o b j e 魄讯x 就提 供了一系列开发a u t o c a d 的基本类库。a u t o c a d 的实体都是由0 b j e 钆咀x 中的类来实现的。 根据程序开发中使用情况,主要介绍0 b i c c l a r x 所提供的以下六种基本 类库: 1 a d s r x 函数库:兼容a d s 的全局函数库,这是一组标准c 的函数库。 主要用于完成诸如实体选择、选择集操作和获取用户输入的数据等工作。 2 a c r x 类库:为用户提供系统一级的类,主要用于初始化和连接动态 链接库( d u 0 ,同时用于实时类的注册与识别。该类提供了以下的功能: 第二章a i 兀d c a d 的二次开发技术 ( 1 ) 对象的实时类的标识和继承分析 ( 2 ) 对现有类的扩充定义 ( 3 ) 对象的比较和检验 ( 4 ) 对象的拷贝 同时a c 壬k 类库也提供了一系列的c + + 宏,利用这些宏可以为a c r x o b j e c t 为基类派生出新的锄【类。在a i c l b 类库中a c r x d i c t i o n a r y 是另一个重要的 类。字典是对象的字符映射,a c r x 类库中所有的对象、类以及功能字典放置 在一个全局对象字典中,这就是a c r x d i c t i o n a r y 类。应用程序可以在该字典 中加入对象,以便其他的应用程序利用所加入的对象。 3 a c e d 类库:这是a u t o c a d 编辑器类,它为a u t o c a d 图形编辑器提 供核心接口。这一接口允许二次开发人员注册新的a u t o c a d 命令,与 a u t o c a d 原有核心中的命令等同执行。它还使应用程序可以监控某些特定事 件,如命令的开始、结束或取消,使某一应用程序与其他程序之间具有特定 的关系。 4 a c d b 类库:该类库提供了可以直接访问a u t o o m 数据库数据结构 的类,a i u t o a 蛆数据库中包含了各种构成a u t o a d 图形的图形对象( 实体) 以及非图形对象( 层、线型、字体风格等) 的信息。利用该类库提供的类, 开发者可以对已经存在的a u t o d 实体以及对象进行查询等操作,并可创建 新的数据库对象。 5 a c g i 类库:提供了用于绘制a u t o a 如实体的图形接口。该库由 a c d b e n t i t y 成员函数w o d d d r a w o 、v i e w p o n d r a w o 和s a v e a s o 所使用。在所有 的用户自定义的实体类中,必须重新定义w o r l d d f a w 0 函数。a c g i w 6 r l d d f a w 对象提供了a p i 接口,通过该接口可以在各个视口同时对实体进行操作。同 理a c g i e 、伸o r t d r a w 对象也提供了a p i 接口,使用户在每个视口中定制不同 的视口状态。 6 a c g e 类库:为公共几何对象实用工具库,提供对a c d b 类库的支持并 提供如向量、点、矩阵等用于二维、三维几何变换的工具类。也提供点、线 和曲面等简单几何对象。它包含两个主要的子集:即2 d 几何图形的类和3 d 几何图形的类。该类库中的高级类是由该类库中的基类组成的,在该类库的 基类中,数据成员都被定义成公有的,在所有的几何类中,只有该类库拥有 公有数据成员。 第二章a i 兀d c a d 的二次开发技术 2 3 30 b j e c t a r x 2 7 应用程序接口及结构 a r x 程序本质上是w i n d o w s 动态连接库( d l l ) 程序,通过与a u t o c a d 共享地址空间,直接调用a u t o c a d 核心函数,可直接访问a u t o c a d 数据库 的结构和代码。它允许用户开发a u t o c a d 应用程序,创建新的a u t o c a d 命 令。a r x 程序与a u t o c a d 、w i n d o w s 之间均采用w i n d o w s 消息传递机制直 接通讯。a r x 程序通过调用a c e n t r ) ,p o i n t o 函数建立与a u t o o 如消息传递 入口,在a c r 】【e n t r y p o i n t 0 函数中用s w i t c h 语句处理来自a u t o c a d 的各种消息。 在加载a r x 程序时,入口函数收到载入消息后,通过其s w i t c h 语句调用初始 化函数完成有关的初始化工作。通过在初始化函数中调用a c e d r e g c m d s 类成 员函数a d d c 鲫m 姐d 0 向a u t o c a d 系统注册新的命令。经过注册的命令加入 a u t o c a d 系统的命令集中,可以象系统本身的命令一样使用( 9 l 。 一个基本的a r x 应用程序应由下述几部分组成:文件包含和函数说明, a r x 应用程序初始化,a r x 入口函数,卸载函数和用户程序的主体函数。 1 文件包含和函数说明 需要包含a r x 程序所必需的一些头文件。 2 a r x 应用程序初始化 a r x 应用程序的初始化通过h i 脚p o 来完成,如下例所示: v o i d i n i t a p p o a c c d r e g c m d s a d d c o m m a n d ( ”a s d k | - 肖j t r o j e c t ”, ”a s d kf i r s t ”,”1 旺洛t ”,a c r x - c m d _ m o d a l ,t o ; 其中a s d k 。a r ) 四r o j e c t 为组名,a s d kf 珉s t 为通用命令,t e s t 为本地命令,t e s t 为函数指针。 a r x 均采用a c e d 类实现命令注册,采用此法向a i u t 0 c a d 添加的新命令 与a i u t o o d 内置命令有着相同的特性和地位,我们称之为本地命令。一种典 型的命令注册方式如下: a c e d :e r f o r s t a t 璐 a c e d c ( 加m 蛆d s t a c k :a d d c c 脚m 蛆d ( c o n s tc h 缸。c m d g m u p n a m e ,c o n s tc h a r 。锄d g l o b a i n 锄e , 1 4 第二章a l r i d o d 的二次开发技术 c o n s tc h 盯衄d l 0 c a l n 锄e ,a d e s k :i n t 3 2c o 姗a n d n a g s , a c r x f u n c t i o n p ”f i l n c t i o n a d d 订 其中: 锄d g r o u p n 锄e 指命令将要添加至组的a s c i i 码表示,如组不存在则在 命令加入之前将建立该组。 c m d g l o b a l n a m e 指将要添加命令的a s c 码表示( 全局名) c m d l o c a l n a m e指将要添加命令的a s c 码表示( 当地名) c o m m 粕d f l a g 指与命令相关的标识,可能值有 a c r ) ( - c m d1 1 r a n s 雕岖e n r ,a c r ) ( _ c m d l m o d a l a c r x _ c m d - u s e p i c k s e t a c r ) 【_ c m d - i t e d r a w f u n c t i o n a d d r 指当命令被a u t o c a d 调用时所执行函数的地址 3 a r x 入口函数 a r x 应用有一主入口点进行消息循环。在你注册命令时他们又将成为额 外加到应用中的入口。在你重载a r x 库的c + + 类的虚函数时,这些函数也将 成为进入应用的入口点。通用入口函数如下: c x t 啪”aa c r x :a p p r e t c o d e a 锨e n t r y p o i n t ( a c r x :a p p m

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论