(道路与铁道工程专业论文)三维可视化桥梁钻孔桩基础及盖梁绘图CAD系统的开发研究.pdf_第1页
(道路与铁道工程专业论文)三维可视化桥梁钻孔桩基础及盖梁绘图CAD系统的开发研究.pdf_第2页
(道路与铁道工程专业论文)三维可视化桥梁钻孔桩基础及盖梁绘图CAD系统的开发研究.pdf_第3页
(道路与铁道工程专业论文)三维可视化桥梁钻孔桩基础及盖梁绘图CAD系统的开发研究.pdf_第4页
(道路与铁道工程专业论文)三维可视化桥梁钻孔桩基础及盖梁绘图CAD系统的开发研究.pdf_第5页
已阅读5页,还剩63页未读 继续免费阅读

(道路与铁道工程专业论文)三维可视化桥梁钻孔桩基础及盖梁绘图CAD系统的开发研究.pdf.pdf 免费下载

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

文档简介

摘要随着计算机硬软件技术的飞速发展,c a d 技术被广泛应用于工程技术领域,不同领域的各种设计软件不断推陈出新。国内在桥梁钻孔桩基c a d 软件的开发和应用方面也取得了一定的研究成果。但是,这些软件存在着不能即时修改、没有自动成图功能、或是没有三维可视化等缺点。本文在分析桩基设计步骤及设计中关键计算的基础上,采用了参数化设计与绘图的方法,利用o b i e c 俄r x 与m f c 相结合设计了桥梁钻孔桩基计算及二维配筋程序,并加入了三维可视化模块,使用户可以随时掌握钢筋的分布情况。为进一步验证三维设计可以辅助解决工程实践中钢筋构造的立面交叉问题,本文还实现了具体实例的三维盖梁钢筋构造图的自动绘制。在程序开发方面,本文首先对桥梁钻孔桩基的设计步骤进行了分析,然后针对工作量较大的工序进行重点分析,提出了模式化程序设计和计算方法,应用了参数化绘图技术,提高了绘图效率。同时,加入了三维可视化模块,用以辅助二维图,图纸更直观。总之,程序利用m f c 与o b j e c 认r x 工具库相结合的编程方式,实现了对a u t o c a d 的二次开发。使用m f c 对话框技术与o b j e c 认r x 的强大的图形对象操作功能相结合进行桥梁桩基的参数化成图,同时,辅之以三维可视化模块,使得配筋图更具直观性。该程序已经成为w i n d o w s 系统下与a u t o c a d 实时紧密联系的应用软件,能实现桥梁桩基的计算、二维与三维成图,以及进行钢筋工程量自动统计的功能,提高了工作效率和出图质量。关键词:钻孔桩基、盖梁、c a d 、设计、三维可视化、参数化、绘图a b s t r a c tw i t 】1t h ed e v e j o p m e n io ft h et e c h n i q u eo fc o m p u t e rh a r d w a r ea n ds o 疗w a r e ,t h et e c h n o 】o g yo fc o m p u t ea i d e dd e s i g n ( c a d ) h a sb e e nb r o a d 】ya p p 】j e di nt h ef j e l do fe n g i n e e r i n gt e c h n 0 1 0 9 y m u l t i f a r i o u sd e s i g n i n gs o 开w a r ej sc o m i n gf o 九hi nd i 行- e r e l l tn e 】d sc o n t i n u a 】y i no u rc o u n t r y ,t h ed e v e j o p m e n la n da p p l i c a t i o 力o fc a ds o 疗w a r ej nb o r e dp i 】ef o u n d a t j o no fb r j d g eh a sa n a j n e ds o m er e s e a r c hr e s u 】t s b u tl h e s es o 疔w a r eh a v ev a r j o u ss h o n c o m i n g ss u c ha sn o th a v i n gj n s t a n t l y a m e l l d i n gf b n c t i o n ? n o th a v i l l ga u t o m a t i c a 】y b u i l d i n g n g u r e 凡n c t j o n ,a n dn o th a v i n gf 】1 r e e d j m e n s i o n a l v i s u a j i z a t i o n 如n c “o n 丁h i sa r t j c l e ,b a s e do nt b ea n a j y z i n gd e s i g ns l e p so fp j 】ef o u n d a t i o na n dk e yc a l c u l a t i o n,a p p 】y j n gt h ep a r a m e t r j cd e s i g na n dd r a w i n gm e n 】o d ,u s i n g0 b j e c t a r xc o m b i n e dw 沛m f ca n dt h r e e d i m e n s i o n a l v i s u a l i z a t i o nm o d u l e ,d e v e 】o p e dt h ec a l c u 】a t j o na n dc o 力f j g u r j ,】go fr e j n ) r c j n gs t e e 】b a rp r o g r :l mo fb o r e dp j j ef o u n d a t j o no fb r j d g ea n dm a d eu s e r sk n o wt 1 1 ed i s t r i b u t i o no fr e i n f o r c i n gs t e e lb a ra ta 1 1 ym o m e n t t h ea n j c l er e a l i z e da u t o m a t i cd r a w i n go ft h r e e d i m e n s i o n a lc a p p i n gb e a mt ov a 】i d a t et h r e e d j m e n s i o n a 卜v i s u a l i z a t i o nd e s i g ns o l v i n gi 1 1 t e r s e c t i o nq u e s t i o no fr e i n f o r c i n gs t e e lb a rs t r u c t u r e 1 nt 1 1 ea s p e c to fw r i t i n gp m g r a m ,f j r s t l yt h ea u t h o ra n a 】y z e dt h ed e s j g ns t e pf o rt h eb o r e dp i l ef o u n d a t i o no fb r i d g e ,t h e ne m p h a t i c a l l ya n a l y z e dt h ew o r k i n gp r o c e d u r ew h i c hw o r k l o a di sc o m p a r a t i v e j yh i g h e r ,f i n a l j yp u tf o n v a r dt h em o d u l ep r o g r a md e s i g na n dc o m p u t i n gm e t h o da n da p p l i e dt h ep a r a m e t r i cd e s 追nt e c h n 0 1 0 9 yt oe n h a n c et h ee 币c i e n c yo fp l o n i n g a tt h es a m et i m e ,t h et h r e e - d i m e n s i o n a l - v i s u a 】i 捌i o nm o d u l ei sa p p l i e df o ra j d i n gt w o - d i m e n s i o n a l v i s u a l i z a t i o nb l u e p r i l l tm o r ej n t u i t j o j l i s t j c 】y 1 nc o n c l u s i o n ,u s i n gt 】1 et e c h n i q u e so fm f ca n do b j e c t a r ) ( ,t h ea u t h o rc o m p l e t e dt h ed e v e l o p m e l l to fp i l ef o u n d a t i o nd e s i g ns y s t e m p a r a m e t r i cd e s i g n ,b a s e do nt h em f cd i a l o gt e c h n i q u ea n dt h es t r o n gf u n c t i o no fg r a p h i co b j e c to p e r a t i o n ,r e a l i z e da u t o m a t i c a l l yd r a w i n go fp j l ef o u n d a t i o no fb r i d g e a tt h es 锄et i m e ,t h r e e d i m e n s i o n a l 一v i s u a l i z a t i o nl n o d u l em a d ec o n f i g u r j n gg r a p h i co fr e i n f o r c i n gs t e e lb a rm o r ei n t u i t i o l l i s t i c ly a sa ni n t i m a t ea p p l j c a t i o nc o m b i n e dw i t l la u t o c a di nt h ef h m eo fw i n d o w s ,t h es y s t e mc a nr e a l i z et h ec a i c u l a t i o na n dt w oo rt h r e ed i n l e n s i o n a lv i s u a 】i z a t i o ng r a p h i cd r a w i n go fp i l ef o u l l d a t i o no fb r i d g ea 1 1 da u t o l l l a t j c a l l yw o r k i n go u tt h ec o u n to fr e i n f o r c i n gs t e e lb a r ,a 1 1 di m p r o v et 1 1 ee 疖c i e n c ya n dq u a l i t ) ,o fd r a w - 1 1 9 k e yw o r d s :b o r e dp i l ef o u n d a t j o l l ,c a p p j n gb e a m ,c a d ,d e s j 9 1 1 ,t h r e e d j m e n s i o n a lv j s u a l j z a t i o n ,p a r 锄e t r i c ,d r a w i n g】l第一章绪论1 1 概述第一章绪论c a d 技术( c o m p u t e ra j d e dd e s i g n ,计算机辅助设计) 最初来源于美国麻省理工学院的1 e 萨瑟兰德于】9 6 3 年在其博士论文中提出的交互式图形生成技术。最初的c a d 技术主要是用来辅助绘图( c o m p u t e r a i d e dd r a r j n g ,计算机辅助绘图) ,随着计算机技术的普及以及计算机软硬件技术的飞速发展,c a d 逐渐被人们用于计算及设计领域。伴随着计算机技术和计算机图形学技术的发展,c a d 技术成为一门实用的技术,在机械、电子、建筑、化工、能源、交通等工程设计领域得到了广泛的应用。它把人从许多重复繁重的体力、脑力劳动中解放出来。大大提高了劳动效率。c a d 技术在公路勘测设计中的应用,使得传统的公路设计手段、设计方法产生了重大变革。极大地促进了公路交通行业的技术进步,成为公路测设现代化的主要标志之一。1 1 1国内外路桥c a d 技术现状公路计算机辅助设计是工业发达国家计算机技术应用的重要领域之一。6 0 年代初,c a d技术初步应用在公路设计中,最初只是解决公路电算问题,应用的主要成果是公路纵断面的优化设计。到了7 0 年代,随着计算机绘图功能的不断完善,以及办公自动化的出现,工程设计中大量设计图纸的绘制与设计文件的编制工作逐步由计算机完成,数字地面模型系统也开始逐渐由理论进人实用阶段。8 0 年代,随着g p s 技术的出现,公路c a d 系统逐渐进入系统化、集成化、商品化。很多国家建立了由航测设备、计算机和专用公路设计软件包形成的集成系统。公路c a d 软件逐步向勘测设计一体化发展。如德国的c a r d 门、英国的m x r o a d( 原m o s s ) 和美国的i n r 0 a d s 以及美国的g e o p a kr o a d 等都是这一时期诞生的优秀软件。进人9 0 年代,伴随着高交互性能的真三维图形支撑系统及面向对象的语言编译系统的相继推出,公路c a d 系统正逐步向一体化、自动化过渡l z j 。我国公路c a d 系统的研究始于7 0 年代中期,虽然起步较晚,但发展迅速。自1 9 7 9 年起,c a d 技术初步应用于公路的平、纵断面优化及空间线形优化之中。8 0 年代以来,随着我国公路建设的高速发展,一些技术力量较强的大专院校、设计科研单位也自行组织开发了许多道路计算机辅助设计软件。9 0 年代至今,随着国家“七五”重点科技攻关项目的支持,国内道路c a d 的应用逐渐开始普及。同时,c a d 系统的功能覆盖面也越来越广,涉及数字地面模型的建立与应用、地形数据的采集与处理、道路路线及互通式立交的平纵横设计、路面结构设计、路基排水系统设计、构造物设计、道路管理与养护、工程造价、设备管理、地理信息系统的应用、交通量分析及公路网规划、公路噪音分析等。由于适合国情,加上价格低廉等因素,我国道路工程设计中使用的绝大多数是国内软件,其中比较有代表性的有西安海德( h e a d ) 、纬地( h i n t c a d ) 和东南大学的a h c a d 及d 】c a d 等。在桥梁方面,国外的c a d 技术已是成果斐然,如美国的s a p 2 0 0 0 、a 1 9 0 r 、a 1 1 s y s 以及韩国出品的m 】d a s c j v j 】迈达斯等桥梁软件,但这些软件的功能都是关于桥梁结构的计算与分析:在国内,c a d 技术的发展较为成熟,如桥梁博士v 2 9 ( 同济大学桥梁工程系) 、公路桥梁c a d 系统b s a c a d 2 0 0 0 ( 中交第二公路勘察设计研究院) 、桥梁设计集成c a d 系统b l d b r i d g e 、桥梁通c a d 、桥梁设计集成c a d t 系统、海德桥梁工程师系统h a r db e ( 西安海地软件公司) 、桥梁大师( 北京中交跨世纪工程技术有限公司) 、交科桥梁软件( 交通部公东南大学硕士学位论文路科学研究所) 等,这些软件都为桥梁结构的计算分析与设计带来了极大的方便。但是,这些桥梁软件主要是侧重于桥梁上部结构的分析、计算和二维绘图,在桥梁桩基础等c a d 方面尤其是三维可视化设计方面还有待于做出深入的研究。1 1 2 桥梁桩基c a d 技术与三维可视化设计技术现状及发展目前国内在桥梁桩基c a d 软件的开发和应用方面取得了一定的研究成果,如桥梁桩基础计算程序( 江苏省交通规划设计院) 、p i l e 2 0 0 0 ( 桥梁桩基设计程序) ( 中交二院) 、交科桥梁软件中桥梁下部综合分析系统b r i d g ex b ( 交通部公路科学研究所) 、桥梁博士v 2 9 ( 同济大学桥梁工程系) 、公路桥梁钻孔桩基础计算及配筋程序等,这些软件实现了桩基础的设计计算功能,并在实际应用中取得了预期的效果,为广大设计部门提高了计算精度和设计效率、降低了设计成本。其中,交通部公路科学研究所开发的b r i d g ex b 系统,解决了桩基的施工图绘制功能,但它不具备即时修改即时生成等功能;桥梁博士系统采用面向对象的开发思想,以其简单易用、形象直观、灵活丰富的特色在国内桥梁工程界赢得了一席之地,它包含的基础计算模块的用户界面比较简洁,具有可视化功能,但缺少可视化的施工图绘制等功能;江苏省交通规划设计院使用f o r t r a n 语言研究开发的桥梁桩基础计算程序因其简单实用而应用较为广泛,但是,该软件只能进行一般的设计计算分析,没有可视化与自动成图功能,不能进行工程量的统计。在桥梁三维可视化方面,目前国内已有的软件( 如桥梁三维造型模块b r i d g e 3 d 系统等)在桥梁建模方面功能比较完善。但是,至今还未发现公路桥涵方面的三维可视化设计软件,更不用说钻孔桩基础的三维可视化设计。通过三维可视化图形的设计,可以从不同的角度对实体内部的钢筋配置情况进行观察,使人一目了然,技术人员可以据此做出正确的判断,不会产生歧义,对桩基础的施工有一定的参考价值和现实意义。而且,钻孔桩基础三维可视化设计的研究,对钢筋配置较为复杂的预应力梁板、盖梁等结构的三维可视化设计研究也有着很大的借鉴作用。1 2 本课题的立题背景和意义1 2 1 立题背景中小桥梁是公路工程中重要的构造物,中小桥的设计在整个公路工程中所占的比重较大,且其造价要占到公路工程造价的2 0 左右,中小桥桩基设计数量多,工作量较大。国内虽然有一些辅助设计软件,但是目前普遍存在的一个问题是:其主要是针对桥梁上部结构的设计而开发,而不是专门针对桥梁的下部结构而设计。下部结构只是其一个子功能,针对性不强。除此以外,一般的桩基计算及成图程序不包含三维配筋的模块,不能够直观地显示钢筋的分布状况,这样就不能对配筋中出现的错误做出直观的判断。三维模型的建立可以使设计者直接发现配筋中的错误,并及时纠正。采用计算机辅助设计进行桥梁桩基的计算与成图设计,可以充分利用计算机信息存储量大、计算速度快、成图快而且直观的特点,同时还可以发挥设计人员的实践能力和分析判断能力,能大大提高设计质量和工作效率,因此使用计算机辅助设计代替手工设计和绘图已是发展的必然趋势。计算机设计及出图的目标促使设计部门对设计软件的需求量大大增加,同时,也促使工程技术人员努力开发方便适用的工程设计软件以提高设计效率和出图质量。krri厂kir第一章绪论1 2 2 课题的研究意义本课题主要是研究如何在a u t o c a d 中实现桩基的计算及其二维、三维可视化成图,并实现了六合县冶( 山) 六( 城) 公路安徽天长段下部构造中的三维盖梁钢筋构造图自动绘制。本文将桩基的二维、三维配筋成图c a d 系统的开发作为研究课题,一方面是为了提高桩基的计算速度和精度、提高桩基施工图的成图速度和质量,另一方面就是旨在利用桩基的三维成图成果,探索更为复杂的钢筋构造中如何解决施工中经常碰到的立面交叉问题( 俗称“钢筋打架”) ,从而减少经济损失。但是,桩基的配筋较少且相对简单,也不可能发生“钢筋打架”的现象。为此,本文利用三维盖梁钢筋构造图做了进一步的验证。为了更好地阐述三维设计产生的效果,本文在不考虑受力的情况下在三维盖梁钢筋构造图增加了单排预应力筋,使配筋更为复杂。当发现预应力管道与其他钢筋发生交叉现象时,用户可即时修改设计参量,对预应力管道的设置位置进行调整,实现即时修改、即时生成,直至“打架”消除为止。结果证明,工程实践中时常遇到的“钢筋打架”问题完全可以通过三维可视化设计来解决,而不必将问题拖延到施工阶段。利用m f c 与o t ! i e c 俏r ) ( 相结合的编程技术,可加强程序的整体性,提高程序的运行效率。应用可视化的参数绘图方法,能提高钢筋构造图的出图质量,实现表格、图纸的规范化、标准化,同时也提高了绘图效率。1 3 本课题的主要研究内容本课题主要是针对桥梁桩基础中设计工作量大、重复工序多等特点,采用c + + 与o b j e c t a r x 等编程工具编写的基于a u t o c a d2 0 0 0 2 0 0 2 的桥梁桩基础的桩长计算及二维、三维成图辅助设计软件,并实现了六合县冶( 山卜六( 城) 公路安徽天长段下部构造中的三维盖梁钢筋构造图自动绘制,以达到提高工作效率,规范化出图的目的。运用v i s u a lc + + 6 0 编程语言和o b j e c 俄r x 2 0 0 2 ,结合开发出基于a u t o c a d 2 0 0 2 开发环境并具有w i l l d o w s 对话框风格的三维可视化的桥梁钻孔桩基础配筋应用程序。1 3 1 研究内容研究的内容主要包括:】、深入研究公路桥涵地基与基础设计规范、基础工程等有关桩基础的计算、设计等方面的规范及文献。研究的主要内容有:( 1 ) 桩基础的分类及桩基础类型的选择;( 2 ) 桩长和桩径的拟定及单桩容许承载力的估算;( 3 ) 确定桩的平面布置及配筋原则;( 4 ) 地基承载力的验算;( 5 ) 确定计算模型:( 6 ) 桩基础的设计步骤等。本文针对工程实践中采用较为广泛的竖直圆形钢筋混凝土摩擦桩,研究其力学特性,分析其计算模型,实现了桩长的计算和承载力验算,并实现了数据输入的可视化。2 、对a u t o c a d 的三种开发方法a u t o l l s p 、a d s 、a r x 进行了比较,最终确定使用o b j e c t a r x 2 0 0 2 进行a u t o c a d 2 0 0 2 的二次开发。3 、学习并研究c + + 语言及v i s u a lc + + 6 0 编程技巧,主要内容有:东南大学硕士学位论文( 】) 学习并掌握基本数据类型及输入输出的方法;( 2 ) 学习并掌握c + + 语言的表达式、算术运算和赋值、算术类型转换、增量和减量、关系和运算、条件运算符、j f 语句、逗号表达式、d o w h i 】e 语句、s w i t c h 语句以及函数等;( 3 ) 了解类与对象的概念以及构造函数、析构函数的结构;( 4 ) 学习研究如何利用v i s u a lc + + 6 0 创建a r ) ( 应用程序框架及进行程序界面的编程等。4 、探索使用o b i e c t a r x 对a u t o c a d 进行二次开发的技术,以及利用m f c 制作程序界面的方法。( 1 ) 研究a u t o c a d 的图形数据库结构,学习利用o b j e c 俏r ) ( 工具创建图形数据库中的实体。了解a u t o c a d 数据库中的符号表、块表、对象字典等,学习创建新的a u t o c a d 数据库及对数据库中的符号表和表记录的操作方法;( 2 ) 学习创建数据库对象的基本方法和对a u t o c a d 数据库对象的编辑:( 3 ) 研究0 b j e c t a r ) ( 中的各种基类和派生类,并学习如何使用这些类。( 4 ) 掌握m f c 封装的类、分层结构和通用类的设计规则等,学习如何制作m f c 对话框、如何创建各种类和加入成员函数以及如何进行消息映射、和使用各类对话框控件等;( 5 ) 掌握a r x 应用程序中的数据类型的转换及编写用户函数等方法。( 6 ) 掌握a r x 应用程序在a u t o c a d 中内部调用关系等。本文开发的a r x 应用程序主要采用了创建新的a u t o c a d 数据库的方法并设计了m f c模式对话框的风格。5 、掌握可视化三维建模的技巧,构建钢筋的三维模型。( 1 ) 了解可视化设计的概念及优点:( 2 ) 了解三维模型的表示方法并确定本程序使用实体模型的表示方法;( 3 ) 研究并学习三维实体的程序设计方法,本文采用了将二维对象按指定路径挤出生成三维实体的方法;( 4 ) 本文主要实现了桩基的三维可视化成图及六合县冶( 山) 六( 城) 公路安徽天长段下部构造中的三维盖梁钢筋构造图自动绘制。6 、研究参数化绘图的技巧及方法。( 1 ) 了解参数化绘图的概念和分类;( 2 ) 比较尺寸驱动法和程序驱动法参数化绘图的特征及各自的优缺点和设计方法,并确定本程序使用后者;( 3 ) 研究并确定本文采用的绘图环境、尺寸标注等的设置方法。7 、桩基施工图的自动生成。( 】) 将施工图进行分解,分别设置插入点,并在剖面图、立面图和工程量统计表之间实现关联;( 2 ) 在程序设计方面的重点也是难点部分做了详细的解析,如:剖面图中主筋填充( h a t c h )的功能、剖面图中两种主筋的设置位置的算法以及立面图中两种主筋的设置位置的算法等。8 、详尽说明了本文开发的应用程序的使用方法,并对桩基的计算及自动成图分别采用了工程实例对计算和绘图结果进行检验。使用结果证明,该应用程序在实践中是可行的,图形的绘制规范,速度快,使用范围广。1 3 2 系统开发手段目前,国内推出的c a d 软件中,大多数是以国际上通用的图形支撑软件a u l o c a d 为图形环境,也有的以自己开发的图形支撑系统为平台进行设计,出成果时再进入a u l o c a d环境中。在国际上,a u t o c a d 己成为事实上的图形格式标准。它的开放式系统越来越受到第一章绪论广大用户和二次开发人员的欢迎。a u t o d e s k 公司开发的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 2 0 0 5 ( r 1 6 1 版) ,其开发工具包也已经更新为o b i e c 以r x 2 0 0 5 。但是,鉴于目前r 】6 版的a u l o c a d 在国内并不是主流产品,因此本程序仍旧采用a u t o c a d 2 0 0 2 作为图形开发平台,采用a u t o c a d 2 0 0 2 的开发工具包o b e c t a r 叉2 0 0 2 以及v i s u a lc + + 6 0 编程语言作为开发平台,以适应更多的设计使用者。东南大学硕士学位论文第二章m f c 与0 b je c t a r x 混合编程2 1c + + 语言的技术研究在1 9 7 2 年的b e l l 实验室中,d e n n j sr i c h j e 为u n 】x 操作系统设计了一种高级语言,即今天已被应用到计算机各个领域中的c 语言。作为一种结构化语言,它可以部分的取代汇编语言,具有了很高的移植性,使得c 语言程序在保证支持不同硬件环境的前提下,具有了较高的代码效率。同时,它提供了丰富的数据类型和运算,具有较强的数据表达能力,因而在许多不同的场合被广泛应用。c 语言反映出了设计者追求高效、灵活,支持模块化设计,支持大规模软件开发的愿望,从而成为一种应用领域中更为广泛的程序设计语言之一1 2 j 。尽管c 语言功能丰富、高效灵活,但面对越来越大、越来越复杂的系统它显得越来越力不从心了。经验证明,在c 语言中,一旦程序代码达到2 5 0 0 0 至】0 0 0 0 0 行,该程序就变得十分复杂,难以全面掌握了。为了解决这个问题,一种对c 语言具有很高的兼容性的语言c + + 应运而生了,c + + 的本质就是让程序员管理和理解更大更复杂的程序。仍是在b e j l实验室,自1 9 8 0 年起,b i a m es t r o u s r t u p 博士及其同事开始为这个目标对c 语言进行改造和扩充。由于这种被扩充和改进的c 语言的大量特性与类( c l a s s ) 相关,它最初被开发者称为“带类的c ”,但这个称呼太片面,由于它不仅保留了c 语言的全部精华,同时又吸收了s l m u l a 6 7 ,a l g o l 6 8 和b c p l 语言的许多特性。它远远超过了c 语言。随着这个语言的广泛应用和在各个领域取得成果的增多,它给程序设计带来的全新概念和表现出来的远大前景更加卓著,它的开发者遂称其为c + + 。2 1 1 面向对象编程技术与过去的面向过程的程序设计语言相比较,c + + 的最大特征就在于它是面向对象的程序设计( 0 0 p ) 语言。在面向过程的程序设计语言中,例如c 语言,问题被分解成一系列等待完成的任务,程序员将相关数据项组织成c 结构( s t r u c t ) 并且写出必要的函数( 或过程) 来处理数据。在这一过程中,通过完成一系列的任务来解决问题。而面向对象的程序设计是用抽象数据类型来表达复杂真实的现实世界。o o p 并不是一个新事物,它的三个基本概念:数据抽象、继承性和多态性| 3j 1 4 j ,已经流行了相当一段时间( 例如在s i m u l a 6 7 和s m a l l t a l k 中) 。但是,由于程序设计人员,尤其是c 程序设计人员对o o p 的兴趣与日俱增,使得面向对象的程序设计这一概念重新被人们认识。鉴于c + + 程序设计语言提供了多种直接支持面向对象技术的新的程序结构,使得这一语言日益普及并被人们所喜爱。在面向对象的设计方法中,对象( o b j e c t ) 和传递消息( m e s s a g ep a s s i n g ) 分别是表示事物及事物间相互联系的概念。类( c l a s s ) 和继承( 1 n h e r i t a n c e ) 是适应人们一般思维方式的描述方法。方法( m e t l l o d ) 是允许作用于该类对象上的各种操作。这种对象、类、消息和方法的程序设计范示的基本点在于对象的封装性( e n c a p s u l a t i o n ) 和继承性。通过封装能将对象的定义和对象的实现分开,通过继承能体现类与类之间的关系,再辅之以向各个对象设计所提供的重载( o v e r l o a d ) 及虚函数( v i n u a 】) 的特性以及由此带来的实体运行时的多态性( p o 】y m o r p h i s m ) ,从而构成了面向对象的基本特征。2 1 1 1 对象所谓对象就是现实世界中的实体。具有共同行为和特征的实体的集合,可以被归纳为一6 第二章 l f c 与o b j e c t a r x 混合编程类,因此每个对象都是属于每个类的对缘。面向对象的程序设计是程序设计的一种新思想,该思想认为程序是相互联系的离散对象的集合。一个对象又可以认为是既包含数据又包含处理数据的代码的逻辑实体。在一个对象里,一些代码或数据可以是该对象专有的,任何外部事务都无权存取。这样,对象提供了对代码和数据的有效保护,以防止程序的其它不同相关部分偶然修改或错误使用对象的专有部分,这种代码和数据的连接通常称作封装。不管为了什么目的,对象就是用户定义的类型的变量,也许当初想到对象作为一个变量把代码和数据联系起来似乎有些难以理解,但在面向对象的程序设计中,情况正是这样。定义一个对象实际上就是创建一种新的数据类型。类描述了一组有相同特性( 数据元素) 和相同行为( 函数) 的对象。类实际上就是数据类型,例如,浮点数也有一组特性和行为。区别在于程序员定义类是为了与具体问题相适应,而不是被迫使用已存在的数据类型。这些已存在的数据类型的设计动机仅仅是为了描述机器的存储单元。程序员可以通过增添所需要的新数据类型来扩展这个程序设计语言。该程序设计系统能够创建、关注新的类,对它们进行与内部类型一样的类型检查。这种方法并不限于去模拟具体问题。尽管不是所有的人都同意,但大部分人相信,任何程序都模拟所设计系统。0 0 p 技术能很容易地将大量问题归纳成为一个简单的解,这一发现产生了大量的o o p 语言,其中最著名的是s m a 】t a 】k c + + 之前最成功的o o p 语言。抽象数据类型的创建是面向对象程序设计中的一个基本概念。抽象数据类型几乎能像内部类型一样准确工作。程序员可以创建类型的变量( 在面向对象程序设计中称为“对象”或“实例”) 并操纵这些变量( 称为发送“消息”或“请求”,对象根据发来的消息知道需要做什么事情。2 1 1 2 继承类型不仅仅说明一组对象上的约束,还说明与其他类型之间的关系。两个类型可以有共同的特性和行为,但是,一个类型可能包括比另一个类型更多的特性,也可以处理更多的消息,或对消息进行不同的处理。继承表示了基本类型和派生类型之间的相似性。一个基本类型具有所有由它派生出来的类型所共有的特性和行为。程序员创建一个基本类型以描述系统中一些对象的思想核心。由这个基本类型派生出其他类型,表达了认识该核心的不同途径。一个类的上层可以有超类( s u p e r c l a s s ) ,下层可以有子类( s u b c 】a s s ) ,形成一种层次结构。继承性就表现在这种层次结构中,一个类( 直接) 继承其超类的全部描述。这种继承具有传递性。所以,一个类实际上继承了层次结构中在其上面的所有类的全部描述。因此,属于某个类的对象除了具有该类所描述的特性外,还有层次结构中该类上面所有类描述的全部特性。例如,一个经典的形体问题,可以用于计算机辅助设计系统中。这里,基本类型是“形体”,每个形体有大小、颜色、位置等。每个形体能被绘制、擦除、移动、着色等。由此,可以派生出特殊类型的形体:圆、正方形、三角形等,它们中的每一个都有另外的特性和行为,例如,某些形体可以翻转。有些行为可以不同( 计算形体的面积) 。类型层次结构既体现了形体间的类似,又体现了它们之间的区别。用与问题相同的术语描述问题的解是非常有益的,这样,从问题描述到解的描述之间就不需要很多中间模型( 程序语言解决大型问题,就需要中间模型) 。而在面向对象之前的语言,描述问题的解就不可避免地要使用计算机术语。使用对象术语,类型层次结构是主要模型,所以可以从现实世界中的系统描述直接进入代码中的系统描述。可见,面向对象的设计方法利用继承性可有助于对原型进行快速开发。继承性使得开发者可以充分利用已有的对象进行新的系统设计,减少开发周期,它不仅支持系统的可重用性,7 东南大学硕士学位论文而且还促进了系统的可扩充性。2 1 1 3 多态性当处理类型层次结构时,程序员常常希望不把对象看作是某一特殊类型的成员,而把它看作基本类型成员,这样就可以编写不依赖于特殊类型的代码。在形体例子中,函数可以对一般形体进行操作,而不关心它们是圆、正方形还是三角形。所有的形体都能被绘制、擦除和移动,所以这些函数能简单地发送消息给一个形体对象,而不考虑这个对象如何处理这个消息。这样新添类型不影响原来的代码,这是扩展面向对象程序以处理新情况的最普通的方法。例如,可以派生出形体的一个新的子类,称为五边形,而不必修改那些处理一般形体的函数。通过派生新子类,可以很容易扩展程序,这个能力很重要,因为它极大地减少了软件维护的花费。在面向对象的语言中,通常可以建立具有相同成员函数的对象的等级结构,这些函数在概念上是相似的,但对各自的类来说,其实实现不同。因而在对象接收到同一函数调用时引起的行为不同,这一功能被称为多态性。直观的说,多态性就是“一个名字,多个函数”。多态性还有两种体现,一种是编译时多态性,另一种是运行时多态性。要获得多态性的对象,就必须建立一个类等级,然后在派生类中重新定义基类函数,该函数可被定义为重载或虚函数。针对不同的对象,对一个相似的操作使用相同的消息进行分别处理能力与人类在解决问题中的思考方式是相容的,不必为打印整数、浮点数、字符串、和数据记录而使用不同的术语。如果试图把派生类型的对象看作它们的基本类型,就有一个问题:如果一个函数告诉一个一般形体去绘制它自己,则编译器在编译时就不能确切地知道应当执行哪段代码。同样的问题是,消后发送时,程序员并不想知道将执行哪段代码。绘图函数能等同地应用于圆、正方形或三角形,对象根据它的特殊类型来执行合适的代码。如果增加一个新的子类,不用修改函数调用,就可以执行不同的代码。由非0 0 p 编译器产生的函数调用会引起与被调用代码的“早捆绑”,对于这一术语,就意味着编译器对特定的函数名产生调用,而连接器确定调用执行代码的绝对地址。对于0 0 p ,在程序运行之前,编译器不确定执行代码的地址,所以,当消息发送给一般对象时,需要采用其他的方案。为了解决这一问题,面向对象语言采用“晚捆绑”的思想。当给对象发送消息时,在程序运行之前不去确定被调用的代码。编译器保证这个被调用的函数存在,并完成参数和返回值的类型检查,但是它不知道将执行的准确代码。为了实现晚捆绑,编译器在真正调用的地方插入一段特殊的二进制代码。通过使用存放在对象自身中的信息,这段代码在运行时计算被调用函数的地址。这样,每个对象就能根据一个指针的内容有不同的行为。当一个对象接收到消息时,它根据这个消息判断应当做什么。程序员可以用关键字v i n u a j 表明他希望某个函数有晚捆绑的灵活性,而并不需要懂得v i n u a l 的使用机制。没有它,就不能用c + + 做面向对象的程序设计。v i n u a l 函数( 虚函数)表示允许在相同家族中的类有不同的行为。这些不同是引起多态行为的原因。2 1 2c + + 操作概念众所周知,用c 语言编写的过程程序就是一些数据定义和函数调用。要理解这种程序的含义,程序员必须掌握函数调用和函数实现的本身。这就是过程程序需要中间表示的原因。中间表示容易引起混淆,因为中间表示的表述是原始的,更偏向于计算机,而不偏向于所解第二章m f c 与o b j e c t a r x 混合编程决的问题。因为c + + 向c 语言增加了许多新概念,所以程序员很自然地认为,c + + 程序中的m a j n ( ) 会比功能相同的c 程序更复杂。但是,一个写得很好的c + + 程序一般要比功能相同的c 程序更简单和容易理解。程序员只会看到一些描述问题空间对象的定义( 而不是计算机的描述) ,发送给这些对象的消息。这些消息表示了在这个空间的活动。面向对象程序设计的优点之一是通过阅读,很容易理解代码。通常,面向对象程序需要较少的代码,因为问题中的许多部分都可以使用已存在的库代码。2 2o b je c t a r x 开发技术研究2 2 1a u t o c a d 开发系统概述a u t o c a d 是目前国内使用最为广泛的c a d 软件,它不但具有强大的绘图功能,而且提供非常开放的二次开发环境。通过对a u l o c a d 进行二次开发,可以利用a u t o c a d 强大的图形内核调用其内部的各种功能,开发行业专用的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 da p l ( 应用程序接口) ,它的主要开发工具有o b j e c 俄r x 、a u t o l l s p 、a d s 、j a v a 和v i s u a 】b a s l c 等,它们各具特点,本文主要分析前三种语言,以进行比选。2 2 1 1a u t o l i s pl l s p ( l i s tp r o c e s s 1 1 9l a n g u a g e ) 是一种计算机表处理语言【6 j ,它具有很强的表处理功能,是人工智能程序设计的有力工具之一。l j s p 语言的种类很多,如m a c l l s ps c h e m e ,p cs c h e i n e 和c o m m o n l i s p 等。而a u t o l i s p 是一种嵌入在a u t o c a d 内部l 1 s p 语言,它一方面支持c o m m o n l j s p 的语法与结构,同时又具有与a u t o c a d 系统相关的特殊数据类型和函数。通过这些函数,可以访问c a d 内部所有的命令、选择项、实体、图形数据库和系统的输入输出等,可以说a u i o l l s p 是用户对a u t o c a d 系统进行二次开发的有力工具。a u t o l l s p 程序的结构为: 注释部分) 全局变量初始赋值 子函数定义)局部注释 子函数定义) 主函数定义)图形的绘制和数据的处理在多个子函数中完成。子函数在主函数中定义并合成为一个新的a u t o c a d 命令。a u t o u s p 语言结构清晰,层次分明,是一门更接近于数学语言的语言。与其它各种计算机程序设计语言相比较,有它自己的独特之处,具体表现在如下几个方面:( 1 ) a u t o l l s p 语言中的表达式是种前缀表达式,其程序的基本形式是一系列函数定义:9 东南大学硕士学位论文( 2 ) a u t o l 】s p 语言是一种表处理语言,递归是其主要控制结构,这是它的显著特点;( 3 ) a u t o l l s p 语言具有丰富的数据类型,它所提供的有关符号的特征值和特征表的相应操作,使得它可方便地实现各种搜索。a u t o l 】s p 语言也有它自身不足的一面,主要表现在以下几个方面:( 1 ) 它的语言开发环境没有集成性,使得程序的编辑与调试不很方便;( 2 ) 在菜单设计方面比较逊色;( 3 ) a u t o l l s p 语言对文件的操作,没有像c 语言那样提供打开文件后既能读又能写的过程,它在文件输出和修改方面的功能显得比较弱;( 4 ) 由于常规计算机体系结构与l l s p 特点不相适应,因此a u t o l l s p 语言在常规机上运行效率低、性能差。a u t o l j s p 语言是l j s p 语言和a u t o c a d 有机结合的产物。a u t o l 】s p 继承了l j s p 语言的编程规则,在程序代码中有繁多的括号,编程中很容易出现括号不匹配的错误。程序文件以文本形式进行存储,不经过编译,保密性差。它以解释方式运行,不适合于编写大型程序,运行速度较慢。2 2 1 2a d sa d s ( a u t o c a dd e v e l o p m e n ts y s t e m ) 是a u t o c a dr 1 1 所提供的一种c 语言编程环境1 7 】,它除了可以使用标准c 的函数以外,又增加了一组专用于对a u t o c a d 进行操作的函数。用c 语言编写的a d s 应用程序不能脱离a u t o c a d 环境独立使用,它们需要通过特定的编译器和连接器

温馨提示

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

最新文档

评论

0/150

提交评论