基于ProEngineer的工艺数据库开发

更新时间:2024-06-21 05:25:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

基于ProEngineer的工艺数据库开发 第一章 绪论 目 录

第一章 绪 论 .......................................................... 1 1.1本课题研究开发的背景和相关研究工作现状 ............................. 1 1.1.1 研究开发的背景 .................................................. 1 1.1.2 相关研究工作的现状 .............................................. 3 1.2本课题研究、开发的主要任务和开发方案 ............................... 4 1.2.1 主要任务和具体要求 .............................................. 4 1.2.2 本课题研究开发的技术路线和开发方案 .............................. 5 第二章 CAD/CAPP/CAM系统集成及开发方法 ................................. 6 2.1 CAD/CAPP/CAM系统集成 .............................................. 6 2.1.1 CAD/CAPP/CAM系统集成的基本概念和构成 ............................ 6 2.1.2 CAD/CAPP/CAM系统集成的应用 ...................................... 7 2.2 CAD/CAPP/CAM系统集成的方法 ........................................ 8 2.3 CAD/CAPP/CAM系统开发方法 .......................................... 9 2.3.1 软件工程的概念 .................................................. 9 2.3.2 软件开发过程和方法 ............................................. 10 2.3.3 结构化软件分析与设计方法 ....................................... 11 第三章 开发平台与工具 ................................................ 13 3.1系统的开发平台 .................................................... 13 3.2 Pro/ToolKIT ...................................................... 14 3.4 数据库 ........................................................... 16 3.5 Access97 ......................................................... 17 3.6 编程语言及集成开发环境VC++6.0 .................................... 18

I

基于ProEngineer的工艺数据库开发 第一章 绪论 第四章 系统的设计与实现 ............................................. 20 4.1系统的分析 ........................................................ 20 4.1.1系统的功能 ...................................................... 20 4.1.2 系统的数据流图 ................................................. 20 4.2系统的设计 ........................................................ 25 4.3 系统的实现 ....................................................... 26 4.3.1 开发和运行环境 ................................................. 26 4.3.2 菜单设计 ....................................................... 29 4.3.3 对话框设计 ..................................................... 31 4.3.4 数据库设计 ..................................................... 33 4.3.5 系统的测试 ..................................................... 34 第五章 系统的运行 .................................................... 33 5.1系统的运行环境及使用方法 .......................................... 33 5.2 运行实例 ......................................................... 34 结 论 ................................................................ 37 结束语 ............................................... 错误!未定义书签。 参考文献 ............................................. 错误!未定义书签。 附录1 英文翻译原文及译文 附录2 源程序代码

II

基于ProEngineer的工艺数据库开发 第一章 绪论

第一章 绪 论

1.1本课题研究开发的背景和相关研究工作现状

1.1.1 研究开发的背景

随着计算机技术日益广泛深入的应用,特别是在机械、航空、电子等各个领域得到了广泛的应用,人们很快发现,各种计算机辅助技术采用各自独立的系统不能实现系统之间信息的自动传递和交换。例如CAD(Computer Aided Design,计算机辅助设计)系统设计的结果,不能直接为CAPP(Computer Aided Process Planning,计算机辅助工艺设计)系统接收,若进行工艺规程设计时还需要人工将CAD输出的图样、文档等信息转换成CAPP系统所需要的输入数据,这不但影响了效率的提高,而且在人工转换过程中难免会发生错误。只有当CAD系统生成的产品零件信息能自动转换成后续环节(如CAPP、CAM等)所需的输入信息,才是最经济的。为此,人们提出了CAD/CAPP/CAM集成的概念并致力于CAD、CAPP和CAM(Computer Aided Manufacturing,计算机辅助制造)系统之间工艺数据库的自动传递和转换的研究,以便将业已存在的和正在使用中的CAD、CAPP、CAM等独立系统集成起来。

CAD/CAPP/CAM系统集成涉及到产品的总体设计、工艺过程设计、数控加工、运动机构的模拟设计、有限元分析的前后置处理、工艺规程设计、数控加工、检验测量等。它涉及到计算机科学、计算数学、计算几何、计算机图形学、数据库技术、软件工程、仿真工程、人工智能等新兴学科领域。CAD/CAPP/CAM集成技术就是从设计到制造的整个工程应用计算机进行有关信息处理的技术。当CAD、CAPP、CAM结合在一起时,就把产品的设计、工艺路线的规划和制造过程变成了一个完整的集成系统,使许多专业技术工作实现了有效集成。

CAD/CAPP/CAM集成技术是跨计算机科学、信息技术与现代设计制造技术相结合的产物,是实现产品设计和制造自动化的关键技术,是当代先进的生产力,被公认为20世纪90年代的十大重要技术成就之一。在产品开发过程中,引入CAD/CAPP/CAM系统集成进行产品的设计、工程与结构分析、工艺规划,能大大地提高工作效率和产品的性能和质量,缩短产品的开发周期,增强产品的竞争力,对企业而言创造显著的效益。目前,在计算机网络和数据库系统的支持下,以CAD/CAPP/CAM为核心的多种集成系统的出现,使传统的生产模式发生了深刻的变革。

一个完备的CAD/CAPP/CAM集成系统的任务是能支持产品全生命周期(设计、制造、装配、检验、销售、维修等)各相关过程的生产活动。对各相对独立发展起来、有相互关联的各单项计算机辅助系统,一般称为CAX(CAD、CAE、CAPP、

1

基于ProEngineer的工艺数据库开发 第一章 绪论

NCP、MRP、……),进行有效的集成,是CAD/CAPP/CAM技术发展的必然要求[1]。这些系统的发展可以相对不平衡,但必须在并行工程思想的指导下实现CAPP与CAD、CAM等系统的全面集成,发挥CAPP在整个生产活动中的信息中枢和功能调节作用。这包括:与产品设计实现双向的信息交换与传送;与生产计划调度系统实现有效集成;与数控编程系统实现有效集成;与质量控制系统建立内在联系。

一个基于集成的产品数据库的CAD/CAPP/CAM集成系统如图1.1所示。

图1.1 集成化系统

统 CAD 用 CAPP 户 一 数 一 统 据 库 管 CAM 界 集成的产理 品数据 统 DBMS 系 面 基于系统集成的产品数据库是可供共享的重要的信息资源。但在非集成的各单项技术应用中,工艺数据库系统一般是孤立分离的,数据模式的定义也不统一,与CAD/CAPP/CAM中大量的信息集成的需求和特点不同,且在各子系统中,信息集成有明显差别。因此建立基于系统集成的产品数据库,存储零件的特征信息、工艺信息、加工工艺参数等信息,实现在CAD/CAPP/CAM集成系统中对产品数据库的访问,并在集成产品数据库之上,结合产品的设计、工艺路线的规划、工艺过程设计和制造过程为一个完整的系统,这样对系统实现设计、制造到管理,产品生命周期的全过程的无缝集成,各独立模块实现数据连通,调用连通,信息共享,能大大缩短设计周期,提高整个流程的工作效率和工作质量。

随着商品化的CAD/CAM软件的发展和广泛应用,考虑CAPP自身的特点和要求,基于特征,基于CAD/CAM软件平台进行二次开发已成为了一种简单、高效的CAD/CAPP/CAM集成系统开发的趋势。利用诸如UNIGRAPHICS、Pro/Engineer等基于特征的CAD/CAM软件平台,在充分利用已有软件功能的有利条件下,开发CAPP系统并与之集成,能充分利用成熟的CAD、CAM技术,大大缩短开发周期,也使已有的软、硬件得以充分利用以节约企业的开支。

2

基于ProEngineer的工艺数据库开发 第一章 绪论

无论使用何种集成方法或进行开发,CAD/CAPP/CAM集成系统中,工艺数据库都是必不可少的。

1.1.2 相关研究工作的现状

目前主流的CAD/CAM软件主要来自国外公司,国内的相关基础工作相对落后于发达国家,因此在CAD/CAPP/CAM系统集成的研究与开发这方面工作进行得相对较少,总体水平低、技术落后于国外发达国家。但也有一些具有一定先进性的研究。如我国在20世纪80年代初期开始了CAD/CAPP/CAM系统集成的工艺数据库理论研究和系统开发工作。1986 年3月,我国制定并启动863 计划,并在后续的863/CIMS主题计划中设立了多项与CAD/CAPP/CAM系统集成相关的关键技术攻关项目或子项目、目标产品发展项目以及软件重大专项,同时大力推广应用示范工程。1988年5月,在南京航空航天大学召开了国内第一次CAD/CAPP/CAM系统集成的专题研讨会,受到广大科研院所和制造企业的普遍关注,引发了国内该系统集成的研究热潮[2]。

