搜索
您的当前位置:首页正文

拱桥三维建模方法

来源:榕意旅游网
拱桥三维建模方法

朱德荣

【摘 要】Based on the analysis of structural features of arch bridges and constructive solid geome-try,the modeling method of combining three-dimensional graphics transformation with two-di-mensional region sweeping is presented for generating three-dimensional solids.Closed graphic re-gion and sweep path are created by utilizing Visual C++,ObjectARX and modeling parameters. The solid components of constant section and variable cross-section are then formed by sweep rep-resentation.Finally,the whole arch bridge is erected by a series of transformation methods inclu-ding move and mirror.An example of bow-string arch bridge is proposed to illustrate the modeling process,which provides reference for similar practices.%对拱桥结构特点进行分析,依据构造实体几何法理论,提出三维图形变换结合二维面域推移生成三维实体的建模方法,利用 Visual C++和 ObjectARX 工具,通过建模参数,创建封闭图形区域和推移路径,由推移表示法形成桥梁等截面或变截面结构立体,运用平移和镜像等变换方法组装整桥,并以拱桥建模为例实现参数化三维建模,为桥梁三维建模提供新的思路。

【期刊名称】《兰州交通大学学报》 【年(卷),期】2014(000)003 【总页数】6页(P150-155)

【关键词】桥梁结构;三维建模;ObjectARX;图形变换;布尔运算 【作 者】朱德荣

【作者单位】兰州交通大学 土木工程学院,甘肃 兰州 730070; 中铁上海设计院集团有限公司,上海 200070 【正文语种】中 文 【中图分类】U442.5

几何造型的基本理论和方法自上世纪70年代开始创立,经过几十年的发展和研究,现已广泛地应用在土木建筑、动画制作、人体造型等领域的三维设计和立体图形显示.它是计算机及其图形工具描述物体形状、设计几何形体、模拟物体动态处理过程的一门综合技术.

文献[1]通过桥梁结构三维建模,对交互式建模方法进行了归纳总结,运用VTK可视化工具包实现了桥梁三维信息管理.文献[2]在研究三维模型和数据信息驱动的基础上,开发了较完善的基于Web的桥梁可视化管理系统.文献[3]对各种铁路桥梁结构形式和特点进行了分析.文献[4]探讨了三维空间模型及其构模方法,并对比分析了目前常用的多种三维建模技术的优缺点及适用场合.文献[5]采用参数化方法对斜拉桥进行三维建模,以VC++为平台,融合OpenGL图形技术,实现了斜拉桥三维可视化.文献[6]以扫描法和参数化特征造型为桥梁模型的主要造型方法,对桥梁三维造型和视景仿真的关键技术进行了研究,并在VC++平台上结合OpenGL图形库开发仿真应用系统.文献[7]提出控制变截面梁桥大样形状的方法,并运用三维参数化建模软件MDT6.0和VBA 开发工具实现变截面梁桥造型设计.文献[8]在AutoCAD 与3DMAX中进行建模,对建筑物三维模型进行

了可视化和信息化.在基于VC++和Object ARX 的建模方面研究较少.

本文在研究实体模型构造法的基础上,对系杆拱桥进行三维建模,探讨拱桥的参数化建模及图形处理方法,运用VC++2005 语言和Object ARX 2007开发工具包,对AutoCAD 进行二次开发,建立实体图形数据库接口,实现系杆拱桥的参数化自动建模,为桥梁三维可视化和信息化平台的建立奠定图形及数据基础. 1 基于Object ARX 的实体构造方法

构造实体几何法(CSG:Constructive Solid Geometry)是当前许多CAD/CAM 系统采用的表示三维形体的一种方法.CSG 用系统定义的简单几何形体及正则集合运算,可构造出复杂实体.基本思想是:一个较复杂三维形体可以由一些基本形体的并集、交集、差集等集合运算来正确表示.

在Object ARX 工具中,基本体和简单体都可用AcDb3dSolid类的成员函数创建.基本体可由成员函数和定形尺寸直接生成,简单体可通过拉伸、扫掠、旋转及放样等方法形成,通过布尔运算生成复杂形体. 1.1 按指定的高度拉伸立体的方法

若将一个平面区域沿着垂直于该平面的直线段推移得到一个柱体,称为平移扫掠,也叫拉伸.这种方法可用于生成棱柱、圆柱等立体,如桥梁的等截面梁、多边形基础、桩柱等结构.注意,柱体的拉伸高度必须垂直于面域,否则,需进行用户坐标(User Coordinate System,缩写:UCS)变换.由平面区域拉伸生成三维立体的Ac Db3dSolid类成员函数为

其中:p Region 为面域指针;height为推移高度值;当沿高度推移时,参数taper为0,则为柱体,非零时沿高度呈线性递减截面. 1.2 按指定路径扫掠形成立体

