换热设备广泛应用于石油化工、炼油、化肥、动力、轻工、冶金、核工业等工业部门。随着CAD/CAE/CAM技术的发展,二维平面图已远远不能满足设计和制造的需求。而三维模型具有很强的可视性,能准确反映设计者的设计思想 ;对于复杂的结构,二维图形不能够准确的表达出各零部件的空间位置关系,而三维实体图形具有空间真实感,能明确表达出各零部件的空间位置关系,避免各零件之间发生碰撞和干涉。在对换热设备及其零部件设计的同时需要对换热设备零部件进行有限元分析和优化设计 (特别是对非国标零部件 ),首先需要创建零部件的三维模型。据统计,创建模型所耗费的时间占整个分析过程的 87%[1] 。特别是在优化设计过程中,要根据优化结果不断进行三维模型的修改和优化,这给设计分析人员手工建模带来了很大的重复的麻烦,大大降低了设计分析效率。
随着CAD技术的发展,关于机械零图老师部件的绘图软件包应运而生,但它们的三维功能较弱。国外一些大的软件商也推出了三维软件(如Pro/E等),但价格较高,令一般的用户望而却步。所以开发专业的换热设备零部件的三维造型系统具有很大的必要性和实际意义。
著名的有限元分析软件ANSYS可与AutoCAD软件共享数据,接受AutoCAD建立的三维模型[2]。为此,作者运用AutoCAD二次开发技术开发了换热设备零部件的三维造型系统。运行该系统,输入必要的设计参数,系统将自动快捷的生成精确的零部件三维模型,实现了换热设备零部件的三维参数化绘图。
1 三维造型系统的开发环境
ObjectARX2000是Autodesk公司随着AutoCAD2000推出的新一代的功能强大的二次开发工具。它使用面向对象的C++应用程序开发机制,以动态链接的形式与AutoCAD共享地址空间,能够直接利用AutoCAD的内核代码,访问AutoCAD的数据库、图形系统及几何造型核心[3],扩充AutoCAD的类和协议,创建新的AutoCAD命令,并可被AutoCAD环境直接调用,具有较高的程序开发与执行效率。ARX程序命令的消息模型如图1所示。
因此,运用AutoCAD二次开发技术,在VC++6 0和ObjectARX2000的环境下,编写了ARX应用程序,开发了换热设备零部件三维造型系统。在AutoCAD环境下加载ARX应用程序,程序向AutoCAD命令堆栈中添加用户自定义命令(如tubesheet)。调用该命令,ARX应用程序将自动处理生成三维实体模型。
2 ARX程序基本框架的生成
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/autocad/)VisualC++6 0使用非常友好的操作界面--DeveloperStudio集成开发环境,它集编辑、编译、连接、调试、向导等多项功能于一体,并且提供了目前已成为业界标准的MFC(Microsoft Application Foundation Classes)类库[4]。运行ObjectARX2000软件包,可以把ObjectARX嵌挂到VC++6 0编程环境中,它所提供的库函数、头文件以及详细文档等也嵌挂到VC++6 0的环境中。在VC++的集成开发环境下,通过ARX应用程序向导(ObjectARX2000 App Wizard),可以方便快捷的建立起ARX程序的基本框架。
3 开发三维造型系统的关键技术
3 1 三维造型用户界面的定制
运用AutoCAD界面定制技术,编辑AutoCAD应用程序的菜单文件acadmnu,在AutoCAD中添加换热设备零部件的下拉式菜单(如图2所示),并使菜单项中各项与各自的ARX程序路径相连接,这样点击菜单可将ARX程序定义的用户命令自动添加到AutoCAD内部命令堆栈中。
3 2 人机交互界面的创建
微软的基础类库MFC是VC++程序的设计一个重要资源,在ARX程序中使用MFC的最明显的优点是可以充分利用VC++开发环境提供的各种类资源和控件资源,实现程序界面的可视化设计,大大提高程序开发效率。利用MFC开发环境开发各个零部件的人机交互的对话框界面(如图3所示),用户可以在对话框界面中输入或修改设计参数,实现三维实体建模;通过修改设计参数,可以完成换热设备中非标准零部件的三维造型。
3 3 三维造型的方法
构造三维模型的方法有3种,即线框造型、表面造型和实体造型。其中三维实体造型具有体的特征,能显示零件形状,给人以真实的空间感觉,并能利用剖切来检查壁的厚薄、孔是否相交等问题;还可以进行零件的物性特性计算,如计算体积、面积、重心、惯性矩等,因此实体造型能够较全面地反映零件的物理特性。
对于一些简单的实体,如长方体、圆柱体、球体等,可以借助AutoCAD2000中的三维实体造型核心即ACIS(American Committee for Interoperable Standards)系统中的成员函数如virtual ACAD::createBox(x,y,z)来生成和编辑。对于复杂的三维实体模型,可以采用基于二维对象运用挤出、旋转和布尔操作来生成三维实体。
3 3 1 挤出法(Extrude)
先生成二维实体对象如圆(AcDbCircle)、椭圆(AcDbEllipse)、封闭二维多段线(AcDbPolyline)等,然后按挤出高度或指定路径生成新的三维实体。在ARX应用程序中,通过调用AcDb3dSolid类的成员函数extrudeAlongPath()来实现,其原型如下:ACAD:extrudeAlongPath(AcDbRegion Region,AcDbCurve Path),其中参数Region表示指向前面生成的二维封闭实体面域对象的指针,Path表示挤出路径。在换热设备零部件中,一些细长的零件例如换热管、排污管、斜截弯管等可采用挤出法生成三维模型。
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/autocad/)12下一页