台湾地区对Pro/Engineer的二次开发进行的比较成熟,在上世纪八十年代,曾引领大陆的CAD/CAM发展方向。

国外在CAD/CAPP/CAM系统集成这方面的研究开发工作进行的比较早。CAD/CAPP/CAM系统集成的研究在国际上始于20世纪60年代后期,其早期意图就是建立包括工艺卡片生成、工艺内容存储及工艺规程检索在内的计算机辅助系统。实现各系统内信息资源的共享。

焦作工学院的侯守明在《中小企业CAD/CAPP/PDM集成系统研究与开发》一文中分析了中小型企业在应用CAD、CAPP进行产品开发以后出现的新需求,结合产品数据管理系统的发展趋势,提出以产品结构为中心的设计、管理一体化解决方法,开发基于Pro/Engineer和数据库软件的CAD、CAPP集成系统。

天津大学的冯丽艳在《面向中小制造企业的CAD/CAPP集成系统》一文中谈到,近年来,我国很多企业实现了CAD(计算机辅助设计)、CAPP(计算机辅助工艺设计),但多数是各自独立开发,不能实现CAD、CAPP之间信息的自动传递和交换。CAPP系统的信息输入要花费大量的时间, 容易出错, 而且生成不恰当的工艺过程。

武汉水利电力大学的吴晓光在《CAD/CAPP 集成系统的研究与开发》一文中讨论了实现CAD/CAPP集成系统的基本结构与功能,以及实现CAD/CAPP集成数据的传递方法。

广东工业大学的陶建华在《基于特征和参数化的

CAD/CAPP集成》中分析了

CAPP在实现过程中所遇到的难点,重点分析了CAD/CAPP集成环节中遇到的困难。提出了用全参数化方式实现CAD/CAPP集成的方法。

吴晓光在《基于VC++类库的CAD/CAPP集成系统的研究与实践》一文中采用

3

基于ProEngineer的工艺数据库开发 第一章 绪论

特征拼装及特征单元的参数化设计方法,在以VisualC++类库(Microsoft Foundation Class MFC类)为数据存储、交换与管理的基础上,成功地实现了CAD/CAPP集成数据的传递与共享。

基于特征的,基于CAD/CAM软件平台进行的工艺数据库的开发,已正被许多中小企业所接受,企业在自有各计算机辅助系统中实现各系统之间信息的自动传递和交换。正由于这一发展所给企业带来的效益,促使企业加大对CAD/CAM软件平台的开发,对CAD/CAPP/CAM集成系统的开发,以及对CAD/CAPP/CAM集成系统的工艺数据库的开发。

1. 2本课题研究、开发的主要任务和开发方案

1.2.1 主要任务和具体要求

任务书所给的要求如下:

研究了解CAPP技术的概念内涵、主要特征、关键技术; 研究了解CAD/CAPP集成系统的组成、主要特征、关键技术; 研究了解主流CAD/CAM软件的功能、特点; 研究了解工艺数据库的要求、构成、功能、使用; 研究了解数据库设计的原则、要求、设计方法、步骤;

研究掌握基本的Pro/Engineer二次开发技术,比较、选择开发工具及数据库系统; 运用结构化软件分析与设计方法对系统进行分析与设计; 系统体系结构、主要模块的实现; 系统测试,给出运行实例;

根据任务书的要求,首先要对CAD/CAPP/CAM集成系统的开发背景和相关研究工作现状进行了解,对本课题研究开发的意义和作用进行了解,运用结构化软件分析和设计方法对集成系统工艺数据库进行系统分析和总体结构设计。了解Pro/E的二次开发工具,掌握Pro/E的二次开发工具Pro/TOOLKIT的使用。了解数据库技术及其应用。在此基础上,进行界面的设计,建立用户界面,建立工艺数据库并实现对工艺数据库的管理,实现数据库与应用程序的接口,从而完成在Pro/E系统下符合CAD/CAPP/CAM集成系统要求和使用要求的工艺数据库的实现。最终,该系统实现常用机床参数查询功能、常用刀具参数查询功能和加工余量的参数查询功能。提供给用户弹出式对话框,可以方便地在Pro/E的环境下访问工艺数据库。最后对系统进行测试,并给出运行实例。

4

基于ProEngineer的工艺数据库开发 第一章 绪论

1.2.2 本课题研究开发的技术路线和开发方案

CAD/CAPP/CAM应用软件开发是一项高智力、高难度的工程项目,为了保证所开发软件的质量,应采用科学有效的软件工程方法进行开发。

Pro/E本身就是一个成熟的CAD/CAM系统,为Pro/E开发工艺数据库是利用Pro/E开发CAD/CAPP/CAM集成系统工作的一部分,所以采用的技术路线主要分为三大块:开发用户界面和应用程序接口;开发工艺数据库模块;实现工艺数据库的访问和管理。将设计生产中使用的工艺参数集成到ProEngineer Wild fire2.0平台中,让用户在开发设计过程中,在系统平台下可以完成对工艺数据库的访问和调用。

要在Pro/E中进行工艺数据库开发,必须存在用户接口程序。而Pro/E本身就为开发者提供了Pro/Toolkit,因此进行工艺数据库开发成为可能。Pro/Toolkit提供了大量的库函数,可用来实现各种不同的Pro/E操作。而且自Pro/E2001之后,Pro/Toolkit还提供用户开发界面的编程接口。利用Pro/Toolkit可以开发出具有Pro/Toolkit风格的对话框,能向用户提供人机交互界面,进行简单的人机交互[3]。Pro/Toolkit可通过VC++进行编译,也可在VC++中进行编码。因此,系统的程序在VC++中编制。Visual C++包含了迄今为止功能最强大的基于Windows的应用框架,Microsoft基本类库是它的重要组成部分,构成了应用框架的核心。其他一些组成元素,包括AppWizard、App Studio、Visual工作平台、编译器和连接器,为用户构造应用平台提供了必要工具。同时利用VC++提供的MFC对话框类,可实现界面的可视化开发,创建用户对话框[4]。应用程序可实现Pro/Toolkit和MFC类的集成,通过编译可生成一个.dll文件实现与Pro/E系统的动态链接。目前,常用的数据库管理系统有Visual FoxPro、Access、Oracle、Sybase、MS SQL server等。用这些系统来开发专门的数据库应用系统是适宜的,但用来开发CAD系统就难以胜任,需要通过编写接口程序来解决其与CAD系统的集成问题。目前CAD及其数据库系统开发的最佳途径是在高级语言中嵌入数据库功能,如Visual C++6.0在其MFC类库中嵌入了ODBC类和DAO类,从而使编程语言不但具有强大的CAD应用程序的开发功能,而且具备了强大的数据库系统的开发及管理功能。系统采用Access开发工艺数据库作为Pro/E的外部数据库。由于采用ODBC方式较为复杂,而VC++中内嵌有直接驱动Access数据库的引擎技术。因此本系统主要采用VC++6.0的DAO类进行检索。数据库的访问采用直接调用方式,因此比较简单。

5

基于ProEngineer的工艺数据库开发 第二章 CAD/CAPP/CAM系统集成及开发方法

第二章 CAD/CAPP/CAM系统集成及开发方法

2.1 CAD/CAPP/CAM系统集成

2.1.1 CAD/CAPP/CAM系统集成的基本概念和构成

一般认为,CAD/CAPP/CAM系统集成就是把各种功能不同的软件系统如CAD、CAPP、NCP(Number Control Programming,计算机辅助数控编程)系统按不同的用途有机地结合起来,用统一的执行控制程序组织各种信息的提取、共享和处理,保证系统内信息流畅通,并协调各子系统有效地运行。从信息集成的角度上看,CAD、CAPP、CAM之间信息的提取、交换、共享和处理的集成就构成了一个基本的一体化的CAD/CAPP/CAM系统。如图2.1。

计算机辅助设计、计算机辅助工艺设计和计算机辅助制造技术是产品设计和制造工程技术人员在计算机系统的辅助之下,合理有效地进行产品设计和制造的一项新技术。CAD/CAPP/CAM是传统设计与制造技术与现代计算机技术的有机结合。

CAD/CAPP/CAM系统的硬件由计算机及外围设备组成,主要包括:主机、外存储器、输入设备、输出设备、网络通讯设备及生产设备等。具体如图2.2所示:

图2.1 CAD/CAPP/CAM信息集成的要求

新产品开发 产品要求 性能规定 CAD 零件图、装配图 产品设计文零件信息文 CAPP 工艺路线文工艺内容文毛坯图、工序图 CAM NC加工 NC监测 程序 设计知识 数据库 软件 计算机硬件系统 工数艺据知库识 图形系统 计算机硬件系统 加数工据设库备 计算软机件硬件系统 CADCAD 6