如果平面区域沿任意曲线推移,则称为扫掠.这种方法形成等截面立体.可应用于形

成等拱桥、钢结构杆件和管线等.由平面区域扫掠形成三维实体的函数为

extrudeAlongPath(const AcDbRegion*region,const AcDbCurve*path). 其中:参数region 表示指向面域对象的指针;path表示扫掠路径,可根据具体路径,选择AcDb Line、AcDbSpline、AcDb2dPolyline 及AcDb3dPolyline等类,创建不同的路径.

另外,用旋转法可形成回转体,用放样方法可以生成线性或非线性变截面立体. 1.3 复杂三维实体的组装方法

由基本体函数或二维面域拉伸、扫掠等方法只能生成一些单个的简单体,所以,要构成复杂体就必须由简单体通过布尔运算来实现.对立体进行布尔运算使用AcDb3dSolid类的成员函数:booleanOper(Ac Db::Booloper Type operation,AcDb3dSolid*pSolid);其 中,operation 取 值 为AcDb::k Booml Unite、AcDb::k BoolIntersect 和AcDb::k Bool-Subtract.该函数功能是进行两个三维立体间的布尔运算,设pSolidl和pSolid2分别表示指向两个三维实体的指针,若求二者的并集,方法如下:

pSolid1- >boolean Oper(AcDb::k Booml Unite,pSolid2);函数执行结果是将pSolid1所指的立体与pSolid2所指的立体叠加,形成新的复杂体.pSolid1指向新的实体,pSolid2 所指的实体将从数据库中删除. 2 拱桥上部结构建模

如图1,为拱桥全桥布置立面图,拱桥采用50 m钢管混凝土系杆拱.拱肋为Φ80 cm,δ=16 mm;横撑Φ60 cm,δ=16 mm;斜撑Φ40 cm,δ=16 mm;吊杆为55-Φ5钢丝束,间距500 cm.Φ 为钢管外径,δ为钢管壁厚,矢跨比1/5,系杆采用预应力混凝土结构.图2为拱座构造图与钢管、纵梁、端横梁和中间横梁的断面图,图中的设计数据和尺寸为该桥的建模提供了数字基础.

根据拱桥上部结构的特点,在对拱肋、横撑、斜撑与吊杆进行建模时,采用沿路径

扫掠的方法;在形成纵梁、横梁、支座和桥面板时,采用沿高度拉伸的方法.注意,纵梁、中间横梁及端横梁的两端截面形状与中间段不同,则需先分段建模,然后再用布尔运算的并集形成整体. 2.1 拱肋、横撑、斜撑及吊杆建模 2.1.1 拱肋建模数据获取

钢管拱的拱肋轴线各顶点坐标的获取方法有两种,一种是根据拱肋理论轴线方程y=-0.000 16x 2+0.8x,将坐标原点定在左拱脚,计算拱肋轴线上一定间距的各点坐标,见表1为拱肋轴线坐标表,将轴线各顶点坐标保存在数据文件中,以供生成轴线使用.另一种方法是采用实体数据获取技术,选取图中的轴线,自动获取各顶点坐标.方法如下:

图2 拱座构造、梁和钢管断面形式Fig.2 Section of arch bearing structure,beam and steel pipe

//选择拱肋轴线实体,其中,en为实体名,pt为轴线上的拾取点

表1 拱肋施工坐标表Tab.1 Coordinate table of arch rib construction 2.1.2 建立拱肋等杆件定位轴线

上部结构三维建模时,若采用西南等轴测图,将坐标原点定在左拱脚处的拱肋轴线与纵梁轴线的交点,如图3.在立体图中,拱肋轴线的高度为Z 坐标,而在上述的平面图中获取的拱轴线高度为Y 坐标,所以,需将UCS由x(1,0,0),y(0,1,0),z(0,0,1)变换为x(1,0,0),y(0,0,-1),z(0,1,0),使Z 轴正方向指向前方,则XOY 面为竖直面,然后由设计数据确定拱肋、横撑、斜撑与吊杆轴线的空间位置,作为扫掠立体的路径. 图3 拱肋轴线图Fig.3 Diagram of arch rib axis

2.1.3 拱肋、横撑及斜撑等建模

形成钢管立体时采用扫掠建模,这种方法将面域沿任意曲线推移形成等截面立体,面域可以是圆、椭圆、多边形等,可用该方法形成拱桥的拱肋、横杆、斜杆,钢结构的杆件等.具体方法如下: 1)形成面域

该拱桥的拱肋、横撑及斜撑为钢管,则截面图形为圆,创建圆的对象的方法为: AcGe Vector3d normal(0.0,0.0,1.0);//圆的法向量 AcDbCircle*pCircle=new AcDbCircle(center,normal,r); 生成面域方法如下:

