核心提示:针对罗茨鼓风机的特点,结合国内外对AutoCAD开发的经验,在AutoCAD平台上,采用VC++和ObjectARX对罗茨鼓风机叶轮进行了二次开发,并对软件特点作了说明。本系统具有界面友好、多任务操作和简单易学等优点。关 键 字:ObjectARX 罗茨鼓风机 叶轮设计系统引言 罗茨鼓风机的核心部件是叶轮,叶轮设计的好坏关系到整机的工作性能(包括耗能、噪声等)和使用寿命[1] 。但是,叶轮参数设计需要大量复杂的计算、比较和反复修改,手工计算工作量大,设计周期长,而且很难保证转子的正确啮合、运动平稳。因此,开发一种人机界面友好、操作方便而且功能完善的罗茨鼓风机叶轮计算机辅助设计(CAD)软件, 不仅可以减少设计工作量,提高开发速度和质量,而且对推动罗茨鼓风机的设计、节约能源、保护环境等都具有重要的理论意义和实际应用价值。
关 键 字:ObjectARX 罗茨鼓风机 叶轮设计系统
引言
罗茨鼓风机的核心部件是叶轮,叶轮设计的好坏关系到整机的工作性能(包括耗能、噪声等)和使用寿命[1] 。但是,叶轮参数设计需要大量复杂的计算、比较和反复修改,手工计算工作量大,设计周期长,而且很难保证转子的正确啮合、运动平稳。因此,开发一种人机界面友好、操作方便而且功能完善的罗茨鼓风机叶轮计算机辅助设计(CAD)软件, 不仅可以减少设计工作量,提高开发速度和质量,而且对推动罗茨鼓风机的设计、节约能源、保护环境等都具有重要的理论意义和实际应用价值。
1 系统概述
本系统是在窗口环境中,以面向对象的编程手法,用Microsoft VC++实现的,并采用 MFC和ObjectARX在AutoCAD平台上进行了二次开发。
MFC(Microsoft Foundation Class Library)是Windows环境下编程的一个应用程序框架。它提供了许多必须的代码用于管理窗口、选单和对话框,完成基本的输入/输出,存储数据对象等。 MFC缩短了应用程序开发时间,提供了容易使用的ActiveX和OLE编程的用户接口单元和技术,简化了数据库编程[2] 。
ObjectARX是ARX的编程环境,它提供了一个面向对象的32位的AutoCAD应用程序的二次开发工具。它提供的C++程序库可用于开发 AutoCAD应用程序,扩充AutoCAD类,创立和内置 AutoCAD命令一样模式的新命令。 ARX 应用是共享AutoCAD地址空间、对AutoCAD进行直接函数调用的动态链接库(DLL),提高了程序的保密性[3] 。
用ARX及Visual C++基于AutoCAD 开发应用程序的结构如图1所示。
2 主要设计内容
(1)界面的建立。对设计系统进行分析,建立系统模型。其中包括CAD系统的整体结构及各子系统的模型,完成系统界面的建立。
(2)叶轮的结构设计。搜集罗茨鼓风机各种叶轮的资料,完成罗茨鼓风机性能参数数据库的录入、叶轮结构参数的计算以及国内外典型叶轮数据的录入、修改、删除等数据库管理工作。
(3)叶轮强度校核与热力计算。完成罗茨鼓风机热力计算,并进行叶轮强度计算[5],通过编程把已有的叶轮强度分析计算集成到软件系统中。
(4)叶轮二维造型。首先,参照设计标准,采用参数化造型技术完成叶轮型线、轴孔、配重孔等体素的二维造型;其次组装体素,产生叶轮整体二维数据模型。
3 程序总体设计
根据罗茨鼓风机叶轮的设计特点和Windows应用程序的风格,在程序设计过程中,采用先进的面向对象技术、文档-视图MDI结构、动态链接库(DLL)技术以及ODBC数据库管理技术等,从而进行设计罗茨鼓风机叶轮CAD系统。该系统是采用模块化的结构体系集成CAD系统,它实现功能上的集成化、结构上的模块化。这样做,有利于系统内部数据的流动;方便用户添加新的功能模块,从而实现系统的某个功能的升级。系统核心是工程数据管理模块(ODBC)。每个部件对象(一个具有特定功能的模块称为一个部件对象)通过工程数据管理模块存取数据,通过文档保存数据,利用视图显示文档数据的变化(图2)。
该系统建立的基础是以鼓风机工程数据库作为交换处理、标准规范及资料检索的依据;以常用算法及工程算法库作为计算分析的工具;以图形处理系统 AutoCAD作为图形输出的载体;将罗茨鼓风机叶轮设计的先进理论和方法作为叶轮零件设计模块的核心。
选取[鼓风机设计] ,主控窗口内出现[鼓风机参数]子窗口(图3)。在记录视窗内,可以通过菜单条或工具条上相应的数据库操作命令来选择已有的产品型号或是手工输入要设计的新型号,并可将其方便地添加到数据库中。
在进行叶轮设计之前,必须对鼓风机进行性能参数和热力计算,以便为叶轮的强度分析提供依据。首先,选取菜单[计算]→[性能参数计算],弹出性能参数计算对话框,在编辑框里输入该机的基本参数,点击“确定”后显示出性能参数计算结果报告。同样,弹出热力计算对话框,输入其基本参数后点击“确定”,显示出热力计算结果报告。 完成鼓风机基本计算后,就可进行叶轮结构设计了。选择[设计]→[新建]→“叶轮设计”,弹出一个类似“鼓风机设计”的拆分窗体。为了使叶轮结构型式适合不同场合的要求,在采集和分析了当前国内外罗茨鼓风机叶轮常见结构型式的基础上,笔者编制了典型的叶轮结构对象模块,通过属性页选取相应部分,然后再在相应的窗体上选取具体的结构。本系统所提供的主要形式有:端面形式、轴孔形式(图4)及配重孔形式。
4 程序实现
(1) MFC 框架程序的建立。启动 Microsoft Visual C++ 6.0 ,弹出 New 对话框,点亮 MFC AppWizard(dll),输入项目名 ARX_RootsImpellerDesign ,并进行设置:在 Project Settings 对话框,确定 Setting For: Win32 Debug ;在 Debug 选项中输入 acad.exe 所在的路径和名字(比如D:Program FilesAutoCAD 2000acad.exe );在 C/C++ 选项中设置 Use run-time library:
Multithreaded DLL ;在 Link 选项中 Category: General 下, Output file name 对话框中输入应用程序的文件名—— ARX_RootsImpellerDesign.arx( 扩展名 arx) ;在 Category: Input 下,在 Object/library modules 对话框中,按路径插入链接器包含的 ARX 库文件 acad.lib (数据库访问库)、 acadapi (命令扩展库)、 rxapi.lib (运行扩展库)和 libacge.lib( 通用几何库 ) 等。
(2) 使用ObjectARX编程接口编写在AutoCAD下的绘制叶轮图。绘图函数的实现可以通过两种途径:一是使用ObjectARX的 acedCommand函数调用CAD的各种绘图命令直接在CAD上进行绘图;另一种方法是使用ObjectARX的AcDbDatabase类对叶轮 CAD图形的数据库进行操作。因为AutoCAD把组成叶轮CAD图形的各种元素都保存在一个数据库中,所以AcDbDatabase类对叶轮CAD图形的数据库进行操作就是对叶轮图形的操作,而且比用CAD的命令更深入、更灵活、功能更强。叶轮图形完成后创建一个它的实例,放在一个全局函数ROOTS ()中,用ObjectARX的acedRegCmds->addCommand 命令登记函数将该全局函数登记为AutoCAD的一个命令,那么在AutoCAD下输入ROOTS就可以进行叶轮综合图的绘制了。
最后,选择菜单[结果]→[绘图输出] ,调用 AutoCAD 软件包,在命令行上输入(如:arxload“d : 2000appp/arx_drawing”) ,加载此动态链接库后,弹出叶轮绘图对话框,输入相应的参数,点击“确定”按钮,AutoCAD自动地在屏幕上画出叶轮的二维图形。
5 结论
在程序设计过程中,采用了先进的面向对象编程技术,使整个系统的结构、效率、容错性保持良好的状态。同时使系统具有良好的扩充性,可以把其他类型的叶轮添加到该系统中,扩大它的使用范围。