基于OpenGL的自升式平台参数化建模
2017-12-29,,
, ,
(中国石油大学(华东) 储运与建筑工程学院,山东 青岛 266580)
基于OpenGL的自升式平台参数化建模
李云鹏,辛露,曹宇光
(中国石油大学(华东)储运与建筑工程学院,山东青岛266580)
针对国内自升式平台设计开发过程中存在的无法快速建模、工作效率低等问题,提出一种基于三维图形库OpenGL实现海洋平台快速三维建模的方法,并在VB环境下编写自升式平台三维参数化建模软件。结合自升式平台结构特点,建立平台结构参数模型以及标准化模型元件库。通过人机交互操作选择并输入平台类型及相应平台构件参数,自动得到自升式平台三维模型。基于OpenGL三维图像操作功能完成对自升式平台模型的三维几何操作设计,实现对平台模型三维交互式观察,便于对模型进行修改,完善设计方案。
自升式平台;参数化;VB;OpenGL
0 引 言
我国陆地油气资源勘探开发程度较高,向海洋进军,开发新的油气资源成为必然趋势。在海洋油气资源的勘探与开发中,自升式钻井平台已逐渐成为使用最为广泛的移动钻井设施之一。国外在自升式钻井平台设计和建造方面起步早,在平台建造数量和设计技术等方面领先于国内。近年来,CAD技术迅速发展,三维图形技术已经成为主流,国外有实力的软件公司针对船舶行业推出专用的船舶三维CAD软件包括:TRIBON,FORAN,CATIA等,能够实现平台的快速三维设计与模型搭建,极大提高工作效率[1]。
在国内,船舶行业许多设计人员也针对自升式钻井平台的三维建模与设计做了大量研究与尝试。高定全[1]在CAD平台下基于船舶专用建模软件ARX进行二次开发,编写软件实现海洋平台的快速建模;耿元伟[2]用VB对CATIA V5进行二次开发,以基于特征的参数化建模方法实现自升式钻井平台的三维建模。总体上看,目前国内海洋工程行业仍大多通过造船或钢结构专用软件建立自升式平台三维模型,工程中所需要的大量原始数据和规范需要手动查询,在实现三维建模可视化、智能化、提高工作效率等方面都尚处于较低的层次。因此,探索研究快速建立海洋平台三维模型的技术和方法,提高建模工作效率,对于海洋平台的设计具有明显的工程应用意义。
开放性图形库(Open Graphic Library, OpenGL)是一个三维计算机图形库,可供用户实现三维图形编程、实体仿真及三维动画等功能,并具备几百个指令和函数,可以快速构造出三维实体的静态及动态图像,并通过对模型实时交互性操作实现模型的修改。使用VB/OpenGL能够创建高质量的三维图形,可以实现对自升式海洋平台的快速建模与设计。
本文主要研究自升式平台三维模型建立方法及建模软件开发,即针对自升式平台结构特点,基于OpenGL图形库与计算机图形学,在VB环境下建立平台标准元件库与图形操作界面,通过VB界面输入模型参数或调用软件元件库,快速完成平台三维模型的建立。其中,软件的标准元件库中包含工程所需要的数据,如型钢特性和材料特性等。设计者在平台构件设计过程中,不需要查阅规范、设计手册,可以通过检索元件库中的数据实现平台构件的快速建模。同时,在建模过程中或建模结束之后,可以通过调用OpenGL库函数实现对平台模型的三维全方位展示[3],对初步设计得到的模型进行完善与修改。
1 VB/OpenGL建模工作原理
OpenGL函数库遵循C语言调用约定,因此大多数OpenGL函数的使用是在C语言中实现的,但是由于VC对于一般非计算机专业的编程人员来说难以掌握,许多设计者选择使用基于对象的VB语言进行OpenGL的开发设计,能够使程序开发显得更简单方便[4]。
1.1 开发环境构建
在VB中实现OpenGL图形开发,有3种方法[5]。第1种方法是直接从动态链接库中访问OpenGL函数和命令;第2种方法是把OpenGL函数库包装成OCX控件,注册安装在VB环境中,通过控件进行调用;第3种方法是使用第三方函数库(Vbogl.tlb类型库)。本文采用目前比较常用的第3种方法。首先,在VB工程中完成设备初始化过程,即在VB的集成环境中引用Vbogl.tlb类型库;然后初始化OpenGL场景模式,在此过程中主要设置像素格式、建立渲染描述表、设置投影模式、清除缓冲区等[3]。
1.2 OpenGL工作原理
使用OpenGL完成三维建模,一般将所有几何图元使用其顶点进行描述,OpenGL的运算器针对几何图元的顶点进行计算,进而得到三维图形。其基本工作流程如图1所示。
图1 OpenGL基本工作流程
在绘制图元时,主要用到的建模命令[6-7]有:GL_QUADS,GL_LINELOOP,GL_TRIANGLES,GL_POLYGON和GL_CYLINDER等。对于自升式平台结构,主要使用四边形命令GL_QUADS绘制主要的基本板梁结构,使用闭合折线命令GL_LINELOOP绘制平台各构件的边框,使用圆柱命令GL_CYLINDER绘制桩腿,使用凸多边形命令GL_POLYGON绘制平台内部的不规则结构。在OpenGL中没有绘制圆形的命令,需要使用凸多边形命令GL_POLYGON循环逼近得到圆形[8]。
2 基于OpenGL建模系统的实现
2.1 模型参数控制
自升式海洋平台结构复杂,参数化建模不易实现。实现平台参数化建模的关键是将平台关键特征信息使用几个主要参数进行表征,次要特征信息可以从主要参数中得到,避免数据冗余。根据参数化造型理论,自升式平台三维建模确立的主要特征参数有:形状参数、位置参数和实体特征参数,根据这些参数可以建立平台结构参数模型,如图2所示。
图2 平台结构参数模型
确定参数模型后,需要确定各参数之间的层次关系,将参数划分为主参数和次级参数,使少量主要参数控制尽量多的其他参数[9]。因此,根据自升式海洋平台结构特点,设定船长、型宽和型深等平台主尺度作为主参数,设定平台结构的各部分板厚、梁结构参数等作为次级参数。用户通过手动输入主参数得到模型,主参数具有独立性,对平台形状起决定性作用,平台形状及与其相连的所有构件都会随主参数的改变而发生变化[2]。对于次级参数,可在确定主参数的情况下通过查阅规范或数学计算得到。特别地,对于平台内部的特殊结构,可通过人工输入确定次级参数完成建模。
2.2 元件库设计
自升式平台结构的建模过程中会重复使用大量标准规格型号的型材构件,因此在设计初始阶段建立平台结构元件库对常用型材进行管理可以大幅减少建模工作量[13]。平台主体内主要结构零件有桁材、骨材及横梁等,主要涉及到工字钢、T型材、角钢等常用型材。查阅海工行业常用型材规格表,将平台主要结构零件的结构尺寸封装在软件内部,并设定相应规格型号。在软件使用过程中,可通过检索型材类型等信息实现零件的快速建模,能够有效提高建模速度[10]。
平台型材零件等的建立与设计主要通过调用标准元件库和参数化输入来实现,对于一般自升式平台模型,可通过直接调用标准元件库内的板、梁构件组合而成。为满足设计需求,不在元件库内的特殊形状元件可通过输入构件的关键参数进行建模[7]。
2.3 基于OpenGL的材料特性控制
自升式平台模型由数量众多的板、梁结构组合构成,板、梁结构的数量以满足平台模型表达的要求为限。在OpenGL中,可以通过绘制矩形面对其结构进行描述,每个矩形面均可表示为顺时针或逆时针记录的4个顶点的屏幕坐标,在进行建模的过程中,通过选定构件方向、大小及中心点位置得到矩形面的顶点坐标,完成绘图[11]。同时在对OpenGL结构进行渲染时,每个面还要包括光照和材质信息以及颜色信息,即RGB(Red-Green-Blue)值。渲染的光照和材质是决定场景渲染质量非常关键的环节,通过设定光照位置、光照种类以及材质反光度等保证模型显示清晰[12]。颜色信息RGB在0~255之间,对应OpenGL中颜色渲染函数为0~1的区间数。在使用OpenGL对自升式平台进行三维建模时,选取不同渲染的材质及颜色信息,用以表征不同结构的厚度信息和材料特性等。
3 基于OpenGL建模系统的运行
3.1 参数化建模过程
基于设定的平台结构参数模型,按照参数的层次关系,采用自上而下的方式进行平台建模。按照典型形状将自升式钻井平台进行分类,主要包括:三桩腿式平台、四桩腿式平台以及五桩腿式平台等[13]。本文选择某三桩腿式平台作为模型实例,其主尺度为:船长52 m,型宽46 m,型深5.2 m。
3.1.1 平台主体结构建模
图3 平台主体结构
图4 桩靴结构图
图5 固桩架结构图
图6 平台整体结构模型
按照平台参数层次关系,先输入平台主尺度,用于结构建立时类型的选择和部分参数的计算。在基本参数输入界面中选择平台类型并输入平台主尺度等参数后,程序内部会自动生成相应数据信息。根据所选平台类型,结合程序内部对应的平台模型草图,按照平台模型草图输入平台参数信息,得到相应模型部件。平台参数信息主要有:平台外部轮廓信息、桩腿参数信息、桩靴参数信息和固桩架参数信息。
(1) 输入平台外部轮廓信息。它决定了平台的外形轮廓形状,包括船艏长和船侧舷长等。在确定这些参数之后,使用OpenGL中的四边形命令GL_QUADS和凸多边形命令GL_POLYGON完成对平台主体的建模,得到平台主体模型,如图3所示。
(2) 输入平台的桩腿孔参数信息。主要包括:桩腿孔位置信息、形状信息和桩腿长度等。桩腿孔位置由桩腿坐标确定,形状信息对应平台围阱区形状,分为圆形和正多边形:圆形桩腿孔由半径控制形状;正多边形桩腿孔由外接圆半径以及边数确定形状。对于桩腿孔部分及桩腿结构,使用圆柱命令GL_CYLINDER和凸多边形命令GL_POLYGON完成建模。需要注意的是,对于建模过程中需要的圆形面,需要使用凸多边形命令GL_POLYGON通过VB程序中的循环逼近得到。
(3) 输入桩靴特征信息。主要包括:桩靴形状信息和桩靴高度等。桩靴形状信息主要包括桩靴外形轮廓,分为:锥形、圆形和正多边形等。以正六边形桩靴为例,需要输入多边形边数及外接圆半径,通过凸多边形命令GL_POLYGON得到桩靴整体模型,如图4所示。
(4) 输入固桩架特征信息,建立固桩架模型。通过圆柱命令GL_CYLINDER完成固桩架主体圆筒模型建立;对于结构相对复杂、形状不规则的环筋、纵筋,以及固桩架与甲板之间连接的部分,在确定好各个结构之间的连接关系后,按照由外向内的方式通过凸多边形命令GL_POLYGON完成建模,得到固桩架模型如图5所示。
按照上述建模步骤完成对平台主体各部分结构建模,得到平台整体模型如图6所示。
3.1.2 平台内部结构建模
在完成平台主体结构建模后,对模型内部板、梁组合结构进行建模。该部分主要分为水密舱壁建模,主体内部桁材、骨材及横梁部分建模以及桩靴内部结构建模。
(1) 按照自升式平台结构需要,首先对平台主体内部水密舱壁进行建模。水密舱壁按照约束特征分为纵舱壁、横舱壁和子舱壁,其主要特征为:横舱壁与纵舱壁的端点均与平台首尾端或舷侧相连,子舱壁的首尾两端在纵舱壁或横舱壁上[2]。在对平台水密舱壁进行建模的过程中,首先选定要建立的舱壁类型,然后根据不同舱壁类型的特征进行建模。横舱壁通过输入肋位确定位置,纵舱壁通过输入其与中剖面之间的距离确定位置。完成横舱壁、纵舱壁建模,得到水密舱壁主要结构模型,再进行子舱壁建模。对于子舱壁建模,依据用户需要对舱室进行进一步划分,得到所需要子舱壁的详细位置信息,确定子舱壁类型后,输入其起始及终止位置,即可得到子舱壁模型。完成所有舱壁建模之后,建立各水密舱壁之间的位置约束,从而实现尺寸驱动,以节省模型修改所需时间。水密舱壁建模过程中,依据平台主体内部舱室划分情况,同时将平台甲板及底板进行划分,如图7和图8所示。
图7 甲板划分情况 图8 底板划分情况
在确定平台主尺度的前提下,根据舱壁约束特征,首先依据距中剖面距离以及所在肋位建立纵舱壁与横舱壁,然后根据平台设计需要确定子舱壁位置,输入其起始位置和终止位置信息完成建模。这一过程中主要使用OpenGL中四边形命令GL_QUADS和凸多边形命令GL_POLYGON,在程序内部将所输入参数转化为建模所需的顶点信息,完成水密舱壁建模。水密舱壁结构如图9所示。
图9 水密舱壁
(2) 完成平台主体结构与水密舱壁建模后,对平台内部桁材、骨材及横梁部分进行建模。平台内部结构由3大部分组成:板材设计部分、骨架设计部分和纵骨设计部分。三桩腿自升式平台主体内部梁结构主要为T型钢。对横梁及骨架等结构建模时,首先结合梁结构的腹板宽度、腹板厚度、面板宽度和面板厚度等4个参数选择型材规格,然后根据梁的长度完成建模。
在进行梁结构建模时,首先搭建遍布整个平台甲板或底板的横梁结构,然后根据水密舱壁建模得到的舱室划分情况图,依次选择各个舱室,按照平台各舱室设计要求建立各个主要舱室内的桁材与骨架结构。梁结构的建模过程首先要确定梁的主方向,然后在标准元件库内检索并选择梁的型材规格,最后输入梁的长度完成模型创建。对于方向为平台主体长、宽、深等3个主方向的梁结构,建模方法较为简单:选定梁结构的方向之后通过VB循环嵌套的方式即可完成该舱室内相同方向的梁结构的搭建。对于船侧舷部分的梁结构,在进行平台主体结构建模时,软件将通过用户输入的船艏长和船侧舷长等主尺度参数,自动计算生成船侧舷角,在OpenGL中通过旋转变换命令glRotatef将建模坐标系旋转至所需角度,然后进行船侧舷部分梁结构搭建。完成所有梁结构搭建之后所得模型如图10所示。
图10 梁结构
(3) 对于桩靴内部结构建模,方法与平台主体内部结构类似。依次输入桩靴内部主要隔板位置信息得到桩靴主体结构,再根据桩靴内部结构划分输入骨架等位置信息完成桩靴内部梁结构建模。
3.2 模型显示与几何控制
3.2.1 平台模型显示
本文的三桩腿式平台的主要参数为:船长52 m,型宽46 m,型深5.2 m,肋距0.6 m,纵骨间距1 m。共设计2道左右对称的纵向舱壁,与中剖面之间距离为7.5 m;4道横舱壁,分别位于4#,22#,34#,86#肋位;还设置了2道左右对称的斜舱壁、5道横向子舱壁以及4道纵向子舱壁。
确定好平台结构设计所需的各项参数之后,按照上述建模方法即可得到平台的三维结构模型。同时,在建模过程中,可以通过VB/OpenGL程序界面控制选择不同建模进程,实时得到平台整体或各部分模型图,方便模型的修改,从而加快平台设计进程[7]。
3.2.2 模型三维几何控制
三维几何操作是计算机图形学的一个重要组成部分,OpenGL通过双缓冲机制对三维模型实现三维操作效果[14]。在建模过程中,利用OpenGL的入栈和出栈命令,在画图子程序中结合OpenGL多层嵌套和显示列表方法,可以不直接改变平台模型各部分结构的顶点坐标,而是保持图像坐标不变,通过平移原点、旋转坐标和平移坐标实现对平台模型的旋转、平移、缩放等操作,并可以通过改变OpenGL窗口中观察点坐标以及视点方向矢量的方法,实现对平台模型的全方位观察[2],便于对设计方案提出修改意见,进而完善平台模型。以视角切换为例,通过OpenGL的glulookat函数设定观察点位置、观察方向及模型的矢量方向,从而实现对三维模型不同视角的观察[10]。
4 结 论
本文基于面向对象技术,采用参数化方法对自升式钻井平台三维建模技术和方法进行研究,在VB环境下,基于OpenGL图形库建立一套自升式钻井平台三维参数化建模软件。通过研究,可得出如下结论:
(1) 所开发软件用于自升式钻井平台三维建模,操作简便,在平台设计初始阶段可以大幅减少重复劳动,提高工作效率,具有较好的工程意义。
(2) 根据自升式钻井平台结构特点,确定平台结构参数模型,划分各参数层次关系,在建模过程中实现模型的尺寸约束,避免数据的冗余,降低建模的难度。
(3) 建立平台标准化元件库,用以存储平台常用型材规格等。设计者在建模过程中可以通过检索型材的方式实现平台构件快速建模,减少重复工作量,提高建模效率。
(4) 基于OpenGL对平台模型的三维操作能力实现对平台模型的视图等操作,便于设计者观察模型及对模型进行修改完善。
[ 1 ] 高定全. 基于ARX的自升式平台参数化建模方法研究[D]. 大连:大连理工大学, 2008.
[ 2 ] 耿元伟. 基于CATIA的自升式平台参数化建模方法研究[D]. 大连:大连理工大学, 2006.
[ 3 ] 石琼, 沈春林, 谭皓. 基于OpenGL的三维建模实现方法[J]. 计算机工程与应用, 2004, 40(18):122-124.
[ 4 ] 杜义君, 苏鸿根. 基于Visual Basic的OpenGL三维图形开发环境的构建及其应用[J]. 塔里木大学学报, 2009, 210(01):35-39.
[ 5 ] 周丽华. 在VB中进行OpenGL程序设计[C]//2004计算机应用技术交流会议论文集,2004.
[ 6 ] LI K, WANG J, ZUO K, et al. Research on Dam Simulation System Based on OpenGL[J]. Physics Procedia, 2012, 24(16):1801-1806.
[ 7 ] HUANG R, WANG R, WU X, et al. Design of 3D Visual Reservoir Modeling System Based on VB OpenGL Library[J]. Proceedings of International Symposium on Computer Communication Control & Automation, 2013, 68(12):210-212.
[ 8 ] 杨键, 陈利学, 龚捷. 基于OpenGL的三维图形绘制和3D建模[J]. 软件导刊, 2009(07):168-170.
[ 9 ] ZHONG J, CHEN K, CHEN Y, et al. Software Development of Modeling Assistant for Continuous Suspension Bridges with Multi-Pylon[J]. Engineering Sciences, 2012, 10(03):55-59.
[10] 孙永刚, 吴桂霞, 李博超. 斜拉桥基于OpenGL的参数化实现三维模型的建立[J]. 交通世界, 2009(05):96-97.
[11] RICHARD S,WRIGH J, LIPCHAK B, et al. OpenGL超级宝典[M]. 北京:人民邮电出版社, 2010.
[12] 吴斌. OpenGL编程实例与技巧[M]. 北京:人民邮电出版社, 1999.
[13] 于雁云. 船舶与海洋平台三维参数化总体设计方法研究[D]. 大连:大连理工大学, 2009.
[14] QI M X, HUANG L M, XU L B. Virtual Simulation Technology of Semi-Submersible Drilling Platform Based on VRML[J]. Oil Field Equipment, 2011.
ParametricModelingofJack-UpPlatformBasedonOpenGL
LI Yunpeng, XIN Lu, CAO Yuguang
(College of Pipeline and Civil Engineering, China University of Petroleum, Qingdao 266580, Shandong, China)
Aiming at the problems that can not be quickly modeled and the inefficiency in the design of jack-up platform, method for rapid 3D modeling of jack-up platform is presented based on 3D graphics library OpenGL. A 3D parametric modeling software for jack-up platform is developed in VB. According to the structural characteristic of jack-up, the structure parameter model and the standard structure template of the platform are established. The 3D model of the jack-up platform is automatically obtained by selecting and inputting relevant information of the platform through the man-machine interactive operation. Based on the 3D image manipulation function of OpenGL, the 3D geometric operation of jack-up platform is realized for a further improvement of the model and the design scheme.
jcak-up platform; parametric ; VB; OpenGL
1001-4500(2017)06-0080-07
2017-07-21
山东省重点研发计划项目“深海水下设备运输与安装技术研究” (2015GSF115024);中央高校基本科研业务费(14CX02208A)
李云鹏(1993-),男,硕士研究生
P75
A