定义空指针数组:AcDb VoidPtr Array circle,p Region;

获得指向封闭边界的空指针数组:circle.append((void*)p Circle); 根据封闭边界生成面域对象:AcDb Region::createFromCurves(circle,p Region);

获取面域的指针:Ac Db Region* p Region =AcDb Region::cast((AcRx Object*)p Region[0]);

注意,p Circle指向不同的类对象,就生成相应的面域. 2)创建扫掠路径

扫掠路径可为任意曲线,本例中,拱肋轴线可采用样条曲线或多段线.若拱肋轴线采用AcDbSpline类样条曲线,则创建方法为AcDbSpline*pSpln=new AcDbSpline(pts);其中,pts为各顶点坐标.横撑、斜撑和吊杆轴线都用直线:创建直线对象:AcDb Line*p Line =new AcDb Line(start Pt,endPt);其中,startPt,endPt为轴的空间坐标端点. 3)生成扫掠体并设置颜色

创建拱肋实体:p3dObj->extrudeAlongPath(p Region,pSpln);

创建横撑、斜撑及吊杆:p3d Obj1- >extrude AlongPath(p Region1,p Line);

其中:p Region1可为横撑、斜撑及吊杆圆截面的面域,p Line为扫掠路径. 设置颜色:立体创建后,需添加到图形数据库中,并可设置颜色.方法为:p3d Obj->setColor(col);其中,col为颜色号.

钢管的形成方法为用钢管的外圆和内圆构成的面域,分别沿着钢管的轴线生成两个扫掠体,再将两个立体差集形成钢管,如图4a所示. 2.2 沿桥梁纵向的纵梁等的建模

如图4,沿桥梁纵向的结构包括:纵梁、人行道板、引桥空心板梁及栏杆等.拱座连接拱肋、纵梁和端横梁,两根纵梁之间由端横梁与中间横梁连接,桥面板搭在两根横梁间.如图2,从拱座构造图可看出,纵梁在靠近支座的100 cm 范围内截面为矩形变截面,宽度由120 cm 变为100 cm,采用放样法建模;纵梁中间段与人行道板、空心板梁等都为等截面,采用垂直于面域的拉伸方法构成立体.以纵梁建模为例,方法如下: 2.2.1 坐标变换

因为纵梁截面为二维图形,需绘制在XOY 坐标面上,而在西南轴测图中纵梁截面在YOZ 坐标面中,所以,要将UCS坐标系变换为x 1(0,-1,0),y1(0,0,1),z1(-1,0,0),这样就可绘出与WCS坐标系的YOZ 坐标面平行的梁截面.坐标变换方法如下:

2.2.2 纵梁变截面段放样建模方法 1)创建两个端截面矩形

纵梁两端线性变截面段的截面为矩形,中间段截面为工字型,可用AcDbPolyline创建[9]:

然后,用addvertex At(pt)给顶点赋值;用set-Closed(Adesk::k True)设置闭合状态;用set Normal(normal)设置法向矢量. 2)形成截面的实体指针数组

将形成放样体的两个端截面存储在实体指针数组中.定义实体指针数组为Ac Array<AcDb Entity*>p Rects,再由其成员函数p Rects.append(poly)将各截面图形实体添加到该指针数组中. 3)构成导向线指针数组

每条导向线为通过各截面对应顶点的空间线段,导向线用来控制立体的表面形状.若导向线采用多段线,各顶点坐标数组为AcGePoint3d Array pts,用该类的成员函数append(AcGePoint3d pt)将坐标(x,y,z)添加到数组中,形成导向线坐标数组,创建Ac Db3dPolyline导向曲线,再由各条导向曲线形成指针数组,方法如下:

用Ac Array 类的成员函数p Guides.append(poly3d)将导向线添加到实体指针数组中. 4)创建放样立体

由两端截面沿导向线放样时,形状由导向线来控制.创建放样体的方法为

5)将立体添加到图形数据库,设置颜色. 2.2.3 纵梁中间等截面段建模

纵梁中间等截面段为工字型,可采用按指定高度拉伸的方法形成立体.方法如下: 1)创建截面图形:在以上UCS 坐标系中,用AcDbPolyline类在变截面段靠近跨中端面上,绘制工字型截面,方法同上.

2)形成面域p Region方法同前.3)沿指定高度拉伸形成立体:p3d Obj->extrude(p Region,h,α);h为拉伸高度,α=0时拉伸体为棱柱. 4)将立体添加到图形数据库中,并设置颜色. 2.3 沿桥梁横向构件的建模方法

桥梁的拱座、横梁及桥面板都为等截面立体,均可采用沿横向拉伸的方法形成,具体方法和步骤如下:

