CAD软件设计
出处:按学科分类—工业技术 北京理工大学出版社《新编液压工程手册上册》第184页(4103字)
计算机辅助设计系统包括硬件和软件系统,开发一个CAD系统涉及到这两方面的设计问题。对于硬件部分,通常不是直接设计硬件设备,而是根据设计任务的要求确定所需硬件的功能,并提出配置什么样的硬件和如何使用硬件设备。软件设计是提出设计系统应包括的软件内容,主要是应用程序的设计和调试工作。研制CAD系统的软件设计工作过程,包括下面几个阶段:
·程序系统分析
·程序系统总体设计
·程序系统的详细设计
·编写程序
·程序调试
·程序的运算和维护
(1)程序系统分析
这个阶段主要完成下面几方面的工作:
·充分分析与明确设计任务与要求,了解该任务手工设计的内容、方法与步骤,明确设计的初始条件、技术要求、性能指标;
·分析计算机上实现设计的可能性,选用现代设计方法,如引入优化设计方法;
·确定设计的系统采用哪种类型的CAD系统(如采用人—机交互式或非人—机交互式),系统具有哪些功能(如有没有工程数据库,图形输出方式选择),确定系统的输入、输出参数;
·进行可行性分析。从现有的计算机设备、资金、人员技术水平及组成等,分析完成研制的条件,需要解决的技术关键,以及解决的途径,作出可行性分析报告;
·论证可行性报告后,填写研制任务书。其内容包括研制任务与要求;程序系统的总功能及其组成;研制计划和进度;解决技术关键的途径;经费预算;研制人员组成等。
(2)程序系统的总体设计
在这个阶段,将确定程序的总体结构设计,总体结构的设计方法,模块的功能,模块间参数传递的方式以及采用哪一种语言进行设计等内容。
A.程序系统的结构设计
在进行总体设计时,首先考虑的是程序结构。为了使程序结构合理、清晰、容易阅读、不易出错、便于调试和维护,结构设计通常可采用自顶向下和模块化的设计方法。具体讲,就是将程序系统作为一个总功能模块,随后将该功能模块划分成多个层次,由若干个独立的小功能模块组成。对于最下层的功能模块,只完成单一的、定义明确的功能,称为单功能模块。为了表明组成程序系统的结构,可以画出功能模块结构图。结构图通常采用树结构,即一个模块只被一个高于它的模块调用,形成层次结构;也可采用网状结构,即一个模块由多于一个层次的模块调用,如图6.1-2所示的一个功能模块结构图。其中设计计算模块,对其上、下系统的模块均属于树状结构,而对于绘图模块,既受制于管理模块,同时也受设计模块输出数据的影响,当有新的设计数据输入,会改变绘图模块输出的图形,也就是属于网状结构形式。任一个程序系统结构的功能模块图可能会包括上述两种结构。
图6.1-2 功能模块结构图
B.确定数据的流通途径
设计系统的结构时,还要分析系统运行时数据的流通、设计系统外部数据输入与数据输出的次序和途径,数据流通较复杂时,最好用箭头标出数据的流向;
C.确定编程的设计语言
CAD的设计与绘图两大部分,对支撑软件的功能要求很不相同,通常设计部分要求支撑软件的数值计算功能很强,而绘图部分则对支撑软件的绘图功能要求高些。所以对于CAD开发人员在确定编程语言时,常选择有较强数值计算功能的BASIC,C及FORTRAN等语言作为设计的支撑软件,而在绘图部分则选用有优秀屏幕操作功能、图形编辑、修改功能及众多硬件支持的绘图软件,如AutoCAD绘图软件及大恒机械CAD软件或MegaCAD软件。
(3)程序系统详细设计
详细设计的目的是将总体设计中描述的每一模块的功能具体化,设计出每一模块的内部细节,包括程序模块过程、算法描述和数据结构,以及各程序模块间接口信息的描述,为编写源程序作好必要的准备。
A.建立数学模型
计算机通过数值运算和逻辑判断解决问题,需要把设计的问题归纳为明确的数学问题,用数学计算式表示设计问题,即通常的数学模型。
一般的工程设计中的某些设计问题已经有现成的、公认的计算公式(包括理论公式、经验公式),可以直接引用来建立数学模型。但在实际的工程设计中,往往一些设计问题没有现成的计算公式,这时设计者可以通过理论研究,推导或由实验数据通过辩识拟合方法,求出符合实际的数学模型。建立数学模型时可根据CAD现代设计方法,引入优化设计方法。即确定合适的设计变量,给出约束条件的表达式,确定达到设计预期目标要求的目标函数。
B.确定算法,画程序框图(流程图)
数学模型确定之后,便要制定问题求解的一个算法,并按算法步骤画出流程图。
结构化程序设计方法要求人们按照一定的规则编写程序,一个结构化程序由若干个基本结构顺序构成。写程序时,一个结构、一个结构顺序地写,看程序时也是从上而下,一个结构、一个结构地读,每一个基本结构可以包含一个或若干个语句。每种基本结构只有一个入口,一个出口,它从顶上进入,底部出去,有三种基本结构:顺序结构,选择结构,循环结构。顺序结构是最简单的一种结构,如图6.1-3(a)所示。先执行A操作,再执行B操作,两者是顺序执行的关系;选择的结构是单分支结构,如图6.1-3(b)所示,图中P代表一个条件,当P条件成立(或称为“真”)时执行A,否则执行B。注意,只能执行A或B之一,两条路径汇合在一起后,然后出口。此外,还有一个多分支选择结构,如图6.1-3(c)所示,根据数据K值(K1,K2,…)决定执行A1,A2,…;循环结构中又有“当型循环结构”及“直到型循环结构”两种结构形式。当型循环结构,如图6.1-4(a)所示。先执行A操作,再判断P是否为“假”,若P为“假”,再执行A操作,直到P为“真”时为止;直到型循环结构,如图6.1-4(b)所示。当P条件成立(“真”)时,反复执行A操作,直到P为“假”时才停止循环。
图6.1-3 顺序结构、选择结构和多分支选择结构
图6.1-4 循环结构
由以上基本结构组成的程序可以处理任何复杂的问题,如把上述的基本结构连续组合起来构成的程序,使一个结构的出口联接下一个结构的入口点,也可以采用嵌套方式组成程序,如图6.1-5所示,这是一个顺序结构,由两个基本结构顺序组成,虚线框内是一个当型循环结构,可以用一个“B”表示,流程图画得越详细,下面的工作就越好做。
图6.1-5 嵌套式结构
一般是先画程序系统的总流程图,再画各功能模块的流程图。然后根据流程图中的各功能模块划分成若干个程序模块,对每一个程序模块进行描述,描述程序模块的输入、输出和处理功能;给出功能模块和程序模块数据出入和控制的方向,说明该功能的实现过程;确定模块内的数据结构,描述各程序模块接口信息,各程序模块间的接口包括参数的形式和传送方式,各层调用关系;组织数据信息的输入和输出,要确定输入哪些数据和输入的顺序,同时要根据计算机的设备情况和计算过程的需要,确定数据输入的方法,如键盘输入、文件输入等。根据使用要求及设备情况确定输出的数据方式及形式。
(4)编写程序
编写程序是将上述的要求转化为设计语言,在编写程序时,要求结构清晰,可读性好,可维护性强,易于修改,语句简明、直接了当。尽量利用现成的函数或子函数,输入、输出格式尽可能简洁统一。具体编写程序时,因使用设计语言的不同,要求也将会有所不同,此处不再多述。
(5)程序调试
一般来说,源程序的编辑只是研制工作的第一步,大量的研制工作将是进行程序的调试,通过不断的修改、完善,以达到正常工作,达到预定的功能要求。工作的次序是先对模块进行调试,然后再将各部分组装,以至整个程序的编译。
(6)程序系统的运行和维护
运行程序只是系统设计工作初步完成的标志,对调试的系统程序有正确的维护,保证在出现不正常情况后,能及时改正,迅速恢复正常。