




已阅读5页,还剩44页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
_ = 连堙r 人学坝_ 。学位论文 论文摘要 配管设计是一项卜分复杂的工程设计,管道工程迫切需要实现配管 计的c a d 化。目前国内尚无完整的配管c a d 系统,而引进国外软件 仅价格昂贵,还需配备大中型计算机设备。因此,在微机上探索配笔 c a d 系统的实现,具有很重要的意义。 论文通过应用软件设计理论和a u t o c a d 技术,实现了一个配管图谚 计系统,阐述了在化工领域中如何利用软件设计方法来分析、设计和垂 现化工管道平面布置图绘制系统。 化工管道平面布置图绘制系统是一个有关配管图制作与设计的二维平 面a u t o c a d 系统,它的功能包括绘制管线,在管线上加阀门,在管线上 加管件,标注功能,编辑功能,设置系统环境等。论文分别采用逐步纽 化和面向对象的软件设计方法来实现这些功能。 配管图设计系统使用a u t o l i s p 语言对实体的数据表进行了扩展,成 功地把管道数据存贮到实体数据表中。系统运行后可自动识别配管图中 管线的管径与压力等级,并通过调用数据文件来自动生成相应的图形, 部分实现了智能化图形设计。 使用本系统绘制配管图,可以极大地提高绘图速度。今后可以在此基 础上,开发三维化工管道设计系统,使管道设计人员真正摆脱手工设 计,实现计算机设计。 关键词:软件设计;a u t o c a d :管道数据 _ 人堕些王查兰竺! :竺垡堡塞 一 a b s t r a c t p i p i n gd e s i g ni s av e r yc o m p l i c a t e de n g i n e e r i n gd e s i g n i ti ss i g n i f i c a n tt o r e a l i z ep i p i n gc a d s y s t e m o nt h e p e r s o n a lc o m p u t e rb ya p p l y i n gt h et h e o r y o f s o f t w a r ed e s i g na n da u t o c a dt e c h i n i q u e ,t h i sp a p e rr e a l i z ep i p i n gf i g u r e d e v i c e s y s t e m ,a n d e l a b o r a t eh o wt o a n a l y z e ,d e s i g n a n d i m p l e m e n t p i p i n g d i g r a md r a w i n gs y s t e m i nt h ef i e l do fc h e m i c a le n g i n e e r i n g p i p i n g d i g r a md r a w i n gs y s t e mi sa 2 - d i m e n s i o np l a n ea u t o c a d s y s t e mf o r m a k i n ga n dd e s i g n i n gp i p i n gf i g u r e i t s f u n t i o ni n c l u d ed r a w i n g p i p e l i n e , i n s e r t i n gv a l v e o nt h e p i p e l i n e ,i n s e r t i n gp i p ef i t t i n go i lt h ep i p e l i n e ,a d d i n gp i p e s y m b o l ,c o m p i l a t i o nf u n t i o n ,s e t t i n gs y s t e m e n v i r o n m e n t t h e p a p e r u s et h e s o f t w a r ed e s i g nm e t h o do fs t e p w i s er e f i n e m e n ta n do b j e c t o r i e n t e da p a r tt o f u l f i l lt h o s ef o n t i o o s t h ep a p e re x t e n dt h ee n t i t yd a t a b a s eb ya u t o l i s pl a n g u a g e ,s a v i n gp i p e d a t ai n t ot h ee n t i t yd a t a b a s es u c c e s s f u l l y a f t e rr u n n i n g ,t h es y s t e mc a ni d e n t i f y t h ed i a m e t e ra n dp r e s s c l a s so fp i p e l i n ei nt h ep i p i n gf i g u r e ,a n df o r mt h e c o r r e s p o n d i n gg r a p hb yc a l l i n gt h ed a t af i l e s t h e ni tr e a l i z e si n t e l l i g e n c eg r a p h d e v i c e p a r t l y u s i n gt h es y s t e mt od r a wp i p i n gf i g u r e ,c a ne n h a n c ef a ra n da w a yd r a w i n g v e l o c i t y f u r t h m o r ew em a yd e v e l o pt h es y s t e mo f3 - d i m e n s i o nc h e m i c a l e n g i n e e r i n gp i p e l i n ed e s i g n o i lt h eb a s i so fi t ,t h e r e b yi td i s e n c u m b e r st h e p i p e l i n ed e s i g n e ro f d e v i c em a n u a l l ya n d a c h i e v e sc o m p u t e r i z i n gp l a n r e a l l y k e y w o r d s :s o f e w a r e d e s i g n ;a u t o c a d ;p i p e d a t a 2 凡连理工人学碗1 学位论文 第一章绪论 计算机带来的信息革命是2 0 世纪人类社会发展中的一次重大事件。 自从1 9 4 6 年世界上第一台电子数字计算机在美国宾西法尼亚大学研制诞 生以来,计算机及其相关领域的发展可谓闩新月异。正如在人类用笔和 纸一样,计算机已经渗透到了人类生活的各个领域并极大地促进了这些 领域的向前发展。 自8 0 年代以来,随着计算机技术、数字化技术、电子化技术、网络 技术的交互式迅猛发展,人类社会正在被信息技术带迸信息社会。信息 技术已经覆盖人类认识世界,改造世界的各个领域,使得每个领域均朝 着科学化、数字化方向发展变化。 a u t o c a d 是当今世界上较为流行、使用很广的计算机辅助设计和图 形处理软件,由此产生的二次开发软件也层出不穷。a u t o l i s p 是开发 a u t o c a d 重要的工具之一,自从a u t o c a d 嵌入a u t o l i s p 以后,使仅仅 作为交互式图形编辑软件的a u t o c a d 变成能真正进行计算机辅助设计的 c a d 绘图软件。 1 1 问题的提出 本人毕业后一直在吉化工程公司工作。目前在我院的工程设计中计 算机得到了广泛运用,特别是计算机辅助设计软件在提高工作效率及设 计质量方面起到了显著的作用。但像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 u t o c a d 与未能 掌握其开发工具的结果。要想充分发挥a u t o c a d 的潜力与效率,必须掌 握其程序设计的方法。 人近删1 人学顺卜学位论文 1 2 研究的理论意义及主要内容 对a u t o c a d 做业b 基础, :发工作对于提高我院计算机的、t 刖水j f 是 大有好处的。h 前尽管我院有功能强大的i n t e r g r a p i t 图形r 作站雨1 = i 维管道设计系统,但由- 其价格昂贵,对硬件要求非常岛,所以很难 普及起来。同时大量的计算机在绝大多数情况下只是作为简单的拙图和 文字处理的工具,计算机本身所具有的功能远远没有发挥出来,特别是 目益普及的网络功能。 为使管道室技术人员彻底甩掉图板,真正实现计算机化设计,应在 以下几方面开展工作: 1 开发化工管道平面布置图绘制系统 开发此系统包括三方面内容。( 1 ) 建立图例及常用图形库,这样即 可使设计标准化,也可减少重复工作。( 2 ) 编制便于绘图和图面处理的 模块,例如自动断线、自动加符号等。( 3 ) 依靠数据文件的支持,使绘 图更精确、更接近自动化。例如系统可以直接从数据文件中提取阀门、 管件等的外型尺寸,然后自动形成图形。 2 开发化工管道单线图绘制系统 化工管道单线图绘制系统必须有数据库的支持。它能实现的功能包 括:( 1 ) 方便的数据输入。( 2 ) 自动标注尺寸及常用符号。( 3 ) 自动 实现材料统计,也可以实现自动生成管道保温材料表等。 3 编制管道设计常用数据文件 这些数据文件包括常用定型设备、阀门、管件等的外型尺寸以及管 道材料等级表。 4 ,编制常用设计文件模扳库 在工程设计中,很大一部分工作涉及到各专业之间没计条件的往 返,我院目前普遍采用的方法是在印刷好的图表上手工完成这部分工 作。可以把这部分图表输入到计算机中形成一个模板库,设计人员只需 在模板文件上增加数据和图形即可形成设计条件。如果将来全院计算机 实现联网,并且院有关部门允许通过计算机在各专业之间传送设计条 件,对设计人员来说不但方便,而且能节省大量时间和精力。 本篇论文只涉及到上述1 和3 方面的工作内容,而2 和4 方面的_ 作留待以后完成。 1 3 系统的开发环境 下面介绍一下化工管道平面布置国绘制系统的开发环境 人连删丁人学坝f 学位论文 软仵半台 操作系统:w i n d o w s9 8 w i n d o w s n t4 0 外发平台:a u t o c a dr 1 4 0 和v i s u a lb a s i c6 0 硬件平台 c p u :p e n t i u m1 1 1 5 0 0m h z 内存:6 4 m 硬盘:8 4 g 本系统的大部分功能都是用a u t o l i s p 语言实现的。 l i s p ( l i s tp r o c e s s jn gl a n g u a g e ) 是一种计算机的表处理语言, 是人工智能学科领域广泛应用的一种程序设计语言。a u t o l i s p 语言是嵌 套于a u t o c a d 内部,将l i s p 语言和a u t o c a d 有机结合的产物。使用 a u t o l i s p 可直接调用几乎全部a u t o c a d 命令。a u t o l i s p 语言既具备一 般高级语言的基本结构和功能,又具有一般高级语言所没有的强大的图 形处理功能,是当今世晃上c a d 软件中被广泛采用的语言之一。 美国a u t o d e s k 公司在a u t o c a d 内部嵌入a u t o l i s p 的目的是使用 户充分利用a u t o c a d 进行二次开发:实现直接增加和修改a u t o c a d 命 令,随意扩大图形编辑功能,建立图形库和数据库并对当前图形进行直 接访问和修改,开发c a d 软件包等。 概括地说,a u t o l i s p 综合了人工智能语言l i s p 的特性和a u t o c a d 的绘图功能,可以称之为智能式图形设计和c a d 语言。 第二章软件设计基础 在软件开发活动中,软件设计是其中最关键、最富有创造性的环 节。回顾近3 0 年来软件设计的演变,从最初的模块化设计和由顶向f 设 计,至7 0 年代初演逃为结构程序设计。稍后,在7 0 年代中期,几乎在 同时间涌现出由数据流导出软件设计的“结构化系统设计”和由数据结 构导出软件设计的“j a c k s o n 系统设计”,使系统设计技术呈现出欣欣向 荣的局面。到8 0 年代,一种更新的软件设计方法“面向对象的设计” 又应运而生。这一连续的、充满活力的发展进程,不仅丰富了软件:i :程 学的内容,而且一直是推动软件工程学向前发展的重要因素。 2 1 软件设计的目的与任务 在一般情况下,软件的定义阶段要弄清让软件“做什么”,开发阶段 才解决要软件“怎样做”。在传统的瀑布模型中,“做什么”是安排在分析阶 段进行的,而“怎样做”则属于设计阶段应完成的任务。y o u r d o n 把软件 设计的目的简明地描述为:“侵程序适应于要解决的问题”( m a k et h e p r o g r a mf i tt h ep r o b l e m ) 。这就是说,通过软件的需求分析,要软件解决 的问题已经明确了。软件设计的作用,就是使开发出来的软件能够适应要 解决的问题。 应该指出,设计阶段拿出的结果还不是程序,而是用伪代码或某种 图形工具描述的程序的逻辑过程。但是,一个程序是否适和于需要解决 的问题,实际上在设计阶段已经决定了,编码仅起到一个“翻译”的作用。 所以y o u r d o n 的这句话虽然简短,却一语道破了设计的实质。 按照软件工程的观点,设计活动一般应包括“总体设计”与“详细设计” 两个步骤。这两步的任务可以简单地表示为: 总体设计( a r c h i t e c t u r a ld e s i g n ) 一决定软件的总体结构,又称 为“概要设计( p r e l i m i n ar yd e s i g n ) ”或“结构设计( s t r u c t u r a l d e s i g n ) ”: 详细设计( d e t a i l e dd e s i g n ) 决定每一模块内部的逻辑过程, 又称为“过程设计( p r o c e d u r a ld e s i g n ) ”或“算法设计( a l g o r i t h m d e s i g n ) ”。 人连理t 人学顺i j 学位论虹 2 2 软件设计的基本原则 如前所述,软件设、十方法在过去3 0 年r 1 、经历了旺人的变化。所消祭 本的软件设计原则,就是指导软件设h 活动的一绀公处准则。随着软件 l 程学的发展,这些原则在各种不同的设计方法中获得广泛的应用,经 历了时间的考验,现已成为所有设计方法的共同基础。 一般情况下,最基本的软件设计原则有以下四条,即:抽象、细 化、模块化和信息隐藏。 一、抽象( a b s t r a c t i o n ) 人类在认识复杂现象的过程中使用的最强有力的思维工具是抽象。 人们在实践中认识到,在现实世界中一定事物、状态或过程之r , j 总存在 着某些相似的方面( 共性) 。把这些相似的方面集中和概括起来,暂刚 忽略它们之间的差异,这就是抽象。或者说抽象就是抽出事物的本质特 征而暂时不考虑它们的细节。 由于人类思维能力的限制,如果每次面临的因素太多,是不可能做 出精确思维的。处理复杂系统的唯一有效的方法是用层次的方式构造和 分析它。一个复杂的动态系统首先可以用一些高级的抽象概念构造和理 解,这些高级概念又可以用一些较低级的概念构造和理解,如此进行下 去,直至导出最低层次的具体元素。 这种层次的思维和解题方式必须反映在定义动态系统的程序结构之 中,每级的一个概念将以某种方式对应于程序的一组成分。 当我们考虑对任何问题的模块化解法时,可以提出许多抽象的层 次。在抽象的最高层次使用问题环境的语言,以概括的方式叙述问题的 解法;在较低抽象层次采用更过程化的方法,把面向问题的术语和面向 实现的术语结合起来叙述问题的解法;最后,在最低的抽象层次用可以 直接实现的方式叙述问题的解法。 逐步求精和模块化的概念,与抽象是紧密相关的。随着软件开发工 程的进展,在软件结构每一层中的模块,表示了对软件抽象层次的次 精化。事实上,软件结构的顶层的模块,控制了系统的主要功能并且影 响全局;在软件结构低层的模块,完成对数据的一个具体处理。 二、细化( r e f i n e m e n t l 细化是软件设计中又一条极重要的原则。一个软件系统,其功能在 高层次上的抽象一般可用几句话来概括。当对系统由顶向下进行设训 时,第一次可能将它细化为若于个子系统,每一子系统执行一项独立的 人连璀工大学硕t 学位论文 了功能。再次细化,则每个子系统又可分为若干模块,每一模块完成一 个或一组确定的任务。由此可见,细化的实质是分解( d e c o m p o s i t i o n ) , 其卜_ | 的是把需要由软件来解决的问题通过分解,合理分配给软件的各个 模块,以便最终获得软件的总体结构( s o f t w a r ea r c h i t e c t u r e ) 。 继续对具有确定功能的模块进行细化,可以进步获得每模块内 部的逻辑过程,即通常所说的软件过程( s o f t w a r ep r o c e d u r e ) 。 w i n h 把上述这种从软件系统的最初要求导出软件的总体结构、进而 得出软件过程所采用的方法,称为“逐步细化( s t e p w a r ep r o c e d u r e ) ”。他 对这种方法的要点作过如下的说明: “在( 细化的) 每一步中,把给定程序中的一条或数条操作说明分解 为更加详细的操作说明。等到所有的操作说明都能用某种计算机语言或 程序设计语言直接表达时,这种对于连续分解或细化才会终止。 随着对任务的细化,可能不得不同时对数据进行细化和分解,或将它们 组织成某种结构。也就是说,对程序和数据平行地进行细化,在程序设 计中是十分自然的。” 细化与抽象其实是一对相反的过程。在由顶向下设计中,当软件处 于系统层或子系统层时,其抽象层次是较高的。随着设计的细化,其抽 象层次将越来越低。所以由顶向下设计的任务,就是在不同层次上建立 起程序的各级抽象。下图2 一l 显示了细化与抽象在程序设计中所起的不 同作用与相互联系。 粗一一塑垡 - 细 高塾塞 低 图2 - 1 细化与抽象 大连理工人学砸十学位论文 三、模块化( m o d u l a r i t y ) 模块是数据随明、可执行语句等程序对象的集合。它是单独命名并 且可通过名字来访问的,例如过程、函数、子程序、宏等等。模块化就 是把程序划分为若干个模块,每个模块完成一个子功能,把这些模块集 中起来组成一个整体,可以完成指定的功能,满足问题的要求。 把复杂问题分解成许多容易解决的小问题,这就是模块化的根据。 采用模块化的原理可以使软件结构清晰,不仅容易设计也容易阅读和理 解。 当模块数目增加时,每个模块的规模将减小。开发单个模块的成本 虽然减少了,但随着模块数目的增加,设计模块间的接口所需工作量也 将增加,所以每个程序都相应地有一个最适当的模块数目。 四、信息隐藏( i n f o r m a t i o nh i d i n g ) 模块化的原则给软件设计人员带来一个很自然的问题,即模块应怎 样划分,才能取得良好的效果? 1 9 7 2 年,p a r n a s 曾著文讨论这一重要 的问题,提出了著名的“信息隐藏”原则。其中心思想是,一个模块内部 的数据与过程,应该对没有必要了解这些数据与过程的其它模块隐藏起 来。换句话说,在相互独立的个模块之间,只允许传递为了完成软件功 能所必需的信息,对于模块内部的其它细节和局部数据,应限制别的模 块对它们访问。这样做的优点,一是可以简化模块接口,使之易于设 计;更重要的是能够在修改软件时减少错误在模块间的传播机会,使软 件易于维护。p a r n a s 的这一思想在模块化设计和后来的面向对象设计中 都得到应用。 2 3 逐步细化的设计方法 逐步细化方法既可用于软件分析,又可用于软件设计。本系统的前 五个功能的分析与设计就采用了这种设计方法。 一、指导原则 逐步细化的设计方法有多条指导原则,其中主要有: 1 先分解主要问题,次要问题可暂时搁置。 2 坚持渐进的原则,每一步的变化不要太大。 3 选用适合于求解问题的设计工具。 4 最后一步细化应详细到所得结果可以直接翻译为源程序。 人连础t 大学顺 :学位论文 骤 按照上述的指导原则,可以列出用逐步细化方法设计程序的一般步 第一步:列出问题的初步解; 第二步:分解主要问题; 第三步:继续细化,直到所得结果n 丁以直接翻译为源程序。 二、逐步细化的优点 l - 便于控制开发的复杂性 由于它强调每一步只优先处理当前最需要细化的部分,其余步骤则 推迟到以后适当的时机再考虑,所以主次分明,可避免因齐头并进而引 起顾此失彼。 2 便于验证程序的正确性 由于它强调“渐进”,前后两步间的变化不大,较易验证后一步的 功能是否与它的前面一步等效。 2 3 模块化设计和由顶向下设计 在长期的软件设计实践中,人们提出并发展了一些适用性好、具有 重要实用价值的软件设计策略( d e s i g ns t r a t e g y ) 。模块化设计和由项向下 设计就是其中的两种。 一、模块化设计( m o d u l a rd e s i g n ) 所谓模块化设计,就是按适当的原则把软件划分为一个个较小的、 相关而又相对独立的模块。模块化的思想不仅来源于人们的实践,同时 具有理论的根据。 1 软件工程基本定理 早在1 9 5 6 年,m i l l e r 就著文指出,人类信息处理的能力是有限的, 分辨或记忆同类信息的数量一般不篚超过( 7 2 ) 项。把个复杂的问 题分解为若干较易管理的小片,相对于把问题作“一揽子解决”更容易。 有人根据这一论点研究了软件的开发工作,得出了以下两个不等式: c ( p 1 + p 2 ) c ( p 1 ) + c ( p 2 ) ( 1 ) e ( p 1 + p 2 ) e ( p 1 ) + e ( p 2 )( 2 ) 式( 1 ) ( 2 ) 中p 表示问题,( p i + p 2 ) 表示把问题作为一个整体处 理,p 1 、p 2 表示分作两个较小的问题来处理;c 代表问题的复杂度 ( c o m p l e x i t y ) ;e 代表解题所需的工作量( e f f o r t ) 。 人连理工人学碗一卜学位论文 ( 1 ) ( 2 ) 不等式表明,将问题化大为小,无论是复杂度还是求解 的丁作量都会随之减小。有时把这两个不等式称为“软件工程基奉定 理”。 但是,如果把一个问题分为两个,两个分为四个,不断分下去,会 不会使工作量越来越小,最终变成几乎可以忽略了呢? 这当然不会。冈 为在一个软件系统内部,各组成模块之间是相互关联的。当模块数量增 多时,每个模块的复杂度和工作量以及由此构成的成本虽然下降,但模 块之间的接口却复杂起来,接口部分的成本也随之增加。把一个软件的 模块分得过多或过少,都会增加开发的工作量和成本。 2 模块独立性( m o d u l ei n d e p e n d e n c e ) 那么,怎样才能把一个系统的模块划分得比较合理? 模块独立性是 衡量的标准。 模块独立性可以从两个方面来衡量,即内聚与耦合。前者指模块内 部各个成分的联系,故又称块内联系;后者指一个模块与其它模块之间 的联系,故又称块间联系。把软件分为模块时,应尽可能使块内联系增 强,块间联系减弱。凡符合这一要求的,其模块独立性就高。所以划分 模块的标准,也可以归结为“坚持模块独立性”。 二、由顶向下设计( t o p - d o w nd e s i g n ) 开发一个应用软件系统,在总体设计阶段可以采取两种不同的策 略,即“由底向上”设计和“由顶向下”设计。 使用自顶向下的方法开发程序,设计者首先实现软件结构的最高层 次,用“存根”代表较低层次的模块,所谓存根就是简化模拟较低层次 模块功能的虚拟子程序。实现了软件结构的一个层次之后,再用类似方 法实现下一个层次,如此进行下去直到最终用程序设计语言实现了最低 层次为止。 自底向上的方法和上述开发过程相反,从最底层次开始构造系统, 直至最终实现了最高层次的设计为止。 一般来说,用自顶向下的开发方法得到的程序可读性较好,可靠性 也较好:用自底向上的开发方法得到的程序往往局部是优化的,系统的 整体结构却较差。本系统在总体设计阶段采用了由顶向下的设计策略。 2 4 面向对象方法 与传统的结构化程序设计方法相比,面向对象编程( o b j e c t 大连理 :大学碗十学位论文 o r i e n t e dp r o g r a m m i n g ,简称o o p ) 不仅是一种新的程序设计方法,而 且足对程序设计的种全新认识。它是一种试图模仿人们建立现实世界 的程序设计方法,利用了人们对事物的自然倾向,引入了类的概念,具 有数据抽象、继承性等特点。 概括地说,面向对象方法具有下述四个要点: ( 1 ) 客观世界是由各种对象组成的,任何事物都是对象,复杂的对 象可以由比较简单的对象以某种方式组合而成。按照这种观点,可以认 为整个世界就是一个最复杂的对象。因此,面向对象的软件系统是由对 象组成的,软件中的任何元素都是对象,复杂的软件对象由比较简单的 对象组合而成。 ( 2 ) 把所有对象都划分成各种对象类( 简称为对象类,c l a s s ) , 每个对象类都定义了一组数据和一组方法。数据用于表示对象的静态属 性,是对象的状态信息。因此,每当建立该对象类的一个新实例时,就 按照类中对数据的定义为这个新对象生成一组专有的数据,以便描述该 对象独特的属性值。例如,荧光屏上不同位置显示的几个半径不同的 圆,虽然都是c i r c l e 类的对象,但是它们各自都有自己的专有数据,以 便记录各自的圆心位置、半径等等。 类中定义的方法,是容许施加于该类对象上的操作。它是该类所有 对象共享的代码,每个对象并不需要复制就可以执行。 ( 3 ) 按照子类( 或称为派生类) 与父类( 或称为基类) 的关系,把 若干个对象类组成一个层次结构的系统( 也称为类等级) 。在这种层次 结构中,通常下层的派生类具有和上层的基类相同的特性( 包括数据和 方法) ,这种现象称为继承( i n h e r i t a n c e ) 。但是,如果在派生类中对 某些特性又做了重新描述,则在派生类中的这些特性将以新描述为准, 也就是说,低层的特性将屏蔽高层的同名特性。 ( 4 ) 对象彼此之间仅能通过传递消息互相联系。 对象与传统的数据有本质区别,它不是被动地等待外界对它施加操 作,相反,它是进行处理的主体,设计者必须发消息请求它执行它的某 个操作,处理它的私有数据,而不能从外界直接对它的私有数据进行操 作。也就是说,一切局部于该对象的的私有信息,都被封装在该对象类 的定义中,就好象装在一个不透明的黑盒子中一样,在外界是看不见 得,更不能直接使用,这就是“封装性”。 在面向对象的程序设计过程中,首先创建对象,如文本框、标签、 按钮和窗体,然后描述对象的属性,最后根据对象对应的事件处理过程 进行编程,把程序的功能细化为对象的功能和对象之间的联系。 随着工程规模的不断扩大,软件复杂性的大幅度增加,面向对象编 程在程序设计领域越来越表现出独有的优势,它可以缩短软件的研制时 夫连理工大学硕士学位论文 问,提高软件的开发效率,而且使软件的结构化和集成能力进一步提 高。 本系统在对设置系统环境功能的设训过程中使用了面向对象的设计 方法,并选择v is u a b a s i c6 0 作为编程语言。 人连理一人学硕士学位论文 第三章系统的总体设计 化工管道平面布置图绘制系统是在a u t o c a d 环境下用a u t o l i s p 语 言编写出的软件系统,主要适用于在化工工程设计的过程巾,化工管道 平面布置图( 以下简称配管图) 的绘制与管理。 本章对化工管道平面布置图绘制系统的功能进行了简要的概括,并 设计出系统的层次图,以及系统的数据结构和数据文件。 3 1 系统的功能 根据实际的需求,从总体上系统具有如下六个功能: ( 1 ) 绘制管线功能。系统可以连续绘制单线管道和双线管道,在绘 制双线管道时可自动形成弯头。 ( 2 ) 在管线上加阀门功能。系统可以在水平管线或垂直管线上加各 种阀门,阀门的尺寸可以根据工程项目的要求而修改。 ( 3 ) 在管线上加管件功能。系统可以根据需要在管线上加弯头、三 通、异径管等各种管件。 ( 4 ) 在配管图中如标注功能。这些标注包括管线号、标高、断线 号、轴线号、仪表符号等。 ( 5 ) 编辑功能。包括显示和修改管道数据、清除管线上的实体、修 复双线管道数据等。 ( 6 ) 设置系统环境功能。在绘制新的配管图之前,用户可以先运行 设置系统环境的应用程序。它可根据用户的选项来完成系统的环境设 置,并进入到本软件系统当中。 3 2 系统结构概述 通常软件系统中的一个模块完成一个适当的子功能,应该把模块组 织成良好的层次系统。顶层模块调用它的下层模块以实现系统的完整功 能,每个下层模块再调用更下层的模块,从而完成系统的一个子功能, 最下层模块完成具体的功能。 层次图用来描绘软件系统的层次结构。层次图中的一个矩形框代表 一个模块,方框间的直线表示调用关系。本软件系统的层次图如图3 1 大连理j 一大学硕上学位论文 所示。 3 3 数据结构设计 图3 - 1 系统的层次图 数据结构描述各数据分量之问的逻辑关系,数据结构一经确定,数 据的组织形式、访问方法、组合程度及处理策略基本上随之确定,所以 数据结构是影响系统总体结构的重要因素。 3 3 1 实体的基本概念 一个图形总是由若干基础图元( 如圆、圆弧、直线等) 组成。实体 ( e n t i t y ) 是a u t o c a d 预先定义的图元,所谓一个实体就是在a u t o c a d 大连理工人学硕士学位论文 卜| 用一个简单命令执行后生成的图元单位。a u t o c a d 常用实体有 p 0 1 n t 点 l i n e直线 c i r c l e 圆 a r c圆弧 t r a c e轨迹 s o l i d 实心体 t e x r 正文 s h a p e形 3 d l l n e三维直线 3 d f a c e 三维平面 d i m e n s i o n 尺寸标注 p o l y l i n e 多义线 i n r s e r t 插入块 实体名( e n t i t yn a m e ) 是指图形中每一个实体( 或图元) 所对应的 名字。它对应一个指针( p o i n t e r ) ,是a u t o l i s p 的数据类型之一。用这 个指针可以找到该实体在图形数据库中的记录及其在屏幕上的向量,在 a u t o l i s p 中用下列格式表示实体名: ( e n t i t yn a m e :实体名编码) 3 3 2 获得实体定义数据函数e n t g e t 该函数功能是从当前图形数据库中获得( 实体名) 的实体定义,其 参数必须是实体名。因为实体是一个指针,只有通过它才能访问图形数 据库。 翌挚:用a u t o c a d 的l i n e 命令画一条直线,再用e n t g e t 函数获得此 直线的定义。 c o m m a n d :l i n e f r o m p o i m :l ,2 t o p o i n t : c o m m a n d :( e n t g e t ( e n t l a s t ) ) ( ( 一1 ( e n t i t yn a m e :6 0 0 0 0 0 1 4 ) ( c u l i n e ”) ( 8 纰”) :返回值如下表 ) ;图元名 实体类型 图层 人连理j 大学坝i 学位论殳 ( 1 01 02 0 0 o 、 ( 1 t6 06 0 0 o ) 起点 终点 该实体数据表中包含多个子表,每一个子表都由两部分组成,其中 第一部分为组代码,第二部分为对应的组值。除后面两个表示点的子表 外,其他的子表都是由点对表示。后两个表示点的予表是由三个( 二维 点) 或四个( 三维点) 元素组成的。 3 。3 3 实体数据表的扩展 本软件系统要求每根管线都具有自身的管径与压力等级,所以需要 扩展实体的数据表,把管线的管径与压力等级这两项信息加载到直线的 数据表中。如何存贮管道数据将在第四章论述。 实体数据表经过扩展后再用e n t g e t 函数读取实体的数据表时,就会 发现管道数据已经存贮到实体的数据表中。如下所示: c o m m a n d :( e n t g e t ( e n t l a s t ) ( 1 i s t 。p i p e d a t a ”) ) ( ( 1 1 ) ( o ”l i n f ) ( 5 “3 c 5 1 ”) ( 1 0 0 ”a c d b e n f i t y ”) ( 8 ”s i n g l e l i n e ”) ( 1 0 0 ”a c d b l i n e ”) ( 1 011 2 3 7 31 8 8 2 3 40 0 1 f 1l 1 6 6 0 7 81 8 8 2 3 40 0 1 ( 一3 ( ”p i p e d a t a ”( 1 0 0 0 ”d 8 0 c 3 0 0 ”) ) ) :管道数据存贮到扩展数据项 :当中。 3 4 建立数据文件 化工管道平面布置图绘制系统涉及到的数据文件可以分为阀门数据 文件与管件数据文件两类。阀门包括截止阀( g l o b e ) 、闸阀( g a t e ) 、 止回阀( c h e c k ) :管件包括三通( t e e ) 、异径管( r e d u c e r ) 。其中阀门 的种类可以根据工程项目的具体要求进行扩充。 系统在运行过程中,要经常对数据文件进行打开、查找、关闭等操 大连理1 一人学坝 学位论且 作,所阻数据文件的结构要有一定的规律性,而且内容要尽可能的满足 工程上的一般要求。 数据文件的开始是注释项,所有注释项都是以# # # 开头,主要说明数 据文件的名称、所采用的化工l 业标准、缩写字母的含义等。注释项主 要是方便用户在实际的工作中根据具体情况对数据文件进行扩充与修 改。正文中每一不同的管径占一行,管径下面列出了在此管径f 不同压 力等级所对应的阀门或管件尺寸。下面列出截止阀数据文件的部分内 容。 撑捍拌g l o b e 槲捍a n s is i z e 群社撑d :n o m i n a ld i a m e t e ro f p i p e 捍拌拌b :p r e s s u r ec l a s s # 拌拌l :t e n g t ho f v a l v e d 2 0 b 1 2 5 l 11 8 b 1 5 0 l l1 8 b 3 0 0 l 1 7 8 b 6 0 0 l 1 9 l d 2 5 b 1 2 5 l 1 2 7 b 1 5 0 l 1 2 7 b 3 0 0 l 2 0 3 b 6 0 0 l 2 1 6 d 4 0 b 1 2 5 l 1 6 5 b 1 5 0 l 1 6 5 b 3 0 0 l 2 2 9 b 6 0 0 1 2 4 1 d 5 0 b 1 2 5 l 2 0 3 b 1 5 0 l 2 0 3 b 3 0 0 l 2 8 3 b 6 0 0 l 2 9 5 b 9 0 0 l 3 7 1 b 1 5 0 0 l 3 7 l b 2 5 0 0 i a 5 4 d 6 5 b 1 2 5 l 2 1 6 b 1 5 0 l 2 1 6 大连_ ! l ! r 夫学硕i 学位论文 b 3 0 0 l 3 0 8 t 3 6 0 0 l 3 3 3 b 1 2 5 l 2 1 6 b 9 0 0 l 4 2 2 b 1 5 0 0 l 4 2 2 b 2 5 0 0 l 5 1 4 d 8 0 b 1 2 5 l 2 4 l b 1 5 0 l 2 4 1 b 3 0 0 l 3 3 3 b 6 0 0 l 3 5 9 b 9 0 0 l 3 8 4 b 1 5 0 0 l 4 7 3 b 2 5 0 0 l 5 8 4 d 1 0 0 b 1 2 5 l 2 9 2 b 1 5 0 l 2 9 2 b 3 0 0 l 3 7 1 b 6 0 0 l 4 3 5 b 9 0 0 l 4 6 0 b 1 5 0 0 l 5 4 9 b 2 5 0 0 l 6 8 3 d 1 5 0 b 1 2 5 l 4 0 6 b 1 5 0 l 4 0 6 b 3 0 0 l 4 6 0 b 6 0 0 l ,5 6 2 b 9 0 0 l 6 1 3 b 1 5 0 0 l 7 1l b 2 5 0 0 l 9 2 7 d 2 0 0 b 1 2 5 l 4 9 5 b 1 5 0 l 4 9 5 b 3 0 0 l 5 7 5 b 6 0 0 l 6 6 4 b 9 0 0 l 7 4 0 b 1 5 0 0 l 8 4 1 b 2 5 0 0 l 1 0 3 8 7 大连理工大学坝i j 学位论文 第四章系统的分析与设计 本章采用逐步细化的设计方法对化工管道布置图绘制系统进行了分 析和设计。细化了系统的层次图,设计出每个模块的具体处理过程,为 系统的实现奠定了可靠的基础。 在对设置系统环境功能的设计过程中采用了面向对象的设计方法, 标明了对象间的层次关系,使建立友好的用户界面成为可能。 4 1 管道数据的存取 系统对数据文件操作的前提是获取了管线的管道数据( 管径、压力 等级) ,所以管道数据的存贮与提取这两个公用函数的设计就显得尤为 重要。 配管图中的管线可分为单线和双线两种,其中管径小于2 5 0 m m 的管 线用单线表示;管径大于或等于2 5 0 m m 的管线用双线表示。 4 1 1 存贮单线的管道数据 本系统绘制的单线管道同a u t o c a d 下绘制的直线的区别在于它含有 管道数据。管道数据是在用户绘制管线或加阀门、管件的过程中存贮到 管线实体的扩展数据表中的。存贮单线管道数据问题的初步解如下: a 对函数的三个参数进行处理。 b 扩展单线实体的数据表。 函数的三个参数为管径、压力等级、柄号。每个实体都有自己的柄 号,即使是图形与大小完全相同的实体,其柄号也不相同,所以把柄号 作为取实体原有数据表的参数。继续分解第一步如下: a 1 在管径、压力等级字符串前分别加“d ”、“c ”作为标识符。 a 2 将以上两个字符串按顺序相连组成一个新的字符串h a n d s t r 。 a3 利用实体的柄号取得实体原有的数据表e n t 。 a u t o l i s p 规定扩展数据的组代码为3 ,所以如果要扩展原有的数据 表,就必须把一3 加到扩展数据的最前端。继续分解第二步如下: b 1 把“- 3 ”、“p i p e d a t a ”、“1 0 0 0 ”三个字符串按顺序同h a n d s t r 大连理t 大学硕上学位论史 相连组成扩展数据表达式e x d a t a 。 b 2 将e n t 同e x d a t a 串在一起,构成一个新表n e w e n t 。 b 3 接受修改后的实体数据表,更新实体在数据库中的定义,同时又 更新它在屏幕j 二的显示。 4 1 2 存贮双线的管道数据 双线管道在配管图中用一条中心线和在它两侧平行均布的两条实线 表示,管道数据存贮在中心线的扩展数据表中。由于系统在处理双线的 过程中,需要用到两条实线的数据表,所以把两条实线的柄号h d l l 、 h d | 2 也存贮到中心线的扩展数据表中。 存贮双线的管道数据问题的初步解如下: a 对函数的四个参数进行处理。 b 扩展中心线实体的数据表。 继续分解第一步如下: a 1 在管径、压力等级、两条双线的柄号h d l l 、h d l 2 前分别加 “d ”、“c ”、“”、“& ”作为标识符。 a 2 将以上四个字符串按顺序相连组成一个新的字符串h a n d s t r 。 a 3 利用中心线的柄号h d l o 取得中心线原有的数据表e n t 。 继续分解第二步如下: b 1 把“3 ”、“h d l d a t a ”、“1 0 0 0 ”三个字符串按顺序同h a n d s t r 相连组成扩展数据表达式e x d a t a 。 b 2 将e n t 同e x d a t a 串在一起,构成一个新表n e w e n t 。 b 3 接受修改后的实体数据表,更新实体在数据库中的定义,同时又 更新它在屏幕上的显示。 4 1 3 提取管线的管道数据 用户在进行显示、修改管道数据或进行如闲门、管件的操作时,如 果管线含有扩展数据,系统就把它们提取出来。单线管线和双线管线在 此问题上的区别仅为提取的内容不同,其方法是一样的。提取管线管道 数据问题的初步解如下: a 利用管线的柄号参数提取实体的数据表。 b 如果数据表中含有扩展数据项,则把它们分别取出。 夫连理工大学硕卜半位论文 在对扩展数据表达式的处理当中,关键是要确定d ( 管径) 与c ( 压 力等级) 两个字符的位置
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建筑工程施工图解指南
- 2025北京市中国中医科学院西苑医院招聘手术麻醉科、药学部人员4人(事业编)笔试模拟试题及答案解析
- 2025山西中医药大学第二批招聘博士研究生25人笔试模拟试题及答案解析
- 农村生态养殖业合作协议方案
- 企业市场营销数据分析与应用解决方案
- 2025年八年级物理下学期教学工作总结例文(二篇)
- 2025年建筑工程钢铁结构施工承包合同
- 排水管道施工安全管理方案
- 2025年产品加工买卖合同样本
- 2025浙江嘉兴市海宁新奥燃气有限公司招聘1人考试参考题库附答案解析
- 混泥土计量管理办法
- 二级生物安全实验室备案材料
- 国防教育课件
- 环境监测站废物管理制度
- 完整版护士糖尿病护理课件
- 铜绿假单胞菌安全数据单
- 立足“大思政”当好引路人-如何当好班主任专题培训
- 退休干部管理暂行办法
- 部队安全驾驶课件
- 物资装备配置方案
- 2025年中级经济师考试全试题及答案清单
评论
0/150
提交评论