基于ProEngineer的工艺数据库开发 第二章 CAD/CAPP/CAM系统集成及开发方法

外存储器 硬盘,软盘,光盘 输入设备 键盘,鼠标 数字化仪 … 计算机主机 中央处理器 内存储器 输出设备 显示器 打印机 绘图机 … 网络通信设备 网卡 传输介质 Modem … 生产设备 数控机床 … 图2.2 CAD/CAPP/CAM系统硬件的组成

2.1.2 CAD/CAPP/CAM系统集成的应用

CAD/CAPP/CAM系统集成的关键是通过有效的手段和方法,解决产品设计和制造信息的共享。

CAD/CAPP/CAM集成技术它主要用于产品的总体设计、外型设计、优化设计、运动结构的模拟设计、有限元分析的前后置处理、工艺过程设计、数控加工、检验测量等环节。他涉及到计算机科学、计算数学、计算几何、计算机图形学、数据库技术、软件工程、仿真工程、人工智能等新兴学科领域。CAD/CAPP/CAM集成技术就是从设计到制造的整个过程应用计算机进行有关信息处理的技术。当CAD、CAPP、CAM结合在一起时,就把产品的设计、工艺路线的规划和制造过程变成了一个完整的集成系统,使许多专业技术工作实现了自动化。

企业中的CAD/CAM系统及其计算机硬件一般分布在企业的各个部门,并通过网络联系在一起。由于各部门所采用的应用软件、操作系统及硬件平台不同,产生大量的分布式异构数据。同时企业中对这些数据缺乏有效的管理和控制机制,造成数据十分混乱。如何使数据共享、数据交换畅通地进行、完备地表达信息等一系列的问题,是CAD/CAM集成技术中要解决的主要问题。

要使企业通过CAD/CAPP/CAM技术真正缩短生产周期、降低成本、提高产品

7

基于ProEngineer的工艺数据库开发 第二章 CAD/CAPP/CAM系统集成及开发方法

设计制造水平,使企业真正应用到完整的CAD/CAPP/CAM集成系统,企业必须要通过在高级程序设计语言、数据库管理系统和CAD/CAPP/CAM支撑系统的基础上进行工艺数据库开发,满足具体产品设计制造要求的CAD/CAPP/CAM系统。如本课题研究的基于Pro/E的CAD/CAPP/CAM集成系统的工艺数据库的开发工作,正是体现了这一点。

2.2 CAD/CAPP/CAM系统集成的方法

由于现行的CAD/CAPP/CAM长期处于独立发展的状态,它们只能在各自的活动领域中发挥部分或全部功能。在CAD/CAPP/CAM集成化中,产品数据格式必须标准化,相互之间的数据具有可交互性。在CAD环境下重要的是支持图形数据的表示。在一般图形系统中,图形以原语形式表示,为非结构化数据,即无法以表格形式表示。在现行的大多数CAD系统中,图形数据的保存不是建立在数据库方法之上,而是采用专用的文件格式表示;CAM系统所生成NC代码只能以文件形式表示。从信息集成的观点来看,如果要采用同一机制实现共享数据的管理,难点在CAD/CAPP/CAM系统中,它们之间如何集成、如何共享。

这就意味着当产品的设计完毕时,所有与工艺过程设计和计划进度相关的操作才会发生。在设计-制造链中,设计和编制计划的顺序是与传统的操作顺序模式相一致的,见图2.3所示[5]。

市场设计/结构 生产准备 测试 生产

错误,结构变换

图2.3 制造过程的顺序图 信息流程

CAD/CAPP/CAM系统集成的方法主要有如下四种: 1. 通过专用数据接口程序交换产品信息的集成方式

采用这种类型连接时,开发者应对CAD、CAPP与CAM系统都非常熟悉,且所开发的专用数据接口无通用性,对不同的系统要开发不同的接口。当系统发生变化时,接口程序也要随之进行修改。

这种类型下,系统相互间的数据交换需要存在于两个系统之间。其特点是原理简单,转换接口程序易于实现,运行效率较高。

8

基于ProEngineer的工艺数据库开发 第二章 CAD/CAPP/CAM系统集成及开发方法

2. 通过标准数据格式文件交换产品信息的集成方式

采用该类型时,CAD与CAM系统是借助于一个标准数据格式文件来进行数据的间接交换。这种继承方式,每个子系统治只与标准格式文件打交道,无需知道别的细节,降低了接口维护难度,为系统的开发者和使用者提供了较大的方便。

3. 通过统一的产品模型交换产品信息的集成方式

在这种类型中,集成产品模型是实现集成的核心,同一工程数据库是实现集成的基础。各功能模块通过公共数据库及统一的数据库管理系统实现数据的交换与共享,从而避免了数据文件格式的转化,消除了数据冗余,保证了数据一致性、安全性和可靠性大大地提高了系统的集成性。

4. 基于产品数据管理的集成方式

基于产品数据管理的集成方式可分为基于PDM的CAD/CAM集成系统信息流动过程、基于PDM的CAD/CAM集成系统体系结构和基于PDM的CAD/CAM系统集成模式三种。PDM系统提供了一整套结构化的面向产品对象的公共服务集合环境,构成了集成化的基础,实现了以产品对象为核心的信息集成。

随着商品化的CAD/CAM软件的发展和广泛应用,一般中小企业对信息化设计、制造技术应用的要求也越来越普遍。他们在应用CAD、CAM技术的基础上,也提出了CAD/CAPP/CAM集成的要求。另一方面,特征技术的发展,为产品信息描述的统一提供了一种比较理想的方法。从而使基于特征的CAPP系统,无疑已成为CAPP发展的一个方向。所以,基于特征,基于CAD/CAM软件平台进行二次开发已成为了一种简单、高效的CAD/CAPP/CAM集成系统开发的趋势。利用诸如UNIGRAPHICS、Pro/Engineer等基于特征的CAD/CAM软件平台,在充分利用已有软件功能的有利条件下,开发CAPP系统并与之集成,能充分利用成熟的CAD、CAM技术,大大缩短开发周期,也使已有的软、硬件得以充分利用以节约企业的开支。

2.3 CAD/CAPP/CAM系统开发方法

2.3.1 软件工程的概念

软件开发在20世纪50-60年代是用手工业方式进行的,软件开发是个体或小组的思维行为,除了程序清单外,一般没有其他文档资料。这种作为“软件作坊”的软件开发方式常常使得软件开发任务延迟,软件质量不可靠,开发完成的软件系统在使用过程中经常发生错误甚至无法维护,即产生了所谓的“软件危机”。

1968年北大西洋公约组织的计算机科学家在德国召开高级会议讨论软件危机问题时,正式提出了“软件危机”这一术语,并指出它是解决软件危机的工程科学。

在软件工程中人们设法引进机械工程、建筑工程中的一些技术来指导软件的研制开发,像处理其他工程那样来处理软件开发研制的全过程,逐渐形成了一门新学

9

基于ProEngineer的工艺数据库开发 第二章 CAD/CAPP/CAM系统集成及开发方法

科——软件工程。

软件工程的定义是:把经过实践考验而证明正确的管理技术和当前能够得到的最好的技术方法接合起来,采用工程的概念、原理、技术和方法来进行软件的开发与维护。

在软件工程学指导下的软件开发,类似于机械产品的研制,要经过分析、设计、编程、调试和运行五个阶段,每个阶段都有明确的任务,并产生一定的文字资料送交下一阶段。

2.3.2 软件开发过程和方法

软件开发的目标就是在规定的投资和时间限制内,开发出符合用户需求的高质量软件。

软件开发过程模型主要有两类:瀑布模型(全生命周期法)和渐增模型(快速原型法)。瀑布型开发适合于在软件需求比较明确、开发技术比较成熟、工程管理比较严格的场合下使用;渐增型开发方法允许从部分需求定义出发,先建立一个不完全的系统,通过测试运行整个系统取得经验和反馈,加深对软件需求的理解,进一步使系统扩充和完善。

软件开发的主要步骤: 1.软件系统的需求分析

软件系统的需求分析包括软件功能、可靠性、安全保密、成本消耗、开发进度、资源使用和用户接口等许多方面。

2.软件的设计

设计阶段的任务是将分析阶段获得的系统说明书转化为具体的计算机可实现的系统。本阶段一般分为两步,即总体设计和详细设计。

3.程序编制

程序编制阶段的任务是用高级语言编写每个模块的程序,要求结构良好,层次分明,逻辑上正确又易于阅读和理解。

4.软件测试

通过调试排除故障,保证系统正常运行。 5.软件系统的运行和维护

软件的维护是将系统交付用户使用,通过实际运行环境的检验,对不适应的部分进行修改和扩充。

