1 引言
CAD技术在压缩机中的应用始于20世纪60年代,主要应用于模拟压缩机的工作过程,目的在于揭示压缩机热力、动力过程,以获得高经济性可靠性的压缩机。随着计算机技术的发展,CAD技术越来越广泛地应用于压缩机的设计中,通过计算机模拟,可预测压缩机实际工作状态,从而可以大大节省实验费用,并可在压缩机结构设计中,可采用有限元方法预测气缸、活塞、曲轴等主要零部件的强度,并进行改进设计。
计算机辅助设计的一个重要应用内容是CAD绘图系统。目前阶段,大多是应用AUTOCAD软件来绘制压缩机的图纸,它与手工绘图的区别仅在于用计算机鼠标取代了铅笔来绘图,真正意义上的采用参数化设计方法,使用计算机自动生成压缩机图纸的方法还未见应用。由于活塞式压缩机种类繁多,给参数化设计绘图带来很大困难,本文对单列、立式微型压缩机的计算机参数化设计进行了探索研究,编制了参数化绘图软件,可以根据给定的设计参数自动进行设计绘图。
2 压缩机CAD系统的主要组成部分
该系统主要由两部分组成,一部分是压缩机的常规设计,包括热力计算、动力计算、气缸设计计算、活塞设计计算、连杆设计计算、曲轴设计计算、气阀设计计算等模块。另一部分是压缩机绘图软件,包括零部件绘图和装配图绘图,整个系统组成如图1所示。压缩机常规设计部分采用Visual C++6.0开发工具进行开发,由于此部分已有大量的研究成果发表,故本文不做重点介绍,本文将对参数化绘图软件部分进行详细介绍。
图1 压缩机CAD系统的组成
3 ARX应用程序和压缩机参数化绘图软件
3.1 ARX应用程序
3.1.1 ARX应用程序简介
在ObjectARX环境下开发的程序称为ARX应用程序(ARX Application),ARX应用程序不再是一个独立的进程,而是一个动态链接库。因此,ARX程序与AutoCAD程序在同一地址空间运行,能够直接利用AutoCAD的内核代码,直接访问Auto的数据库、图形系统及几何造型核心,在运行期间实时扩展AutoCAD具有的类及其功能,建立与AutoCAD本身的固有命令操作方式相同的新命令。ARX应用程序采用了与AutoL ISP和ADS完全不同的运行机制,使运行速度大大提高,程序功能大大增强,此外,开发ARX应用程序还可以充分利用Windows的资源、微软的基本类库MFC(Microsoft Foundation Class)和先进的Visual C++可视化编程序语言和工具,方便、高效地设计具有典型Windows风格的CAD应用程序。
开发ARX应用程序需要ObjectARX提供的ARX SDK(Software Development kit,软件开发工具包),ARX SDK工具包主要提供了开发ARX应用程序所需要的库文件、头文件、程序设计示例和有关的使用说明。在AutoCAD不同版本运行的ARX应用程序需要不同的ObjectARX开发环境的支持和各自的编译链接工具。ObjectARX环境主要包括以下5个类库:AcRx、AcEd、AcDb、Ac Gi、Ac Ge,以及一个与原来的ADS相兼容的函数库,其核心是两组关键的API,即AcDb和AcEd类库。
3.1.2 ObjectARX应用程序的功能
从宏观上讲,利用ObjectARX可开发面向对象的AutoCAD2000的应用程序,具体而言,用户可使用objectARX完成以下任务:
访问AutoCAD数据库。一个AutoCAD图形是保存在图形数据中对象的集合,ObjectARX能够让用户的应用程序访问这些数据库的图形、符号表等,还可以为指定的应用程序创建数据库。
与AutoCAD编辑器进行交互。ObjectARX提供了与AutoCAD编辑器进行交互的类和成员函数,用户的应用程序可以接受和响应发生在AutoCAD中的各种事件的通知。
使用MFC创建用户界面。ObjectARX应用程序可以使用与AutoCAD共享的动态链接库MFC来创建,用户还可以使用这些库来创建标准的Windows风格的图形用户界面。
支持多文档界面(MDI)。使用ObjectARX用户可以创建支持AutoCAD2000多文档界面应用程序,并且用户可确保自己的应用程序将会正确地与Windows环境的其他应用程序交互作用。
创建自定义类。用户可以在ObjectARX层次下以ObjectARX类为基础创建自己的自定义类,同时还可以使用ObjectARX的扩展图形库。
建立复杂的应用程序。ObjectARX支持复杂的应用程序的开发,它提供了如下特征:事件通知、事务管理、深入克隆、对引用的编辑、协议扩展和对托管对象的支持。
与其它编程环境进行交互,ObjectARX应用程序可与其它程序如Visual LISP、ActiveX、COM进行通讯,可与Internet链接后从网络上装载和保存图形文件。
3.1.3 ObjectARX应用程序的基本结构
ObjectARX应用程序本质上是Windows DLL程序,而AutoCAD软件本身则是一个典型的Win2dows程序,ObjectARX应用程序与AutoCAD、Windows之间均采用Windows消息传递机制直接通信。
ObjectARX应用程序与AutoCAD在同一地址空间内运行,并能直接利用它的核心数据库和代码。ObjectARX应用程序可以充分利用AutoCAD的开放结构,直接访问AutoCAD数据库结构、图形系统以及CAD几何造型核心。由ObjectARX应用程序定义的外部命令,通过acedRegcms()宏注册,这些外部命令与AutoCAD自身固有的命令一样由AutoCAD本身执行。
ObjectARX应用程序以C++为基本开发语言,具有面向对象编辑方式的数据可封套性、可继承性、多态性等特点,用其开发的工程CAD软件具有模块性好、独立性强、连接简单、使用方便、内部功能高效实用以及代码可重用性强等优点,并且支持MFC,能简洁并高效地实现许多复杂功能。
3.1.4 ObjectARX应用程序的装入和运行
ObjectARX应用程序在运行之前必须进入AutoCAD环境,然后在该环境下装入内容,以下是4种基本装入方式:
(1)用AutoLISP的arxload函数装入;(2)用ADS或ARX的ads arxoad()函数载入;(3)用AutoCAD的ARX命令载入;(4)用下拉菜单操作。装入成功后,在command:提示后输入在ARX应用程序中注册的命令即可。
3.2 压缩机自动绘图软件的编制
压缩机自动绘图软件主要是编写压缩机的ARX绘图程序,这部分使用VisualC++、ObjectCAD2000进行二次开发,并且使用MFC资源,由于ARX在MFC的静态链接方式下生成的ARX应用程序不容易产生版本冲突,并且使用时无需MFC的动态链接程序,所以选用MFC的静态链接方式。
ObjectCAD2000提供了大量的类和函数来访问修改图形数据库,但它们只是完成某一任务的一部分,为了使用方便和可重用性,在ObjectARX2000提供的类和函数的基础上,编写一系列函数,用于绘制压缩机的直线、圆、弧,创建新的层,改变实体颜色、打剖面线、标注等。
下面是绘制直线和建立一个新层的函数:
AcDbObject Id createline (Ac GePoint3d Pt1,
Ac GePoint3d Pt2)
{
/ / Ac GePoint3d start Pt (0,0,0);
AcDbLine 3 pline = new AcDbLine (Pt1,Pt2);
AcDbBlock Table 3 pBlock Table;
AcDbcurDwg ( ) → getBlock Table (pBlock2 table,AcDb : : kForRead);
AcDbBlock TableRecord 3 pBlock TableRe2 cord;
pBlock Table →getAt ( ACDB MODAL SPACE,pBlock TableRecord,AcDb : : kForwrite);
pBlock Table →close ();
AcDbObject Id lineId;
Pblock TableRecord →appendAcDbEntity (lineId,pLine);
PBlock TableRecord →close ();
pLine →close () ;
retum lineId;
}
void createNewLayer (char 3 name)
{
AcDbLayer Table 3 pLayer Table;
AcdbcurDwg ( ) →getLayer Table ( pLay2 er Table,AcDb : : kForwrite);
AcDbLayer TableRecord 3 pRecord = new AcDbLayer TableRecord;
PRecord →setName (name);
AcDbLinetype Table 3 Ptable;
PTable →getLinetype Table (p Table,AcDb : :kForRecord);
AcDbObjectid ltObj Id;
PTable →getAt ( ”CON TIUNOUS”, ltobj Id);
Player →setLinetypeObject Id (ltobj Id);
Player Table →add (pRecord);
PLayer Table →clsose ();
PRecord →close ();
}
通过以上类似的方法,可以把需要设计绘图的压缩机的所有线及标注用函数的形式表示出来,形成压缩机的ARX参数化绘图软件,运行该软件即可自动生成压缩机的图纸。
4 结论
本文针对单列微型压缩机作为对象进行了计算机参数化绘图的研究,编制了压缩机的ARX参数化绘图软件,可以使烦琐的绘图过程变的简单、快速。由于活塞式压缩机结构复杂,种类繁多,所以对压缩机的参数化绘图带来很多困难,只能针对特殊的机型来进行。