箱梁三维实体自动建模方法研究

2014-09-19 08:17朱德荣
铁道标准设计 2014年3期
关键词:指针箱梁立体

朱德荣

(中铁上海设计院集团有限公司,上海 200070)

箱梁三维实体自动建模方法研究

朱德荣

(中铁上海设计院集团有限公司,上海 200070)

三维实体模型能够直观、完整地反映立体的几何与特征信息。在对结构特征、模型变量与建模过程进行分析的基础上,总结箱梁结构的建模规律,提出适合于不同类型桥梁结构的建模方法及建模中应注意的问题。借助VC++和ObjectARX工具,通过创建图形实体及其面域,形成建模参数,运用AcDb3dSolid类建立的对象容器,建立桥梁结构三维实体的拉伸、扫掠和放样接口函数,并对立体添加颜色或材质。运用图形变换和布尔运算,对三维实体进行整体组装,实现了桥梁结构三维实体自动建模。

桥梁结构;计算机辅助设计;三维实体建模;参数化;ObjectARX

桥梁是公路、铁路及城市立交线路中的重要构造物,随着交通基础设施的快速发展,桥梁的数量越来越庞大,而且结构复杂,类型多种多样[1]。目前,桥梁设计图样采用多面正投影图表达,缺乏立体感,不能直观展现桥梁全貌,且所含的信息也不够全面。桥梁立体模型的建立将为设计方案的比选与优化、工程量的计算、施工过程的动态显示以及三维桥梁信息的可视化管理奠定基础。

文献[2]探讨了三维空间模型及其构模方法,并对比分析了目前常用的10种三维建模技术的优缺点及适用场合。文献[3]提出了一种新的三维建模方法——折叠法,折叠二维平面图形构成三维实体。文献[4]以VC++为平台,融合OpenGL图形技术,结合斜拉桥结构的特点,采用参数化方法对斜拉桥进行三维建模,实现了斜拉桥三维可视化。文献[5]以扫描法和参数化特征造型为桥梁模型的主要造型方法,半边数据结构为模型的数据结构,对桥梁三维造型和视景仿真的关键技术进行了研究,并在VC++平台上结合OpenGL图形库开发仿真应用系统。文献[6]提出通过各段截面的位置、顶点数和变化次数来控制变截面梁桥大样形状,采用添加和切割的手段实现变截面梁桥整体造型,并运用三维参数化建模软件MDT6.0和VBA开发工具实现变截面梁桥造型设计。

本文针对箱形梁,分析梁体沿跨度方向的内外部结构特点,揭示其变化规律,探讨等截面和变截面梁体的自动化建模方法,运用 Visual C++语言和ObjectARX开发技术,直接对图形数据库进行操作,建立扫掠、放样建模接口函数,参数化形成立体,并对实体模型添加颜色和材质,通过图形变换与布尔运算,组装桥梁整体结构,实现箱梁结构的自动建模。

1 箱梁结构特征及其建模方法

单室或多室箱形梁是大中跨桥梁及城市桥梁最常用的结构形式,研究箱梁的结构特点,归纳和总结梁体各段的建模规律,以便于确定各段梁体相应的建模方法,实现自动建模。

图1为(80+168+80)m连续-钢桁组合结构主梁1/2箱梁中心纵剖面和部分横截面。

图1 1/2箱梁中心纵剖面及部分横断面(单位:cm)

由设计图可知,该连续箱梁为双室结构,沿跨度方向进行了分段,在各分段位置给出了梁横截面图;从图1可看出箱梁的两端支座处、中间支座处与跨中有部分梁段外轮廓为等截面,建模时采用扫掠或拉伸建模;其他分段位置的多个连续横截面外形和箱室内轮廓都为变截面,采用沿导向线的放样方法建模;靠近梁支座处的顶板和底板加厚段,采用起始与终止横截面沿一条路径进行放样建模。

2 箱梁等截面结构建模方法

2.1 拉伸和扫掠建模方法

(1)拉伸建模

拉伸建模是指将封闭二维平面区域沿垂直于面域方向拉伸形成立体,适用于柱体结构。图1中梁端、中间支座处的外形和横隔板上的孔洞都为等截面,可采用拉伸建模。

形成拉伸体的封闭平面图形主要有圆、多边形等,建模方法为:先由几何参数生成封闭的二维图形,再生成面域,最后沿垂直于面域的方向拉伸一定的距离形成立体。

(2)扫掠建模