软件工程发展的30多年来,人们在实际工作中提出了许多系统化的设计方法。从20世纪六七十年代的结构化系统设计方法,到上世纪80年代初期的快速原型方法,以及上世纪90年代兴起的面向对象方法,虽然各自有不同的特点、不同的背景,但都得到了广泛的、成功的应用。

10

基于ProEngineer的工艺数据库开发 第二章 CAD/CAPP/CAM系统集成及开发方法

结构化的设计方法是软件工程领域的经典方法,为软件工程的产生与兴起发挥里重要的作用,是目前最成熟的,也是应用得最多、最广的方法。许多方法都是源于对它的改进或扩充,如快速原型方法。面向对象的系统设计方法在20世纪90年代开始逐渐走向成熟,表现了蓬勃的生命力,为软件工程的发展注入了新的活力。毫无疑问,面向对象方法将是未来最有发展前途的软件工程技术。

2.3.3 结构化软件分析与设计方法

本文主要采用结构化软件分析及设计方法进行系统的分析与设计。 1. 结构化软件分析方法

结构化软件分析方法,又称SA方法,它的基本思想是采用“分解”和“抽象”作为基本手段,对系统由顶向下逐层分解,直到能清楚地被理解和表达,从而有效地解决了系统的复杂性问题。如图2.4中的复杂系统X,可按一定规则分解为1、2、3、4几个子系统;子系统1和2仍然很复杂,可将他们再分解成1.1、1.2、1.3和2.1、2.2、2.3、2.4等,如此分解下去,直到子系统足够简单,能清楚地被理解和表达为止。

图2.4 系统的分解

由结构化分析得到的无论是当前系统的模型,还是目标系统的模型均采用数据流图的形式表达。使用结构化分析方法分析的结果是一套分层数据流图、一本数据字典、一组加工小说明及其他补充材料组成的系统需求分析说明书。

2. 结构化软件设计方法

结构化设计方法,又称SD方法,是软件设计中有代表性的设计方法之一,也是使用最广的方法之一。它的基本思路是:建立一个具有良好结构的软件系统,把该软件系统要完成的任务分成若干个子任务,使每个任务对应一个程序模块。即程序结构与任务结构是对应的。而每个程序模块是相对独立的,可以像积木一样按照

11

基于ProEngineer的工艺数据库开发 第二章 CAD/CAPP/CAM系统集成及开发方法

一定的方式将软件系统组织起来。一般来说,一个模块应有一个模块名,并具有明确的功能,有内部使用的数据和与其他模块联系的数据,可被上级模块调用。

用SD方法设计的软件系统,每个模块均可独立地被理解、编写、测试、排错和修改,从而不仅使复杂的软件设计工作得以简化,减轻了开发费用,而且还有效地防止了错误在各模块间的扩散,提高了系统的质量。

按SD方法划分模块时,应体现以下两个原则:各个模块功能单一,相对独立。模块间联系小,模块内联系大。

通常模块间的联系反映在联系方式、共用信息类型和共用信息数量等方面。例如模块间共用信息数量越多,则联系越大。

模块内部的联系,一般根据块内成分联系紧密的程度分为五类,按联系紧松依次分为功能性、顺利性、通信性、瞬间性和偶然性。由于功能性模块具有很清楚的界面,故与其他模块间的联系很少。

SD方法的目标是使模块具有功能性的块间联系。一般只需将程序结构作适当修改,就可使非功能性模块改进为功能性模块。

12

基于ProEngineer的工艺数据库开发 第三章 开发平台与工具

第三章 开发平台与工具

3.1系统的开发平台

在当前的设计生产领域,有着很多的优秀的软件。目前,在国外一些主流软件中,如UG(Unigraphics)、SolidWorks、Pro/Engineer、CATIA等都是比较熟悉的。国内流行的CAD/CAM主流支撑软件有:

1. UG

在UG中,优越的参数化和变量化技术与传统的实体、线框和表面功能结合在一起,这一结合被实践证明是强有力的,并被大多数CAD/CAPP/CAM软件厂商所采用,但软件集成框架功能较弱,数据管理尚待进一步提高。

2. SOLIDEDGE

SOLIDEDGE与MicrosoftOffice兼容,与Windows的OLE技术兼容,这使得设计师们在使用CAD系统时,能够进行Windows下字处理、电子报表、数据库操作等。

3. AutoCAD

AutoCAD是当今最流行的二维绘图软件,它在二维绘图领域拥有广泛的用户群。具有较强的绘图、编辑、尺寸标注以及方便用户进行二次开发功能,但其在三位造型功能较弱。

4. Pro/E

Pro/E是美国PTC公式研制的一套由设计到制造的机械自动化软件,它是当今世界上应用最为广泛的高档CAD软件之一,也是当今世界非常流行的使用参数化的三维特征造型技术的CAD/CAPP/CAM集成的软件。

在对当前主流的CAD/CAM软件做了了解后,对比各种软件的优缺点,在本课题的中,本人采用Pro/Engineer作为开发平台,对CAD/CAPP/CAM集成系统的工艺数据库进行开发研究。

Pro/Engineer系统是美国参数技术公司(ParametricTechnologyCorporation,简称PTC)的产品。Pro/Engineer是一套由设计至生产的机械自动化软件,是新一代的产品造型系统,是一个参数化、基于特征的实体造型系统,并且具有单一数据库的特点[6]。 首先, 参数化设计和特征功能,Pro/Engineer是采用参数化设计的、基于特征的实体模型化系统,工程设计人员采用具有智能特性的基于特征的功能去生成模型,如腔、壳、倒角及圆角,您可以随意勾画草图,轻易改变模型。这一功能特性给工程设计者提供了在设计上从未有过的简易和灵活。 其次,单一数据库,Pro/Engineer是建立在统一基层上的数据库上,不象一些传统的CAD/CAPP/CAM系统建立在多

13

基于ProEngineer的工艺数据库开发 第三章 开发平台与工具

个数据库上。所谓单一数据库,就是工程中的资料全部来自一个库,使得每一个独立用户在为一件产品造型而工作,不管他是哪一个部门的。换言之,在整个设计过程的任何一处发生改动,亦可以前后反应在整个设计过程的相关环节上。例如,一旦工程详图有改变,NC(Numerical Control,数字控制)工具路径也会自动更新;组装工程图如有任何变动,也完全同样反应在整个三维模型上。这种独特的数据结构与工程设计的完整的结合,使得设计更优化,成品质量更高,产品能更好地推向市场,经济性价比也高。

Pro/Engineer拥有强大的设计造型等功能: 首先是驱动功能; 其次是参数化功能;

再其次,通过零件的特征值之间,载荷/边界条件与特征参数之间的关系来进行设计;

然后,支持大型、复杂组合件的设计;

最后,贯穿所有应用的完全相关性(任何一个地方的变动都将引起与之有关的每个地方变动)。其它辅助模块将进一步提高扩展 Pro/ENGINEER的基本功能。

同时,在这个软件中,它自带有二次开发工具Pro/Toolkit。通过这个二次开发工具,用户可以开发出适合本身需求的应用程序。

3.2 Pro/ToolKIT

在Pro/ENGINEER17版本及该版本以前,PTC公司提供的开发工具是Pro/DEVELOP,从Pro/ENGINEER18版本起,Pro/ENGINEER系统的开发环境采用Pro/Toolkit。Pro/Toolkit支持在Windows2000/NT/XP操作系统中使用C和C++语言设计程序,采用Microsoft Visual C++6.0作为编译器和连接器,并可以在Microsoft Visual C++6.0的集成环境下完成程序的设计、调试和编译。

PRO/TOOLKIT采用面向对象的程序设计方法(Object-Oriented Programming) 。在PRO/TOOLKIT和应用程序之间主要通过特定的数据结构来传递信息,对应用程序来说这种数据结构并不是直接访问的,而只能通过PRO/TOOLKIT提供的函数来访问。在设计PRO/TOOLKIT程序时,要涉及到大量的由PRO/TOOLKIT函数库提供的C函数,正确理解和使用这些函数是非常重要的。

1. 对象和动作

对象(Object)和动作(Action)是PRO/TOOLKIT中最基本的概念。

Pro/Toolkit的对象实质是一种类型为结构体的数据,结构体中的成员描述了该对象的属性。例如,名为ProFeature的特征对象的结构体定义为:

typedef struct pro_model_item

14

基于ProEngineer的工艺数据库开发 第三章 开发平台与工具

{

ProType type; int id;

ProMdl owner; } ProFeature;

结构体中的type、id和owner成员分别描述了该对象的类型、标识号和上级对象。

2. 对象句柄

在Pro/Toolkit中每一个对象对应于一个结构体,定义该结构体类型的一个具体的结构体变量称为对象句柄,如:ProPart表示零件对象,用下面的形式声明:

ProPart NewPart;