1)坐标变换:当形成横梁、拱座和桥面板时,要沿桥梁横向拉伸面域,所以,需将UCS坐标系需变换为:x 2(1,0,0),y2(0,0,1),z2(0,-1,0). 2)拱座建模:在拱座位置,用AcDbPolyline类绘制拱座立面图,将立面图生成面域,沿横向拉伸拱座厚度值,形成立体.

3)横梁建模:横梁分为端横梁与中间横梁,都为分段等截面体,两根纵梁间与外侧截面形状不同,如图2.创建立体的方法与拱座相同,先在一根纵梁的对称面内的横梁位置,生成横梁的端截面与中间截面形状,再将截面生成面域,最后沿横梁方向往外侧拉伸成四棱柱,向内侧拉伸横梁中间段截面,拉伸长度为两纵梁轴线间距,另一根纵梁外侧横梁的四棱柱段可用镜像的方法生成,最后将三段梁用布尔运算的并集形成整体.如图4a为拱桥上部结构部分立体图. 3 下部结构建模及整桥组装 3.1 形成拱桥上部结构整体图

如图4a,对拱肋、拱座、纵梁、端横梁、横撑、斜撑、吊杆等部分,可采用镜像的方法生成对称部分,如图4b.镜像方法如下:

1)设定用户坐标系:AcGe Vector3d x(1,0,0),y(0,1,0),z(0,0,1);//坐标轴.

2)确定对称面:设指定点的坐标为ads_point pc;坐标面通过的点定义为AcGePoint3d moveBy,由成员函数moveBy.set(pc[X],pc[Y],pc

[Z])赋值;定义镜像对称面AcGePlane pln;设置对称面的方法为:pln.set(moveBy,y,z),由此确定坐标面. 3)形成变换矩阵:

4)变换实体:

中间横梁可采用等间距复制或阵列形成桥面其它位置横梁[10],如图4b. 图4 拱桥立体图Fig.4 Arch stereogram 3.2 下部结构建模及整体组装

如图1,该桥下部结构包括桩基础、承台及以上支撑与横撑部分.建模方法如下: 1)桩基础为圆柱体,按桩底、桩顶标高与桩基的平面位置,绘制桩的轴线,然后,由圆面域沿轴线扫掠形成桩基立体.

2)承台及以上支撑和横撑都为棱柱体,先在承台所在位置标高的水平面内绘制承台平面图形,再形成面域,最后指定高度拉伸形成承台等.

3)由图1可知,桥梁两侧基础对称,可采用交互方式,将下部结构以过跨中的对称面进行镜像生成另一侧基础,如图4b所示.

4)以主桥左侧两拱座底面的支座中心的连线的中点作为上下部结构的拼接点,将上部结构整体插入到基础上,形成整桥立体图,如图4b所示. 4 结论

随着计算机技术和几何造型理论的发展,推动了设计领域由二维向三维的转变,为三维可视化和信息化提供了立体模型和数据信息.研究构造实体几何造型理论和方法,运用Visual C++语言和Object ARX 开发工具包,在AutoCAD 环境下探讨参数化自动建模方法,可为工程物快速建模提供便捷途径.桥梁三维模型的建立、设计参数和属性信息的存储,为工程技术人员提供了直观研究设计方案的平台,也

为桥梁三维可视化信息系统的建立奠定了基础.本文的拱桥三维建模方法对相关研究人员具有一定的参考价值.

【相关文献】

[1]马林,李兴田.三维可视化方法研究与应用[J].兰州交通大学学报,2013,32(6):110-113.

[2]金栋,李兴田,张丽萍.基于Web的桥梁可视化管理研究[J].兰州交通大学学报,2012,31(4):45-48.

[3]刘忠平,曾敏.武广客运专线桥梁结构类型和特点[J].铁道标准设计,2013(9):54-58. [4]毕硕本,张国建,侯荣涛,等.三维建模技术及实现方法对比研究[J].武 汉理工大学学报,2010,32(16):26-30,32.

[5]扈春霞,王子茹.基于OpenGL的参数化斜拉桥三维可视化的研究[J].江汉大学学报:自然科学版,2008,36(2):47-49.

[6]陆铁坚,蒋友良,余志武.桥梁三维造型及其视景仿真[J].中南大学学报:自然科学版,2005,36(3):501-505.

[7]何祎,李传习,谭海洋.变截面梁桥三维造型技术的研究[J].中南公路工程,2004,29(1):117-119.

[8]王穆一雄,吴政漾,张新秀,等.校园建筑物三维可视化查询系统研究与开发[J].兰州交通大学学报,2013,32(1):120-123.

[9]程耀东,徐斐,董明才.基于Object ARX 2007的地质断面自动填充方法.物探与化探,2010,34(5):681-685.

[10]李世国.AutoCAD 高级开发技术-ARX 编程及应用[M].北京:机械工业出版社,1999:180-189.

因篇幅问题不能全部显示,请点此查看更多更全内容

Top