扫掠方式建模是将平面区域沿任意曲线路径扫掠形成立体,适用于等截面(如矩形梁、T形梁、箱形梁等)、管线、梁拱等立体建模。方法为:①由扫掠图形的参数绘制二维封闭图形;②二维封闭图形生成面域;③由扫掠路径参数形成扫掠路径;扫掠路径可以是直线、圆、圆弧、空间折线及样条曲线等;④由面域和扫掠路径作为参数,运用 ObjectARX开发技术,形成扫掠体。

2.2 建立拉伸和扫掠接口函数

在以上研究拉伸和扫掠建模方法和步骤的基础上,由VC++和ObjectARX建立拉伸和扫掠立体的方法和步骤如下。

(1)图形几何参数定义 面域边界和扫掠路径可用多种类对象创建,如多段线、圆、椭圆及样条曲线等,几何参数为顶点坐标、法向矢量和半径等。对二维坐标数组采用AcGePoint2dArray类定义,用于存储二维图形顶点坐标;用AcGepoint3dArray类定义空间实体三维坐标点数组;三维坐标点用AcGePoint3d类定义;平面的法向矢量用AcGeVector3d定义为normal(0.0,0.0,1.0),拉伸体的高度沿该方向。

(2)创建图形实体 不同封闭几何图形的创建对应不同类的构造函数和参数。创建类对象指针方法为:类名*pEnt=new类名;几种常用实体的创建方法如下。

该类参数为各顶点坐标和法向矢量,用于创建二维封闭多边形。

②创建扫掠路径

在ObjectARX中,扫掠路径可以用 AcDbLine、AcDb3DPolyline、AcDbSpline等类创建。若扫掠路径为三维多段线,则三维坐标点数组用AcGepoint3dArray类定义为pt3d,用该类成员函数set-LogicalLength(n)定义数组长度,用 pt3d[i].set(x,y,z)设置各点坐标,创建空间多段线作为扫掠路径的方法为:

注意,poly指向不同类的封闭对象,就生成相应的面域。

(4)创建拉伸体或扫掠体的方法

①用AcDb3dSolid类先创建几何实体的一个容器和接口[7]:AcDb3dSolid* p3dObj=new AcDb3dSolid()。

②调用建模成员函数 创建拉伸体:p3dObj->extrude(pRegions_poly,height,taper);当拉伸体锥角参数taper为0,则为柱体,非零时沿高度为呈线性递减截面。创建扫掠体:p3dObj->extrudeAlongPath(pRegion_circle,poly3d));将面域沿路径扫掠形成立体。

由此可知,两种建模方法的共同之处都需面域参数;不同之处在于,拉伸需拉伸高度和锥角,扫掠要沿扫掠路径。

③将立体添加到图形数据库中[8]:AddEntityToDatabase(p3dObj)。

④设置颜色:立体创建后,需添加到图形数据库中,并可设置颜色。方法为:p3dObj->setColor(col);其中,col为颜色号。

设置实体的材质:p3dSolid->setMaterial(material_name)。

⑤关闭对象指针。如果不对实体进行操作,则关闭指针p3dObj,否则,返回实体指针p3dObj,以便对实体进行图形变换和布尔运算,最后再关闭指针p3dObj。

3 变截面梁体结构建模

通过对图1的箱梁设计图进行分析可知,箱梁外形和内部结构沿跨度方向变高段分为线性变高段和非线性变高段。对箱梁外形而言,在支座处和中间跨的跨中处为等截面段,其余梁段各截面高度呈非线性变化;从箱梁内部结构看,梁端和中间横隔板上的八边形通孔为等截面,而箱梁靠近各支座处顶板和底板为加厚段,沿长度方向呈线性变截面。根据箱梁各部分的构造特点,可采用不同的建模方法。

3.1 线性变截面放样建模方法

图2(a)为箱梁左端截面1至截面3的空间位置,该段箱梁外形为等高段,放样路径为H1-H3;截面1至截面2之间,梁端隔板中的八边形通孔也为等高段,放样路径为P1-P2,可采用沿路径放样进行建模。图2(b)为箱梁外形立体和左前方为内部八棱柱体。

从截面2和截面3可看出,2个箱室的截面图形的大小不同,所以该段为箱梁顶板和底板的加厚段,截面高度为线性变化。采用2个端截面沿一条直线路径放样建模,路径应通过2个端截面同一方位的两个顶点连线,如M2-M3,见图2(a)。放样体如图2(b)右后部分为2个箱室的线框立体图。

将图2中的箱体与2个八棱柱和2个变截面棱柱进行差集运算形成箱体。

由2个端截面放样(无论等截面还是线性变截面)和扫掠的区别在于:放样需要放样区间的2个端截面和路径来建模,放样路径只能为2个截面之间的一条高线或者对应顶点连线;而扫掠仅需要一个截面图形和扫掠路径,且扫掠路径可为任意曲线。