NewPart就是一个对象句柄。由于ProPart是一个指向结构体的指针,其定义为: typedef struct sld_part *ProPart;

因此,NewPart也是一个指向结构体的指针。实际上Pro/Toolkit中对象句柄也可以完全理解为对象指针。

3. Pro/TOOLKIT应用程序的相关函数

User_initializ()是Pro/TOOLKIT应用程序的初始化函数,主要用来对同步模式(synchronous-mode)的Pro/TOOLKIT应用程序进行初始化。

User_terminate()函数在Pro/ENGINEER终止同步返回PRO——TK——ERROR表示初始化成功。(如退出Pro/ENGINEER将终止应用程序的运行),该函数由用户定义,其中可以不执行任何动作。

应用程序的主体部分主要由自定义函数组成,可以在User_initializ()函数中直接调用,或通过User_initializ()函数定义的菜单调用。前者将在载入应用程序的初始化时一次性调用,后者将通过选择用户程序添加在Pro/ENGINEER系统中的菜单项调用。第一种方式虽然简单,但没有多少使用价值。第二种方式与Pro/ENGINEER系统本身的菜单命令用法相同,是同步模式的Pro/TOOLKIT应用程序主要运行方式。为便于理解,介绍两个最基本的函数。

第一个为ProCmdActionAdd()函数

该函数的功能是设置Pro/ENGINEER系统菜单单项的动作,即用户激活Pro/ENGINEER菜单命令时执行的动作函数,其实质是设置菜单项与动作相关联。

第二个为ProMenubarmenuPushbuttonAdd()函数

该函数的功能是在Pro/ENGINEER菜单中添加菜单按钮(push button)。 在CAD/CAPP/CAM集成系统中往往需要通用的数据库接口。然而直到20版的Pro/TOOLKIT仍没有提供数据库编程接口。另外,弹出式对话框是目前最先进最流行的一种人机交互界面,能向用户提供图形与文字共存的可视化环境,使操作更为

15

基于ProEngineer的工艺数据库开发 第三章 开发平台与工具

自然、简便和快速,但Pro/TOOLKIT提供的下拉式菜单(包括菜单栏标题及其菜单项)和对话框开发函数使用复杂,并且所开发的对话框采用unix风格。

3.4 数据库

CAD/CAPP/CAM集成系统中的工艺参数需要进行存储、检索、编辑和维护,因此需要在当前的众多数据库中进行比较选择,选择一种合适的来实现对本系统数据的管理。

目前主流的数据库系统主要有面向大型数据库的:oracl、SQL server和面向小型数据库的:Access 97、MySQL、BD2等。而Access 97是一种桌面数据库,比较适合数据量较少的应用,特别在应用处理少量数据和单机访问的数据库上运行性能较高。SQL Server是基于服务器端的中型数据库,适合大容量数据的应用,在处理海量数据的效率、后台开发的灵活性和可扩展性等方面强大。但其语句结构较烦琐,且一般用户无法直接对SQL SERVER进行远程管理、空间租用的成本比ACCESS稍高。因此结合本课题开发数据库特点,数据库类型比较小且属于单机访问系统,用Access数据库比较合适。

下表3.1对三种常见的数据访问接口ADO、DAO和Jet进行比较:

表3.1 数据访问接口

数据访问功 能 及 含 义 接口 Active数据对象(Active Data Objects)。ADO实际是一种提供访问各种数据类型的连接机制。ADO设计为一种极简单的格式,通过ODBC的方ADO 法同数据库接口。可以使用任何一种ODBC数据源,即不止适合于SQL Server、Oracle、Access等数据库应用程序,也适合于Excel表格、文本文件、图形文件和无格式的数据文件。ADO是基于OLE-DB之上的技术,因此ADO通过其内部的属性和方法提供统一的数据访问接口方法[7]。 数据访问对象(Data Access Objects)。是一种面向对象的界面接口。通过DAO/Jet功能可以访问ISAM数据库,使用DAO/ ODBC Direct功能可以实现远程RDO功能。使用DAO的程序编码非常简单,DAO提供丰富的DAO 游标(Cursor)类型的结果集和非游标(Cursor-Less)类型的结果集,同DDL(数据描述语言)的功能很类似。DAO模型是设计关系数据库系统结构的对象类的集合。它们提供了完成管理这样一个系统所需的全部操作的属性和方法,包括创建数据库,定义表、字段和索引,建立表间的16

基于ProEngineer的工艺数据库开发 第三章 开发平台与工具

关系,定位和查询数据库等工具。 数据连接性引擎技术(Joint Engine Technology)。是一种基于工作站通过Jet DAO的数据库访问机制。虽然可以通过微软Access提供的ODBC驱动程序访问Jet数据库,但使用这些驱动程序在功能上有所限制。Jet机制有自己的查询和结果集处理功能,并可对同种或异种数据源作查询处理。

综合上述数据访问接口的特点和本系统的数据开发工作,选定DAO类进行开发,数据库的访问采用直接调用方式,从而比较简单。

3.5 Access97

本系统采用Access97作为数据库开发软件。用Access97开发的数据库与程序的接口问题较为简单,采用直接调用方式。数据库开发主要是编辑数据库表格。根据本系统的模块划分情况,需针对不同条件制作多个表格。数据库共包括21个数据表格。Microsoft Access 97 数据库系统正是符合这样的要求,在Access97系统中建立数据库,可以包含多个表。并且,它具有操作简单,引用方便等诸多优点。

在与VC接口上也不存在技术问题。通过VC应用Microsoft Access 97 数据库,可以直接将工艺数据库中的工艺参数赋值给用户输出面板中。

Access97是一种关系型数据库,关系型数据库由一系列表组成,表又由一系列行和列组成,每一行是一个纪录,每一列是一个字段,每个字段有一个字段名,字段名在一个表中不能重复。表与表之间可以建立关系(或称关联、连接),以便查询相关联的信息。Access97数据库以文件形式保存,文件的扩展名是MDB。

Access97数据库由六种对象组成,它们是表、查询、窗口、报表、宏和模块。 表(Table):表是数据库的基本对象,是创建其他5种对象的基础。表由记录组成,记录由字段组成,表用来存贮数据库的数据,故又称数据表。

查询(Query):查询可以按索引快速查找到需要的记录,按要求筛选记录并能连接若干个表的字段组成新表。

窗口(Form):窗口提供了一种方便的浏览、输入及更改数据的窗口。还可以创建子窗口显示相关联的表的内容。窗口也称表单。

报表(Report):报表的功能是将数据库中的数据分类汇总,然后打印出来,以便分析。

宏(Macro):宏相当于DOS中的批处理,用来自动执行一系列操作。Access97列出了一些常用的操作供用户选择,使用起来非常方便。

模块(Module):模块的功能与宏类似,但它定义的操作比宏更精细和复杂,用户可以根据自己的需要编写程序。

17

基于ProEngineer的工艺数据库开发 第三章 开发平台与工具

3.6 编程语言及集成开发环境VC++6.0

程序设计语言是开发应用软件的基本工具,程序设计语言繁多,但总的可以分为三类:机器语言、汇编语言和高级语言。

在CAD/CAPP/CAM集成系统中,可采用多种程序设计语言。目前,CAD/CAPP/CAM系统中应用较多的是高级语言,如Visual Basic、Visual C++等。从功能角度划分,高级语言又可分为:程序设计语言、数据库语言、仿真语言和人工智能语言。从软件运行环境分类,常可分为两类:D0S环境和Windows环境。

DOS下的编程软件主要有:BASIC、FORTRAN、FOXBASE、FOXPRO、FOR、DOS、C、C++、OOBbE、PASCAL、LOGO、LISP、PROLOG等等。这些语言尽管版本逐步升级,但都是从传统的结构化编程角度发展起来的,他们的共同特点是:软件体积小,硬件要求不高,编制小程序比较容易,编制大程序比较困难等。

Windows下的编程软件主要有: isual Basic(VB)、VisualC/C++(VC)、Visua1 fox、Pro(WP)、Power Builder(PB)、Delphi等等。其特点是:硬件、软件要求都比较高,但都是可视化的编程环境,提高了界面设计能力。

下表3.2对几种主流的程序设计语言进行其优缺点比较:

表3.2 程序设计语言特点

