您所在的位置:e-works首页 > 产品创新数字化(PLM) > CAD

基于AutoCAD的换热设备零件三维造型

发表时间:2008-6-30 CAD世界 来源:CAD世界
采用AutoCAD二次开发技术,在VisualC++6 0和ObjectARX 2000的环境下,开发了换热设备零部件的三维造型系统。运用挤出、旋转和布尔运算等方法,在给定基本参数条件下,可自动创建换热设备零部件的三维实体模型,修改设计参数,用户可以方便地修改三维模型。系统方便、省时,界面友好,运行可靠,实现了从数据到图纸的计算机参数化绘图。实践证明,系统为换热设备零部件的有限元分析前处理建模大大节省了时间,提高了设计分析效率。

    对于一些简单的实体,如长方体、圆柱体、球体等,可以借助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 生成螺栓孔和拉杆孔
   
    根据以上方法,在延长部分确定法兰螺栓孔中心位置,生成圆柱体,运用布尔差运算生成螺栓孔。如法炮制,生成拉杆孔。
   
    至此,管板三维造型已经完成。运用上述方法可完成换热设备其他零部件的三维实体造型系统。

本文为授权转载文章,任何人未经原授权方同意,不得复制、转载、摘编等任何方式进行使用,e-works不承担由此而产生的任何法律责任! 如有异议请及时告之,以便进行及时处理。联系方式:editor@e-works.net.cn tel:027-87592219/20/21。

责任编辑:童伟