图2 等截面和线性变截面立体建模

3.2 非线性变截面放样

图3是图1中箱梁截面3~10变截面的空间位置和立体形状。该段箱体采用非线性放样建模,是将截面3至截面10内、外封闭图形沿通过各顶点的导向线分别进行放样(图3(a)),构造出箱体外形和2个箱室立体,再差集形成非线性变截面箱体结构,如图3(b)所示。

图3 箱梁非线性变截面立体建模

3.3 放样建模接口方法

在bjectARX工具中,用AcDb3dSolid类的成员函数createLoftedSolid()进行放样,具体方法和步骤如下。

(1)创建一组封闭的截面图形 箱梁变截面连续梁,其截面图形是多边形,创建截面图形的方法与2.2节相同。

(2)形成截面的实体指针数组 形成放样体的截面无论是什么图形(多边形、圆等),在创建了各截面对象后,要将各截面按形成立体的顺序存储在实体指针数组中,构成一组截面,以便沿导曲线形成放样体。方法为:先定义实体指针数组为AcArray<AcDbEntity*>pEntsTemp,再由其成员函数append(pEnt)将各截面图形实体添加到pEntsTemp指针数组中。

(3)构成导向线指针数组 每条导向线为通过各截面对应顶点的样条曲线,导向线用来控制立体的表面形状。定义导向曲线的各顶点坐标点数组为AcGe-Point3dArray pts,用该类的成员函数 append(AcGe-Point3d pt)将坐标(X,Y,Z)添加到数组中,形成导向曲线坐标数组。创建splines导向曲线、形成导向曲线指针数组的方法如下:

AcDbSpline*pSpln_1=new AcDbSpline(pts);AcArray<AcDbEntity* > pGuidesTemp;

用AcArray类成员函数append(pSpln_n)将导向线添加到实体指针数组pGuidesTemp中。

(4)创建放样立体 在生成放样体的各截面指针数组和引导曲线指针数组的基础上创建放样体。由各截面沿导向线放样立体时,中间段的形状由导向线通过的各截面顶点来控制。创建放样体的方法如下:

AcDb3dSolid*p3dSolid1=new AcDb3dSolid();

p3dSolid1->createLoftedSolid(pEntsTemp,pGuides-Temp,NULL,AcDbLoftOptions::kNoNormal)。

(5)将放样立体添加到图形数据库,再设置颜色。方法同拉伸体。

(6)用delete删除截面、导向线和实体指针。

4 箱梁实体图形处理和布尔运算

4.1 三维实体图形变换方法

在立体生成后,要将其定位于复杂立体的指定位置和方向,可用平移和旋转等变换方法;要放大立体,可用比例变换;也可对立体进行镜像等变换。变换方法和步骤如下。

(1)生成三维实体变换矩阵 用ObjectARX工具对立体进行变换时,需生成三维图形变换矩阵。用AcGeMatrix3d类定义三维几何变换矩阵,再用该类的成员函数生成平移变换 setCoordSystem(moveBy,x,y,z)、比例变换 setToScaling(scale,moveBy)、旋转变换setToRotation(PI/3.0,y,moveBy)、镜像变换 setToMirroring(pln)矩阵。

(2)实体模型变换 确定图形变换矩阵后,即可对立体进行变换:

p3dSolid->transformBy(transformation_matrix);

该函数将实体的几何参数进行坐标变换,其拓扑特征保持不变。

(3)将变换后的实体添加到图形数据库中。

4.2 三维立体布尔运算

将已创建的各段梁体摆放在各自的空间位置后,运用布尔运算中的并集可将各分段建模的梁体进行合并,形成箱梁整体模型,用箱体与2个箱室体进行差集,可形成箱体中的箱室孔洞部分。对2个立体进行布尔运算[9]的方法如下:

设已创建的2个实体为pSolid1,pSolid2。

pSolid1- > booleanOper(AcDb::operation,pSolid2);

如果函数调用成功,pSolid1将指向经过布尔运算生成的新的实体,pSolid2所指向的实体将从数据库中删除。布尔运算类型operation取值为AcDb::kBoomlUnite(并集)、AcDb::kBoolIntersect(交集)和 AcDb::kBoolSubtract(差集)。

5 箱形连续梁建模实例

根据箱梁设计图(图1)与几何信息[10],具体建模方法和步骤如下。

(1)建模数据组织

连续箱梁总体信息[11]:箱梁跨数,跨度,总长,箱室个数,横截面数量,横截面间距。

横截面几何信息如图4(a)所示,包括截面的宽度和高度尺寸。

(2)连续箱梁建模

在建模数据的基础上,建模方法如下。