语言 C/C++ 特点 它通用性好、易于移植、功能强、使用灵活,程序代码运行速度快、功能强大,几乎可以满足Windows程度设计的一切需要。同时其提供的可视化程序工具和内含的事件驱动程序设计,能大大减少传统windows程序设计的繁琐和复杂,极大地提高了程序开发效率。基于Windows平台的很多软件都是采用C/C++语言。正成为工程应用中的主流设计语言 Fortran Pascal Basic 很接近于人们的自然用语和数学公式,是为科学计算工作者而设计的,应用历史最长,是工程技术人员最熟悉的一种语言,但语言兼容性问题很差,语言标准化性能很低。 结构化程度高,数据类型丰富,数据结构灵活,非常适合于个人计算机。但不支持多重继承、模板、操作符重载、内联函数定义、预处理、宏、全局静态类变量、嵌套类定义等。 它是初学者的人门语言,简单易学、命令少、结构简单,很容易使初学者掌握传统的程序设计方法。虽然经历了QBaslc、Quick Basic、Ture Basic等各种版本,但仍处于人门语言的地位。功能不强大,没有完整的面向对象特性,因此编写大型程序很困难,所18

基于ProEngineer的工艺数据库开发 第三章 开发平台与工具

以一般用于写小程序。 Lisp 开发周期较短,函数型表处理语言,适合逻辑推理和符号处理,多用于人工智能研究开发。功能单一且综合处理能力差;程序运行速度慢,软件质量不高;不适合大规模开发;开发环境集成度低;缺乏较好的保护机制,不易保护软件成果。 Java 与C/C++语言很相似的一种新型语言,采用Java虚拟微处理器规范,使其能够在各种类型计算机上运行。目前,Java语言广泛用于Web项目管理与开发,应成为一种国际标准。但执行速度慢。语言严格、呆板、啰嗦。

在众多高级语言中,Visual C++是一个面向对象、功能强大、可视化的软件开发工具,也是目前应用较为广泛的软件开发工具。因此本系统在综合比较个语言的优缺点后选取Visual C++6.0作为本设计所作开发的高级语言。

Visual C++6.0是由Microsoft公司推出的目前极为广泛的可视化开发工具,利用Visual C++6.0可以开发基于Windows平台的32位应用程序,依靠强大的编译器以及网络与数据库的开发能力,用Visual C++6.0可以开发出功能强大的应用程序,同时该版本也是微软的Visual C/C++编译器的最新和最好版本,它已经远非只是一个编译器了。它包括了综合的微软基本类库(MFC Library),这使得开发Windows应用程序变得简单而高效;它提供有复杂的资源编辑器,可以编辑对话框、菜单、工具栏、图像和其他许多Windows应用程序的组成元素;它还有一个非常好的集成开发环境——Developer Studio,用它可以在编写C++程序时对程序的结构进行可视化的管理。此外,一个完全集成的Debug工具可以让你从各个角度来检查程序运行中的微小细节。总之,visual C++ 6.0可以让你使用Windows的最新进展来迅速开发出有特点的一流的应用软件。

19

基于ProEngineer的工艺数据库开发 第四章 系统的设计与实现

第四章 系统的设计与实现

4.1系统的分析

4.1.1系统的功能

基于Pro/E的工艺数据库的研究与开发, 主要是针对基于Pro/E的CAD/CAPP/CAM集成系统的需要进行开发。采用二次开发的方法,将各种工艺参数(如机床、刀具、加工余量等工艺参数)以外部数据库的形式,集成到Pro/E中,在产品设计、工艺过程规划、工艺设计、数控编程等过程中,实现用户查询并供CAD、CAPP、CAM各子系统的自动访问。

要求完成机床参数、刀具参数、加工余量三个部分的开发。包括用户界面、应用程序及其接口、数据库、数据库访问程序的开发。

例如,用户通过菜单和对话框输入车床类型、型号、加工工件直径、材料,系统通过对话框输出车削深度、进给量等。 4.1.2 系统的数据流图

下面是对系统的数据流分析。 第一项:项目说明

机床模块旨在通过程序查询数据库中的机床工艺数据,给出相应的用户需求的机床工艺参数。还有各类普通机床的特征介绍。

刀具模块旨在通过程序查询数据库中的刀具工艺数据,选择刀具的类型,及查询的物理机械特性、刀具化学成分含量等选项,给出相应的用户需求的工艺参数。还有切削液的性能参数和红硬性查询;

加工余量模块旨在通过程序查询数据库中的加工余量参数,选择加工条件、加工直径等参数,查询各种类型的加工方式的加工余量。

第二项:数据流图

根据需求,可画出如图4.1和图4.2所示数据流图。图4.1是系统的分层数据流图,其中(a)为顶层图, 图(b)为0层图, 图(c)、(d)、(e)为1层图。从该图中可看到怎样对系统进行逐层分解并采用数据流图对其进行分析和描述,图4.2是该系统的数据流总图。

第三项:数据字典

数据字典包括下面的数据流条目、文件条目和小说明三部分。 其一:数据流条目

原始数据=机床型号+工件直径+车削深度值+进给量+刀具牌号+轴端面最大直径+中心孔锥度号+底面至台面高度数值磨削长度+磨削直径

20

基于ProEngineer的工艺数据库开发 第四章 系统的设计与实现

车床工艺参数=工件直径+车削深度+进给量

铣床工艺参数=工件直径+中心孔锥度号+底面至台面高度数值

21

基于ProEngineer的工艺数据库开发 第四章 系统的设计与实现

顶层: 用户 原始数据 系统 查询结果 工艺数据 (a) 机床工艺数据 工件直径参数 用户 机床工艺数据 刀具牌号 2. 刀具 加工 条件 3. 加工余量 零件直径 加工余量值 加工余量数据 刀具工艺数据 0层: 机床 型号 用户 刀具 类型 1. 机床 刀具工艺数据 用户 (b) 用户 1层(机床中以车床为例、加工余量中以轴端面为例加以说明):

进给量、 车削深度值 车床型号 1.1 确定车 床类型 车床类型 1.2 确定查询 工艺参数 车床工艺数据 有关参数 车床工 工件直径 艺参数 用户 (c) 刀具 牌号 2.1 刀具类型 确定刀 具类型 查询项目 2.2 刀具工艺参数 确定查询 项目 刀具性 能参数 刀具工艺数据 用户 (d)

22

基于ProEngineer的工艺数据库开发 第四章 系统的设计与实现

输 入参 数车床工艺参数 加工方式 3.1 选择加工方式 零件尺寸 轴端面最大 直径 3.2 确定输入 有关参数 加工余量值 用户 加工余量参数 轴端面加工 余量数据 (e)

图4.1 系统分层数据流图

用户 输入参数2 铣床工艺数据库 输入参数3 磨床工艺数据库 输入参数4 刀具工艺数据库 输入参数5 外圆柱数据库 输入参数6 内孔数据库 输入参数7 轴端面数据库 1

车床工艺数据车床工艺数据库 铣床工艺参数 磨床工艺参数 磨床工艺 参数查询 刀具工艺参数 刀具工艺 参数查询 外圆柱参数 外圆柱 加工余量 内孔参数 内孔 加工余量 轴端面参数 轴端面 加工余量 车床工艺参数查询 铣床工艺 参数查询 铣床工艺数据 磨床工艺数据 刀具工艺数据 外圆柱加工余量值 内孔加工余量值 轴端面加工余量值 显示结果 图4.2 系统数据流总图

23

基于ProEngineer的工艺数据库开发 第四章 系统的设计与实现

磨床工艺参数=磨削长度+磨削直径 刀具工艺参数=导热系数+线膨胀系数 外圆柱参数=零件直径

内孔参数=工件基本尺寸+孔长度 轴端面参数=工件长度+端面最大直径

输入参数1=工件直径+车削深度+进给量+工件直径 输入参数2=工件直径+中心孔锥度号+底面至台面高度值 输入参数3=工件直径+磨削长度+磨削直径+中心高 输入参数4=刀具牌号+含量成分 输入参数5=加工条件+工件直径 输入参数6=工件尺寸+刮孔长度 输入参数7=工件尺寸+拉孔长度 其二:文件条目 文件名:系统工艺数据库

组成:{机床工艺数据库+刀具工艺数据库+加工余量工艺数据库} 组织:按“组成”中所列的次序排列 文件名:机床工艺数据库

组成:{工件直径+车削深度+进给量+工件直径+中心孔锥度号+底面至台面高度值+磨削长度+磨削直径+中心高+刀具牌号+含量成分+拉孔长度+刮孔长度+端面直径}

组织:按“组成”中所列的次序排列 文件名:刀具工艺数据库 组成:{导热系数+线膨胀系数} 组织:按“组成”中所列的次序排列 文件名:加工余量数据库

组成:{零件直径工件基本尺寸+孔长度工件长度+端面最大直径} 组织:按“组成”中所列的次序排列 其三:小说明 变换编号:1 变换名:机床

变换逻辑:根据输入的机床型号和工件直径确定机床工艺数据 变换编号:1.1

变换名: 确定车床类型

变换逻辑:根据输入的车床型号确定车床类型 变换编号:1.2

24

基于ProEngineer的工艺数据库开发 第四章 系统的设计与实现

