齐成龙,王永
(1.中国铁路设计集团有限公司,天津 300308;2.北京交通大学经济管理学院,北京 100044)
Tekla 作为一款优秀的平台性BIM 设计软件,具有强大的混凝土、钢筋三维建模及二维出图功能[1]。Tekla 倾向于提供钢筋混凝土结构的底层建模工具,对于特定的结构类型,如果仅通过软件提供的人机交互界面来实现三维建模及二维出图目标,则需要用户大量手动修改和重复性操作,不仅降低了效率,也不利于整个工程的质量控制[2]。因此,为了充分利用Tekla软件的钢筋设计功能,针对具体工程结构类型开发相应设计工具就显得很有必要。目前已有的框构桥配筋设计系统(FUBS)是在Midas 计算出的框构桥内力结果基础上,开发出的框构桥设计后处理程序。FUBS 可以计算出满足框构桥受力和构造要求的最低钢筋配置,其设计结果以文本文件的形式存在。通过C#语言调用Tekla 接口开发设计工具,能够读入FUBS 的计算结果,并开放交互界面,用户根据个性化需求修改FUBS 计算结果,最终自动生成框构桥三维钢筋模型、二维工程图并统计数量。
在Tekla-API 中,有2个用于生成钢筋的类:RebarGroup 类代表钢筋组,SingleRebar 类代表单根钢筋,二者的使用方法类似。在此以矩形截面梁侧表面钢筋为例介绍RebarGroup类的关键属性。
Tekla 建立的带有侧面钢筋的矩形截面梁见图1,PT1-PT2 和PT1'-PT2'为确定钢筋形状的构造点,这些点也是位于梁侧表面处的混凝土角点,代表了钢筋组的扫略端点及形状转折点。
图1 Tekla建立的带有侧面钢筋的矩形截面梁
本例在梁的起止断面分别使用2个点描述钢筋几何形状,由于钢筋位于混凝土结构内部,还需要确定保护层厚度c,以得到钢筋的精确几何形状。钢筋纵向排列方式见图2,为了得到钢筋组沿梁纵向的排列方式,需要先确定首根钢筋偏离起点的距离s1,然后再确定组内各钢筋的间距排列规则n×s2。
图2 钢筋纵向排列方式
与前述梁内钢筋组布置规则的确定过程相对应,Tekla-API中RebarGroup类有如下关键属性[3]:
(1)Polygons:用于描述钢筋形状的多边形,本属性以泛型的方式存在,每个泛型元素是1个Polygon 类型的对象,而每个Polygon 是由若干个点组成的折线。以前述梁侧钢筋组为例,其Polygons 属性值为2个Polygon,组成第 1个 Polygon 的点是 PT1,PT2,组成第 2个Polygon 的点是PT1',PT2'。在实际应用过程中,组成Polygon 的点可以不是混凝土结构的构造点,可以由用户根据需要自行生成。
(2)Spacings:钢筋组中各钢筋的间距布置规则。以前述梁侧钢筋组为例,该属性值可用n×s2 表示,如果钢筋并非均匀布置,可用n1×s1+n2×s2表示。
(3)OnPlaneOffsets:平面内偏移值,代表钢筋各肢的保护层厚度。以前述梁侧钢筋组为例,该属性值可用c表示。
(4)FromPlaneOffset:为了表达钢筋组沿梁纵向的分布规律,除了使用Spacings属性值描述钢筋之间的间距情况以外,还需要描述第1根钢筋与起点之间的相对位置关系,本例中即为s1。
建立CreateRebars_Base.cs 作为钢筋建模基础类,其包含2个方法,这2个方法分别通过输入钢筋组和单根钢筋所需各关键属性值来生成RebarGroup 和SingleRebar类的实例。
每种钢筋(骨架钢筋、横桥向钢筋、拉筋、顶板钝角加强钢筋)的几何形状和空间布置范围都必须通过与混凝土主体结构的相对位置关系来表达。因此,首先提取主体结构的关键点,在钢筋建模过程中调用。
采用Tekla-API 当中的RebarGroup 类,以钢筋组的方式创建拉筋,每根拉筋的轮廓是1条直线,因此每个拉筋钢筋组的Polygons 属性值由图3 所示的4个控制点组成,这4个控制点分别位于框构横桥向两侧面。
由于框构顶底板和墙体的拉筋布置规律不同,并且采用梅花形布置,在此分别对顶底板和墙体建模过程中组成Polygons 属性值的控制点生成方法进行研究[4]。
图3 拉筋钢筋组Polygons属性值
该函数的声明部分如下:
public void Transverse_Rebar_GeParam (TSG.Point Point_1,TSG.Point Point_2,bool Bool_Mid,bool Bool_Top,boolBool_Stagger,outTSG.Point[,]list_array_result)
该函数可以对各顶底板布筋区域进行处理,生成相应区域所有钢筋组的Polygons属性值控制点。
本函数各输入输出参数的含义是:
(1)Point_1:当前布筋区域位于顶板下缘或底板上缘的第1个边界点。
(2)Point_2:当前布筋区域位于顶板下缘或底板上缘的第2个边界点。
顶板跨中拉筋区域见图4,图中表示了顶板跨中拉筋区域的边界点含义,其他区域边界点的含义与此类似。
(3)Bool_Mid:布尔值,对于近端在中心的情况,确定是否在最后加1根。在此,近端点指的是与纵桥向中心距离更小的点。
出于程序内部算法的需求,Point_1 和Point_2 这2个区域边界点必须在顺桥向中心的同一侧。对于3 孔框构的中跨顶底板区域,会存在拉筋重复建模的情况。该参数的作用是,对于某个区域的Polygons控制点,用户可以选择是否创建中心位置拉筋,在调用该函数时,对于图4 所示区域1 的情况,Bool_Mid=true;对于区域2 的情况,Bool_Mid=false。采用这种方法,可以避免重复建模。
(4)Bool_Top:布尔值,确定是否位于顶板。
对于顶、底板,其拉筋的Polygons 控制点计算方法不同,用户调用此函数时,程序内部通过该参数进行区分计算。当程序通过该参数获取顶、底板位置信息以后,调用框构主体关键点,选择性地获取顶板或底板控制点数据,继而通过数学运算生成所需控制点坐标。
图4 顶板跨中拉筋区域
(5)Bool_Stagger:布尔值,是否相错1个横向钢筋间距。
顶底板拉筋的梅花形布置采用每2 组钢筋作为1个循环周期的方式(见图5),第2组钢筋与第1组钢筋相错1个钢筋间距,2 组钢筋布置结束以后开始下一次循环。因此,Bool_Stagger 输入参数的这2 种可选情况为顶底板拉筋的梅花形布置创造了条件。
图5 顶底板拉筋梅花形布置示意图
(6)list_array_result:输出参数。该参数是1个大小为n×4 的不定长数组,数据类型是Tekla.Structures.Geometry3d.Point。
n表示当前拉筋布置区域的钢筋组数目,每个钢筋组的4个Polygons控制点由list_array_result数组的第2维4个元素组成。
该函数的声明部分如下:
public void Vertical_Rebar_GeParam(double Coord_y_1,double Coord_y_2,int Stagger_Num,out TSG.Point[,]Array_result_up,out TSG.Point[,]Array_result_down)
该函数可以对墙体布筋区域进行处理,生成拉筋钢筋组的Polygons控制点。
本函数各输入输出参数的含义是:
(1)Coord_y_1:墙体一侧边界的y坐标值。
(2)Coord_y_2:墙体另一侧边界的y坐标值。
其中,y指向框构顺桥向,原点位于顶板顶中心位置。
(3)Stagger_Num:此参数的3个可选数据是0、1、2,这3个可选数据的具体含义分别为:不相错、相错1个间距、相错2个间距。
墙体拉筋的梅花形布置采用每3 组钢筋作为1个循环周期的方式(见图6),第2组钢筋与第1组钢筋相错1个钢筋间距,第3 组钢筋与第1 组钢筋相错2个钢筋间距,3 组钢筋布置结束以后开始下一次循环。因此,Stagger_Num 输入参数的这3个可选数据为墙体拉筋的梅花形布置创造了条件。
图6 墙体拉筋布置示意图
对于每个墙体,其拉筋模型区域以竖直方向中心线为界,分为上下2个部分。Vertical_Rebar_GeParam()函数需要输出与这2个部分相对应的Polygons 控制点数组[5]。
(4)Array_result_up:输出参数。表示竖直方向中心线以上拉筋组的Polygons 控制点。该参数是1个大小为n×4 的数组,数据类型是Tekla.Structures.Geometry3d.Point。
n表示竖直方向中心线以上部分的拉筋钢筋组数目,每个钢筋组的4个Polygons 控制点由Array_result_up数组的第2维4个元素组成。
(5)Array_result_down:输出参数。表示竖直方向中心线以下拉筋组的Polygons 控制点。该参数是1个大小为n×4 的数组,数据类型是Tekla.Structures.Geometry3d.Point。
n表示竖直方向中心线以上部分的拉筋钢筋组数目,每个钢筋组的4个Polygons 控制点,由Array_result_down数组的第2维4个元素组成。
与顶底板拉筋类似,Array_result_up,Array_result_down 两个区域也存在重复建模的情况,函数内部已经对这种情况进行了处理[6],一侧区域的重叠拉筋被删除,从而避免了拉筋重叠。
拉筋建模过程需要根据其在框构中的具体位置区别对待。对于顶底板和墙体拉筋,分别调用Transverse_Rebar_GeParam()和Vertical_Rebar_GeParam()函数,获取所有拉筋钢筋组的Polygons 控制点[7]。将这2个函数生成的控制点赋予钢筋建模基础类CreateRebars_Base.cs的相应方法,从而创建所有拉筋模型[8]。
三维建模程序读入FUBS 输出的文本文件,并个性化确定结构尺寸后,打开用户交互界面。该交互窗口允许用户手动修改经过FUBS 初次计算出的钢筋配置结果,其中包含对钢筋型号、直径、间距等拉筋参数的设置(见图7)。由该程序生成的框构顶板与边墙相交位置处的横桥向钢筋及拉筋模型见图8。
图7 配筋信息修改界面
图8 框构顶板与边墙相交位置处的横桥向钢筋及拉筋模型
作为信息化的重要手段,BIM是实现建设工程项目全生命周期管理的核心技术[9-10],同时正引发建筑行业一次史无前例的彻底变革。BIM技术通过利用数字模型将贯穿于建筑全生命周期的各种建筑信息组织成一个整体,能显著提高工程质量和作业效率,为建筑业带来巨大效益。在建筑业中,桥梁工程的信息化落后于传统房屋建筑工程,因此更加需要大力发展桥梁信息模型,提高桥梁设计水平,开发针对各种类型桥梁工程结构的BIM 设计工具[11]。上述基于Tekla 二次开发的框构桥设计工具,可实现与框构桥分析计算程序的无缝衔接,以及BIM 快速建模和出图,阐述该程序在拉筋建模过程的总体研发思路,对逐步完善桥梁信息模型的发展具有指导性价值。