基于AutoCAD ARX的船闸闸首三维设计
针对国内船闸三维设计可视化效果不足的问题,尝试对船闸闸首三维设计技术进行可视化结构设计的研究。采用C++的面向对象特性与AutoCAD提供的ObjectARX开发工具相结合,研究闸首三维模型算法、闸首稳定性验算程序算法,实现结构稳定性计算结果输出,开发闸首三维模型设计系统。通过工程实例进行验证分析,成果直观,能够很好地辅助闸首结构设计,是对水工建筑物三维可视化设计技术的一种有益探讨。
当前我国水运经济快速发展,但是内河航道开发里程偏少,而且等级偏低,这与经济的发展趋势极不相称,严重制约内河运输的发展。为解决内河水运的发展瓶颈,国家将大力发展内河航道建设,势必要改扩建一批旧船闸和兴建一批新船闸。
已有的船闸设计系统的结构模型较多采用二维几何模型,模型表达信息详细,但是设计过程抽象不直观,给闸首这种带有复杂廊道的结构设计表达、修改和后续计算带来许多困难,系统的通用性和普遍性较差。而三维CAD技术的发展和应用为设计结构的表达、修改和后续计算提供了很多方便,但是现有的船闸设计三维模型多是出自商用有限元软件,只考虑与力学相关的结构,为简化模型,对细部结构的表达能力不足,同时因模型信息不全,造成模型数据可被其他软件重复利用性差,常常导致相同数据的多次重建。
本文探讨在船闸闸首设计中使用三维技术。由于闸首的类型多,以人字门船闸闸首研究为例,介绍通过AutoCAD 二次开发程序建立闸首三维模型的方法,程序建立的模型形象、修改容易、可表达的细节程度高、模型数据易于被用作其它用途。本文的算例利用模型数据进行闸首稳定计算,以提高闸首设计的形象性和效率。
1、AutoCAD二次开发技术应用
1.1、AutoCAD二次开发工具选择
AutoCAD 提供了4种常用的API开发工具,Visual Lisp、VBA(VB)、ObjectARX和.NET,开发工具的特点如下:LISP技术产生较早,但是其语法不常见不直观,特别是对于复杂对象,其开发功能不强;VB(A)采用ActiveX接口,具有开发简单直观的特点,但是开发功能很有限,数据图形创建速度慢;ObjectARX采用面向对象方法开发,直接调用AutoCAD底层函数,其开发灵活,程序运行速度快;.NET通过封装ObjectARX函数实现,开发方式使用较晚,未完全封装ObjectARX函数,开发能力具有不确定性。
由于闸首三维结构复杂,结构对象的关联因素较多,再加上三维模型数据量大,对程序运行速度要求高,因此采用ObjectARX作为闸首三维设计程序的开发工具。
1.2、ObjectARX程序三维模型创建
通过使用AcDb3dSolid类,创建三维模型主要有3种方法:
1)直接通过提供三维实体所需的参数创建,主要是生成基本的三维实体。此类函数创建的实体的形心为坐标原点,这类实体是指长方体、平截头体、球体和楔形体等。
2)通过基本的二维对象生成三维实体。主要的方法是对二维对象的拉伸、扫掠、旋转和通过一系列二维对象放样。二维对象在此主要指面域。
3)通过对已有实体的变换、剖切和布尔运算等操作实现新实体的创建。
1.3、三维模型数据共享与模型信息提取
模型创建的参数保存于文件数据库中,可被除建模之外的用途共享,建立的模型的信息可通过程序提取,也保存于数据库可供多用途共享。利用模型数据进行闸首稳定计算时,程序中提取可供共享的三维模型信息主要有实体的质量、质心、断面的惯性距等。实体的质量、质心等参数通过使用实体对象的特性查询函数getMassProp( )实现。
实体的断面惯性距信息,通过剖切体实体获得剖切断面,通过使用剖切断面特性信息查询函数getMassProp()实现。断面的创建与获取主要用到以下3个函数:
1)实体切割函数:输入参数为切割平面,输出参数为切割获得的两个新实体。getSlice(const AcGePlane& plane, boolAdesk::Boolean getNegHalfToo, AcDb3dSolid*&negHalfSolid);
2)获取实体断面函数:输入参数为切割平面,输出平面切割实体形成的断面。getSection(const AcGePlane& plane,AcDbRegion*& sectionRegion);
3)平面创建函数:在实体切割和取实体断面时常用,此函数提供参数为面上点、X和Y向量。AcGePlane(const AcGePoint3d& or, constAcGeVector3d& uAxis, const AcGeVector3d& vAxis);
4、结语
本文使用AutoCAD软件的ObjectARX开发工具,采用面向对象方法开发了相应的闸首三维可视化结构设计程序。本系统使用简单,可进行批量优化设计,可使用同一个数据模型自动完成多种设计任务,设计过程及其成果直观形象,设计修改容易,可大大降低设计工作量,提高设计效率,有较高的实用价值。
本文开发的闸首三维设计程序的后续工作将进一步完善和细化闸首三维模型的构建,并把三维模型信息共享用于闸首结构二维施工图出图、闸首四维施工模拟和闸首结构有限元分析等功能。