变换名:确定查询有关参数

变换逻辑:根据输入的工件直径、进给量、车削深度值确定工艺参数 ……

4.2系统的设计

结构化设计是以分析阶段获得的数据流图及描述说明书作为基础,进行模块结构设计。根据数据流图的两种典型的结构类型,变换型结构和事务处理型结构,导出的初始结构图也有两种。变换型问题数据流图的分析,主要是找到其中心变换,这是从数据流图导出变换型结构图的关键;事务处理型问题导出结构图需从分析数据流图开始,自顶向下地设计结构图。

在本课题设计中,应用系统是变换型和事务型的结合。采用模块化结构,使系统的结构清晰,层次分明。以降低系统的复杂性,使系统易于调试、链接、移植和修改;也便于功能的扩充,且模块可并行开发,从而提高了软件的生产效率。图4.3是该系统的系统模块总图,图4.4是系统结构图。

图4.3 系统模块总图

机床 刀具 加工余量 基于Pro/E的工艺数据库 车床铣床 磨床 刀具 外圆柱 内孔 轴端面

25

基于ProEngineer的工艺数据库开发 第四章 系统的设计与实现

数据输入 数据输入 数据库输入模块 初始输入 初始输入 读输入 确定数据 确定结果 用 查询结果1 预格 式化1 格式化1 显示结果 查询数据 机床工艺数据输出 预格式化1 查询结果2 预格 式化2 格式化2 显示结果 加工余量数据输出 预格式化2 查询结果1 查询结果2 基于ProEngineerProEngineer的工基于的工艺数据库开发 艺数据库系统数据调 图4.4 系统结构图

从图4.3可知,该系统分为三大模块即:机床、刀具、加工余量。

机床模块主要负责几种主流机床的相关工艺参数的查询功能。因此,在该模块下又分为三个模块:车床、铣床、磨床。其中车床模块主要实现加工一定直径的工件时的车刀刀杆尺寸、车削深度、加工材料和进给量等工艺参数的查询,当前常用车床特征的查询等功能;铣床模块主要实现铣刀的加工范围参数查询,铣床工作台参数查询和X62W型万能铣床的技术参数查询等功能;磨床模块主要实现外圆磨床、内圆磨床和平面磨床的工艺参数查询,MY820型磨床、M618A型磨床的技术参数查询功能。

刀具模块主要负责刀具参数的查询、刀具的机械物理性能参数的查询等功能。 加工余量分为外圆柱、内孔、轴端面的加工余量。外圆柱模块主要实现粗车及半精车、半粗车后磨外圆和无心磨的加工余量查询;内孔模块主要实现研磨孔、刮孔和拉孔的加工余量查询;轴端面模块主要实现半精车轴端面、磨轴端面加工余量查询功能。

4.3 系统的实现

4.3.1 开发和运行环境

1. 应用程序接口

在Pro/E和应用程序之间主要是通过特定的数据结构来传递信息,对应用程序来说这种数据结构并不是直接访问的,而只能通过Pro/TOOLKIT提供的函数即应用

26

基于ProEngineer的工艺数据库开发 第四章 系统的设计与实现

程序接口来访问。

user_initialize()是Pro/TOOLKIT应用程序的初始化函数,主要用来对同步模式的Pro/TOOLKIT应用程序进行初始化,任何同步模式的应用程序要在Pro/E系统中加载都必须包含该函数,其作用相当于C程序中的main()函数。在该函数中设置用户的交互接口,如设置菜单、调用对话框或直接调用所需的函数等。在Pro/E环境加载Pro/TOOLKIT应用程序时,首先调用user_initialize()函数。

user_terminate()函数在Pro/E终止同步模式的Pro/TOOLKIT应用程序时调用(如退出Pro/E将终止应用程序的运行),该函数由用户定义,其中可以不执行任何动作。

user_initialize()和user_terminate()函数应放在与工程文件名同名的CPP文件中,其格式固定不变。

在Pro/E中运行Pro/TOOLKIT应用程序,还必须得进行注册,注册界面如图4.5。注册文件(registry file)的作用是向Pro/E系统传递应用程序的信息。本设计中,注册文件Ex1_protk放在C:\\ee\\Test 目录下。可用Pro/E的功能\\辅助应用程序菜单按钮注册应用程序。

图4.5 应用程序注册

2. 数据库接口

Visual C++提供了多种多样的数据库访问技术——ODBC API、MFC ODBC、DAO、OLE DB、ADO等。这些技术各有自己的特点,它们提供了简单、灵活、访问速度快、可扩展性强的开发技术,而这些正是Visual C++开发和其他开发工具相比的优势所在。本设计中采用的是DAO数据库类,在MFC中有5个DAO数据库类,它们分别是:CDaoWorkspace、CDaoDatabase、CDaoRecordset、CDaoTableDef、CDaoQuerydef,这些类在应用程序中专用于与数据库进行数据交换,实现数据库与应用程序的接口。DAO作为数据库访问的对象,提供了一种通过程序代码创建和操作数据库的机制。Access97数据库工具通过Microsoft Jet引擎访问数据库中的数据

27

基于ProEngineer的工艺数据库开发 第四章 系统的设计与实现

和数据库结构定义。DAO通过Microsoft Jet数据引擎提供了一套对象,包括:数据库对象(Database)、表定义(TableDef)、查询定义对象(QueryDef)和记录集对象(Recordset)等。Access97数据库是Microsoft Jet数据引擎能够读取的数据库中,通过DAO访问效率最高的数据库(.mdb)之一。访问Access97数据库的方法最简单,只要Open()函数给出第一个参数,其他三个参数都缺省就表示打开一个Access97数据库。例如,要打开车床的数据库,其代码如下:

CDaoDatabase *BoxDb; //指向DAO数据库对象的指针。 CDaoTableDef *BoxTd; //指向表定义对象的DAO接口指针。 CDaoRecordset *BoxRs; //指向记录对象的DAO接口指针。

BoxDb=new CDaoDatabase();//构造一个CDaoDatabase对象,并分配存储空间。 BoxDb->Open(\打开Box.mdb数据库。