①绘制空间桥面中心线,从左向右指定各横截面在桥面中心线上的空间坐标。

②进行用户坐标变换,依据截面参数,确定截面顶点坐标。

③用AcDbPolyline类创建截面中的封闭多边形。④生成等截面和变截面段的放样路径。

⑤箱梁的等高段建模 依据3.1节的沿路径放样方法,建立箱梁外形、内部八边形通孔和顶、底板加厚段立体,对孔洞部分,由箱体与内部实体差集构造穿孔,如图2所示。

⑥箱梁变高段建模 对箱梁外形和内部非线性变高段采用导向线放样建模,箱梁与内部实体进行差集,即可形成箱梁结构,如图3所示。

⑦在形成各段箱体后,可采用并集形成1/2箱梁立体,再用镜像功能形成箱梁整体,如图4(b)所示为整座桥梁立体图。

6 结论

图4 (80+160+80)m连续-钢桁组合结构主梁横截面参数和立体图

本文在分析箱梁结构形状、构造特点的基础上,研究了梁体建模方法,总结了梁体结构中适合等截面、线性和非线性变截面的建模规律和方法,运用VC++和ObjectARX工具,建立了拉伸、扫掠和放样等接口函数,实现了桥梁结构的自动化建模,通过与人机交互建模比较,结果表明,建模效率提高约80%。桥梁模型为桥梁设计、修改、评价和施工[12]提供了三维可视化手段,这种自动建模方法对桥梁CAD和三维可视化的研究具有一定的意义和参考价值。

[1]刘忠平,曾敏.武广客运专线桥梁结构类型和特点[J].铁道标准设计,2013(9):54-58.

[2]毕硕本,张国建,侯荣涛,梁静涛.三维建模技术及实现方法对比研究[J].武汉理工大学学报,2010,32(16):26-30,32.

[3]张秉森,邵峰晶.CAD系统中产品设计三维实体建模方法的研究[J].工程图学学报,2002,(4):27-32.

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

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

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

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

[8]程耀东,赵建昌,徐军.图形数据库应用技术研究[J].工程图学学报,2006,27(1):143-148.

[9]程耀东,张丽萍,韩进等.计算机绘图与二次开发方法[M].兰州:甘肃科学技术出版社,2009:267-323.

[10] Xiong Jun He,Nguyen Phan Anh,Jiu Si Liu,Jing Ju Xiang,Xiao Yang Luo.Modeling Method of Analysis of Complicated Bridge Structures Based on Design Drawings[J].Advanced Materials Research,2011,243-249,6131-6137.

[11]刘润舟.(70+125+70)m跨铁路转体连续梁桥设计[J].铁道标准设计,2013(12):70-73.

[12]苏国明.一联多孔连续梁大节段快速施工设计[J].铁道标准设计,2013(9):50-53.

Research on Automatic M odeling M ethod of Three-dimensional Entity for Box Girder

ZHU De-rong

(China Railway Shanghai Design Institute Group Co.,Ltd.,Shanghai200070,China)

Three-dimensional entity model can visually and completely reflect the geometric and characteristic information of an entity.After research on box girder structure characteristics,on model variables and on modeling process,the paper summarized themodeling rule of box girder structures,put forward themodelingmethod which is suitable for different kinds of bridge structures,and pointed out the matters needing attention in modeling process.In this paper,with the help of Visual C++and ObjectARX,and by creating the graph entity and regions,the modeling parameters were formed.Furthermore,by using object container of AcDb3dSolid class,the interface functions among stretching,sweeping and loftingwere established for the three-dimensional entity of bridge structure,then colors and material or texture were added into the entity.Finally,by means of graphic transformation and Boolean calculation,the three-dimensional entity of bridge structure was assembled integrally,thus the automatic modeling of three-dimensional entity of bridge structure were achieved.

bridge structure; computer aided design; three-dimensional entity modeling;parameterization;ObjectARX

U442.5

A

10.13238/j.issn.1004-2954.2014.03.013

1004-2954(2014)03-0054-05

2013-12-10

省级自然科学基金(1212RJZA042)

朱德荣(1966—),男,高级工程师,1990年毕业于西南交通大学桥梁与地下工程专业,工学硕士,E-mail:zydzcx@163.com。

猜你喜欢
指针箱梁立体
市政道桥箱梁桥施工技术探究
市政道桥箱梁桥施工技术
垂悬指针检测与防御方法*
念个立体咒
考虑截面配筋的箱梁剪力滞效应分析
立体登陆
为什么表的指针都按照顺时针方向转动
Pop—Up Books立体书来了
钢筋混凝土连续箱梁桥存在的问题及处治对策
浅析C语言指针