摘要:采用AutoCAD二次开发技术,在VisualC++6 0和ObjectARX 2000的环境下,开发了换热设备零部件的三维造型系统。运用挤出、旋转和布尔运算等方法,在给定基本参数条件下,可自动创建换热设备零部件的三维实体模型,修改设计参数,用户可以方便地修改三维模型。系统方便、省时,界面友好,运行可靠,实现了从数据到图纸的计算机参数化绘图。实践证明,系统为换热设备零部件的有限元分析前处理建模大大节省了时间,提高了设计分析效率。
关键词:换热设备,三维建模,AutoCAD二次开发,参数化绘图,ObjectARX 2000
换热设备广泛应用于石油化工、炼油、化肥、动力、轻工、冶金、核工业等工业部门。随着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所示。
图1 ARX程序的消息模型
因此,运用AutoCAD二次开发技术,在VC++6 0和ObjectARX2000的环境下,编写了ARX应用程序,开发了换热设备零部件三维造型系统。在AutoCAD环境下加载ARX应用程序,程序向AutoCAD命令堆栈中添加用户自定义命令(如tubesheet)。调用该命令,ARX应用程序将自动处理生成三维实体模型。
2 ARX程序基本框架的生成
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内部命令堆栈中。
图2 三维造型系统菜单
3 2 人机交互界面的创建
微软的基础类库MFC是VC++程序的设计一个重要资源,在ARX程序中使用MFC的最明显的优点是可以充分利用VC++开发环境提供的各种类资源和控件资源,实现程序界面的可视化设计,大大提高程序开发效率。利用MFC开发环境开发各个零部件的人机交互的对话框界面(如图3所示),用户可以在对话框界面中输入或修改设计参数,实现三维实体建模;通过修改设计参数,可以完成换热设备中非标准零部件的三维造型。
图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表示挤出路径。在换热设备零部件中,一些细长的零件例如换热管、排污管、斜截弯管等可采用挤出法生成三维模型。
3 3 2 旋转法(Revolve)
先生成二维实体对象,按指定的旋转轴旋转来生成新的三维实体。在ARX应用程序中,通过调用AcDb3dSolid类的成员函数revolve()来实现,其原型如下:ACAD::revolve(AcDbRegion Region,AcGePoint3d&axisPoint,AcGeVector3d&axisDir,doubleAngleofRevolution),其中参数Region表示指向前面生成的二维封闭实体面域对象的指针,axisPoint为旋转轴上的一点,axisDir为轴的方向矢量,AngleofRevolution为旋转角度(弧度)。
换热设备的零部件大多为绕旋转轴的回转体,因此可用二维多段线Polyline生成回转体的对称二维图,然后调用函数revolve()生成三维回转实体。
3 3 3 布尔运算(Boolean)
对于一些复杂的实体造型,可以在挤出和旋转法生成三维实体的基础上,通过一定的布尔运算来实现。布尔运算有3种:并(union)、交(subtract)、差(intersection)。在ARX程序中通过调用AcDb3dSolid类的成员函数booleanOper()来实现。其原型如下:ACAD::booleanOper(AcDb::BoolOperTypeoperation,AcDb3dSolid pSolid),其中参数operation为布尔运算类型,布尔并为AcDb::kBoolUnite,布尔交为AcDb::kBoolIntersect,布尔差为AcDb::kBoolSubtract,pSolid表示另一个参加布尔运算的实体的指针。
换热设备中大多数零部件非常复杂,需要联合运用挤出、旋转和布尔运算才能完成零部件的三维造型。下面通过延长部分兼做法兰的管板的三维实体造型,介绍换热设备零部件三维造型系统的具体开发过程。
4 三维造型实例
管板是换热设备中重要的部件之一,经常要对管板进行温度场和应力场的有限元分析,因此需要建立管板的三维模型,并根据分析结果不断的优化、修改管板的模型。如果用手工建模,势必将加大设计分析人员的枯燥的工作量,大大降低工作效率。而采用参数化程序建模,用户可以在很短时间内建立和优化修改模型。
管板是一块按照布管方式开了许多管孔的圆平板,管板的三维造型就是通过三维参数化绘图,在输入了筒体的公称直径DN,换热管的外径dh,管板的厚度H和布管方式等,直接生成管板的三维实体。下面以单壳程单管程的正方形方式布管的延长部分兼做法兰的管板为例,叙述管板三维造型程序的开发过程。
4.1 管板二维对象的生成
管板在结构上属于回转体,因此只需生成管板截面的一半即可,如图4所示。建立坐标系,给出图示各点的坐标,用函数AcDbPolyline()生成封闭的二维多段线,并生成二维图形域,调用函数revolve(),将此二维图形域绕Y轴旋转生成平板三维模型(未挖孔)。
图4 管板半截面示意图
4.2 管板的布管程序算法
以管子正方形排列的单管程布管为例,建立计算模型,如图5所示。
图5 计算模型
程序采用迭代的方法确定换热管的中心位置,其迭代过程如下。
4.2.1 确定迭代初值
中心布管奇数排列时,迭代式为:
x=x0,x=x+p
y=y0,y=y+p
中心布管偶数排列时,迭代式为:
x=x0+p/2,x=x+p
y=y0+p/2,y=y+p
式中x0,y0为迭代初值,根据管程情况取值;p为换热管中心距。经过迭代能够运算出每根换热管管孔的中心坐标(x,y)。
4 2 2 确定每根换热管中心位置
根据管程情况,确定x0和y0初值,根据中心布管奇数排列还是偶数排列,确定迭代公式,进行迭代循环。每一层迭代循环过程中,计数器开始累加换热管的总数sum=sum+1;直到
令y=y+p,进行下一层迭代。如此循环,直到为止。迭代循环结束时,计数器累加了所有的换热管根数sum。式中Dl为管板布管限定圆直径,其计算公式参考文献[5]。
确定了换热管中心位置后,调用函数createFrustum()生成以换热管中心为中心,以管板厚度为高的圆柱体。运用布尔差运算在管板实体中挖去每个圆柱体。其程序流程框架图如图6所示。
图6 程序流程图
4 3 生成螺栓孔和拉杆孔
根据以上方法,在延长部分确定法兰螺栓孔中心位置,生成圆柱体,运用布尔差运算生成螺栓孔。如法炮制,生成拉杆孔。
至此,管板三维造型已经完成。运用上述方法可完成换热设备其他零部件的三维实体造型系统。
5 系统的运行
在VC++6 0的环境下,运行该程序,得到一个管板设计 ARX动态连接库程序。启动AutoCAD2000,点击换热设备零部件三维造型系统下拉菜单中的延伸部分兼做法兰菜单项,AutoCAD将自动加载该 ARX文件,同时向AutoCAD内部命令堆栈中添加管板三维造型ARX程序的命令tubesheet。执行该命令,弹出管板三维造型对话框,进行人机交互,输入绘制管板的必要参数,按“三维造型”按钮,即可运行程序,生成管板的三维实体如图7所示。
图7 管板三维造型图
6 三维造型系统的应用
基于AutoCAD平台开发的换热设备零部件三维造型系统,能够直接利用AutoCAD的内核代码,共享AutoCAD2000的地址空间,具有较高的程序开发和执行效率。该系统具有非常友好的操作界面,运行该系统,通过人机交互的方式,输入必要的数据,能精确绘制零部件三维实体图形,通过修改设计参数,可随时修改创建模型。该系统准确、方便、省时,实现了从数据到图纸的计算机参数化绘图,在换热设备零部件设计和有限元分析中发挥了重要作用。
6.1 方便快捷的建模
在AutoCAD环境下手工建模需要花费大量的时间和精力,特别是运用ANSYS有限元分析软件对零部件进行温度场和应力场的有限元分析优化中,需要根据优化结果不断地修改三维模型,对一些复杂的三维模型,手工修改简直不可想象。而采用本系统,通过输入参数,系统能在很短时间内生成三维模型,修改优化后的几何参数,系统即可快捷地生成优化后的模型。实践证明,该造型系统在ANSYS软件的前处理建模中,克服了ANSYS软件对复杂三维实体造型的不便,大大节省了设计分析人员的时间和精力,提高了设计分析效率。
6.2 三维实体的空间真实感
二维图形不能够表达出三维物体的真实感,特别是对于复杂的零部件和装配后的部件,设计人员很难根据二维图形想象其空间位置关系。例如新型折流杆换热器的折流栅装置,由换热管、拉杆、和成组的折流栅装配而成,折流栅之间互成90°交错排开,结构极为复杂。采用三维造型系统,可生成折流栅装置的三维实体如图8所示,通过实体模型,用户可以清楚的看到折流栅装置的结构。
图8 折流栅装置三维模型
6 3 零部件装配的干涉检查
运用三维造型系统生成的三维实体进行换热设备三维动态装配时,能够通过零部件之间的连接和啮合状况判断零部件之间是否发生干涉和碰撞(例如管板、筒体和折流栅装置的装配),从而修改设计思路和设计模型。
7 结 语
运用VC++和ObjectARX2000技术、基于AutoCAD平台开发的换热设备零部件三维造型软件系统方便省时,界面友好,运行可靠。系统不仅能够生成标准零部件的模型,而且能够生成非标准零部件的模型,使设计人员摆脱了手工建模的枯燥和繁琐,大大提高了三维建模的效率;系统取代了ANSYS分析软件的前处理建模过程,解决了ANSYS软件手工建模复杂、重复、繁琐的难题。实践证明,系统在三维实体建模、换热设备零部件的有限元分析以及换热设备动态装配中发挥了重要作用,大大提高了设计分析效率。
|