BoxTd=new CDaoTableDef(BoxDb); BoxTd->Open(\车床\

BoxRs=new CDaoRecordset();

BoxRs->Open(BoxTd,dbOpenTable,dbForwardOnly); BoxRs->MoveFirst();

ch1=(LPSTR)(LPCTSTR)m_zhijing; if(strcmp(ch1,\小于等于40\if(strcmp(ch1,\到60\if(strcmp(ch1,\到100\if(strcmp(ch1,\到400\if(strcmp(ch1,\等于400\

for(;i;i--) {

BoxRs->MoveNext(); }

ch2=(LPSTR)(LPCTSTR)m_xiangmu;

ch3=(LPSTR)(LPCTSTR)BoxRs->GetFieldValue(ch2).bstrVal; m_canshu=ch3;

28

基于ProEngineer的工艺数据库开发 第四章 系统的设计与实现

UpdateData(FALSE);

BoxRs->Close(); BoxTd->Close(); BoxDb->Close();

delete BoxRs; delete BoxTd; delete BoxDb;

4.3.2 菜单设计

Pro/E的命令都是通过菜单或一些控件按钮执行的,在对Pro/E进行工艺数据库集成开发时,需要使用其菜单及用户界面技术,使用好这些技术会使编写的软件操作起来更加方便,界面更加友好。PRO/TOOLKIT提供了一系列菜单操作函数,允许应用程序创建和管理菜单。其创建方法是:直接调用ProMenubarMenuAdd()函数向PRO/E添加所需的菜单;建立新建菜单信息文件。

首先要在加入Pro/TOOLKIT 包含文件:

/*--------------------------------------------------------------------*\\ Pro/TOOLKIT includes

\\*--------------------------------------------------------------------*/ #include \#include \#include \#include \#include \#include \#include \#include \#include \#include \

然后对函数进行定义:

/*--------------------------------------------------------------------*\\ Functions declaration 函数声明

\\*--------------------------------------------------------------------*/

29

基于ProEngineer的工艺数据库开发 第四章 系统的设计与实现

int chechuangcanshu_1(); int xc_1(); int mochuang_1(); int daoju_1(); int wyzcx_1(); int neikong_1(); int zhouduanmian_1();

static uiCmdAccessState AccessAvailable (uiCmdAccessMode);

#ifdef _DEBUG

#define new DEBUG_NEW #undef THIS_FILE

static char THIS_FILE[] = __FILE__; #endif

以机床菜单下的车床为例来说明菜单添加和动作设置函数:

/*========================================================*\\ FUNCTION: user_initialize()

\\*========================================================*/ extern \{

ProError status; ProFileName MsgFile;

uiCmdCmdId PushButton_cmd_id;

ProStringToWstring(MsgFile, \设置菜单信息文件名 //添加名称为“工艺数据库”菜单条

status=ProMenubarMenuAdd(\PRO_B_TRUE, MsgFile);

//添加一级子菜单项 机床

ProMenubarmenuMenuAdd(\NULL, PRO_B_TRUE, MsgFile);

/*--------------------------------------------------------------------*\\ 机床特征

\\*--------------------------------------------------------------------*/ //设置(机床_车床)按纽的动作函数

ProCmdActionAdd(\

30

基于ProEngineer的工艺数据库开发 第四章 系统的设计与实现

uiCmdPrioDefault,AccessAvailable,PRO_B_TRUE,PRO_B_TRUE,&PushButton_cmd_id);

//添加(机床_车床)按纽

ProMenubarmenuPushbuttonAdd(\

\a push button 1 to the ProE menu bar\NULL, PRO_B_TRUE, PushButton_cmd_id, MsgFile);

return status; }

本系统在Pro/E中建立了一个菜单,由于系统有三个模块,因此在此菜单下有三个子菜单,而每个子菜单下又根据每个模块的子模块数的多少设有几级下级子菜单。建立的菜单的具体形式如图4.6所示。

图4.6 系统菜单设计图

4.3.3 对话框设计

对话框是向用户提供的一个友好的界面,以方便用户使用。Pro/TOOLKIT提供了UI对话框函数,但其对话框采用资源文件的形式来定义和描述界面组成元件,属性及布局,不能直观反映界面的布局、设计、修改和调试。因此,本系统的对话框的设计采用VC++中的MFC类来进行,通过调用VC DLL程序,PRO/TOOKIT应用程序可以直接使用VC DLL程序中所建立的对话框界面。

下面以车床子模块为例来说明对话框的设计,车床的对话框界面如图4.7所示,创建步骤如下:

首先,在资源文件中选择资源类型Dialog创建对话框,如图4.8所示。

31

基于ProEngineer的工艺数据库开发 第四章 系统的设计与实现

图4.7 车床对话框

图4.8 创建对话框

图4.9 类的创建

然后,用classward创建对话框类,自动生成Cdialog派生类定义的头文件和和相应的实现文件,如图4.9所示。

32

基于ProEngineer的工艺数据库开发 第四章 系统的设计与实现

最后,创建和显示对话框,创建和显示对话框的源程序在菜单动作函数中设计,对话框的创建过程如图4.8-4.10所示。

图4.10 创建对话框

4.3.4 数据库设计

本系统采用Access97作为数据库开发软件。用Access97开发的数据库与程序的接口问题较为简单,采用直接调用方式。数据库开发主要是编辑数据库表格。根据系统的模块划分情况,针对不同条件制作Access97表格。

在此以表格“半精车轴端面加工余量”为例介绍数据库的开发,如图4.11所示。

图4.11 半精车轴端面加工余量

设计该表时,应包括半精车轴端面的零件长度,端面最大直径,端面直径按大小划分五个范围。

创建步骤如下:

首先双击“使用设计器创建表”,在新建表中的“字段名称”中分别输入ID 、零件长度(全长)、“端面最大直径<=30”、“端面最大直径>30-120”、“端面最大直径>120-260”、“端面最大直径>260-500”、“端面最大直径>500”,在“数据类型”中

33

基于ProEngineer的工艺数据库开发 第四章 系统的设计与实现

选择文本形式,然后在保存时输入表名。在表创建完毕后,输入工艺参数。

在查询表时,首先将选择零件长度与表中的 的“零件长度”这一列的数据进行比较,确定记录的行位置,再根据选定的端面最大直径确定所在的列,这样就可以读出半精车轴端面加工余量值。

4.3.5 系统的测试

1. 程序调试

以菜单程序的编写、调试为例。在Visual C++ 6.0的集成开发环境中,添加定义菜单项和菜单动作的.cpp函数、在菜单动作函数定义段来创建和显示对话框的.cpp函数以及实现对话框功能的.cpp文件。添加完后,点击VC界面上的Execute Program按钮执行编写的程序。由于连接库protk_dll.lib及LIBC.lib产生的错误为37个,因此,运行结果为37个错误、20个警告是正确的,如果有多于此数目的错误,说明程序中有错误,应根据错误所在的位置改正,如图4.12。

图4.12 程序调试环境

2. 模块调试

此系统由各个模块组成,在设计完一个模块之后,应该进行调试,以便找出其中的错误,及时更正,以免影响后面的模块运行。下面以车床系统为例,说明在程序调试已经正确的基础上,此模块的调试。输入不同的需求参数,点击生成对话框,最后得到所要求的工艺数据参数。图4.13说明此模块开发成功。

34

基于ProEngineer的工艺数据库开发 第四章 系统的设计与实现

图4.13 参数的查询

3. 总体调试

所有模块开发完成以后,并且每个模块调试成功,将所有模块集成到一个系统中,然后启动应用程序,在Pro/ENGINEER界面上将出现前面设计的菜单。点击各模块下的菜单按钮,进入相应的对话框。在各个对话框中,输入已知的工艺参数,再选择相应的查询按钮,就能得到所需要的参数。经过对系统的测试,该系统能正常运行,可以得到用户要求的工艺参数。本系统的开发是成功的。

35

基于ProEngineer的工艺数据库开发 第五章 系统的运行

第五章 系统的运行

5.1系统的运行环境及使用方法

本节主要介绍系统的运行环境和使用方法,使大家更直观、详细的了解该系统。 由于系统所使用的支撑软件为Pro/ENGINEER Wildfire2.0,所以,满足Pro/ENGINEER Wildfire2.0运行要求的任何软硬件环境,都符合系统的要求。

后文的运行实例是在以下配置的机器上作的:主机是组装的家用微机,达硕牌的机箱和EMC显示器,CPU是赛扬2.0的处理器,主板为微星845GE,显卡32M,内存条为HY256M,40G的硬盘。软件:Windows XP操作系统,Pro/ENGINEER Wildfire2.0, Access97。

本系统采用手动注册运行Pro/TOOLKIT应用程序,在Pro/ENGINEER Wildfire2.0界面上选择“工具/辅助应用程序”菜单项,选择“注册”调出应用程序。然后选择“启动”按钮运行应用程序。系统的初始界面参见图5.1,可见在Pro/E的街面上添加了“工艺数据库”这个菜单条。

图5.1 系统初始界面

单击“工艺数据库”菜单条,进入本系统,会看到“机床”、“刀具”、“加工余量”三个子菜单,如图5.2所示。分别单击“机床”、“刀具”和“加工余量”三个子菜单可以相应进入“机床”、“刀具”和“加工余量”工艺数据库的查询系统。每个子系

33

基于ProEngineer的工艺数据库开发 第五章 系统的运行

统是独立的模块,各模块间互不干涉。

在进入一级菜单“机床”后,会显示包含有“车床”、“铣床”和“磨床”的二级菜单。如图5.3所示,单击车床激活车床对话框的弹出,如上章图4.13所示,用户可选择相应的工艺数据的查询。铣床和磨床的使用方法类似。

图5.2 所属子系统

在一级菜单“刀具”下只有一个“刀具”二级菜单,其使用方法同上面车床。 用户可以在“车床”中选择所需查询的工件加工直径和所需查询的工艺参数,然后点击“车床参数查询”按钮,即可得到相应的工艺参数。还可对各类车床特征进行查询。

5.2 运行实例

以图5.4所示车床工艺参数查询为例,展示系统具体使用过程。

1. 进入工艺数据库查询模块,按照上节介绍的步骤进入“机床”模块中的“车床”二级菜单,单击该菜单,激活“车床参数查询”用户对话框。

2. 在弹出的“车床参数查询”用户对话框中,在“选择加工工件直径”栏中选取相应直径值,其选取范围为0-400mm,在此选“小于等于40”;在“选择查询项目”栏中有“车刀刀杆尺寸”、“车削深度”、“加工材料”、“进给量”四项查询项目,

34

基于ProEngineer的工艺数据库开发 第五章 系统的运行

在此选取“车削深度”,然后单击“车床参数查询”按钮,在输出参数栏中显示查询输出值:<=3。

3. 然后在“各类车床特征”中可查取“普通车床特征”、“六角车床特征”、“立式车床特征”和“端面车床特征”等工艺技术参数。在“普通车床特征”中又包含有“CA6140普通车床”的工艺参数查询功能,见图5.5。

4. 点击“CA6140普通车床”按钮,进入“CA6140车床工艺参数对话框”,用户可以方便地读取相应工艺参数,见图5.6。

图5.3 机床子系统

图5.4 车床参数查询对话框

35

本文来源:https://www.bwwdw.com/article/0xj3.html

Top