基于Rhino Grasshopper的景观桥梁三维模型数据批量提取研究

2023-09-09 02:13陈素华于智光李瑞琪
关键词:边线批量轴线

陈素华,于智光,周 还,李瑞琪

(1. 东南大学 交通学院,江苏 南京 210096; 2. 东南大学 建筑设计研究院有限公司,江苏 南京 210096)

0 引 言

桥梁作为公共建筑物,以其实用性、巨大性、固定性和艺术性极大地影响并改变着人类的生活环境。景观桥梁兼备交通、交流和文化等多重功能,为满足景观外形要求,桥梁结构往往会沿着三维空间曲线延伸,通过倾斜、扭转及变形等方法将桥塔、拱肋等结构构件进行变化[1]。相比于常规桥梁,景观桥梁外形大多是异形空间曲面,采用传统的二维CAD设计方法无法满足设计要求,需要建立三维模型来辅助设计[2]。

对于无法提供函数表达式或者变化规律的曲面,其表达通常只能采用曲面上分段点的坐标来表示,坐标点间则用直线代替曲线。因此,曲面的表达精度受坐标点分布疏密影响,表达的精度越高,坐标点越密集,坐标点数量越多。由于桥梁跨径可从几十米到上千米,桥梁宽度可从几米到几十米,假定按照1 m × 1 m的网格将桥梁构件的曲面划分为坐标点,则需要数百到数千个坐标点。如果对每个点手动提取坐标数据则需要大量时间并且容易出错。为了高效且准确地获得用以分析景观桥梁三维模型的数据,笔者开发了一种结合参数化设计策略、批量提取景观桥梁三维模型数据的方法,并对方法的拓展和应用进行了实例验证。

1 参数化设计

1.1 参数化设计策略

术语“参数”源自数学,可修改的参数或变量可以控制关系式的结果[3]。因此,参数化设计的原理可以定义为数学设计,将设计元素之间的关系用参数表示。参数化架构侧重于系统中执行任务的各种设计元素之间的关系。参数化设计策略通过简洁合理的技术快速有效地解决设计问题[4]。与传统的设计方法相比,参数化设计应用数学变量可有效地解决复杂的几何问题,并在自动化过程中创建高级设计模型。参数化工具的自动化基于精确的真实世界数据和算法,通过减少所需的迭代量来简化设计过程[5]。

通常,基于用户决策和上下文设计信息对架构模型进行更改费时又费力,因为模型通常需要完全重新设计或不断修改其关键部分,而参数化设计允许通过改变与几何模型相关的参数值进行快速迭代,因此效率得到极大提高。参数化设计的理念是通过连接设计元素来建立关系,并通过修改关系和观察结果来构建设计,而不是在传统设计工具中创建解决方案[6]。

参数化设计工具具有较强的灵活性和适应性,能够准确地解决复杂建筑外观设计等问题。应用于建筑行业的各种参数化工具之间的连接是通过插件及时实现的,大多数工具是多个混合的平台,可以执行各种任务,如建模、仿真、评估等[7]。笔者基于参数化设计理念制定参数化设计策略,通过建筑行业的参数化设计工具来实现景观桥梁三维模型数据的批量提取。

1.2 软件选择

目前,市场上的三维建模软件大体分为2类:①网格格式模型,该模型大多依靠手动拖拽网格控制点生成,可以快速建立诸如人物角色等复杂无规则曲面,但模型不具备参数化性质,尺寸精度不高,多用于影视、游戏等视觉表现行业,以3ds max,C4D,Maya等软件为典型代表;②工业格式模型,该模型大多由精确的Nurbs曲线通过扫掠、放样、拉伸等特定命令生成,模型精细化程度较高,软件大多具备较强的参数化功能,但该模型需要参数控制,建模参数化过程往往耗时较长,一般多用于精密机械制造领域,以CATIA,Rhino,Solidworks等CAE软件为代表。

Rhino软件有超强的建模能力和优秀的曲面表达,虽然其本质是三维建模软件,但因有丰富的数据格式使其可以与其他BIM平台软件实现信息共享,可以导入导出3ds、obj、fbx等网格类三维模型数据格式,也可以导入导出igs、sat、stp等工业CAE三维模型数据格式,软件本身轻巧易用,作为分析处理三维模型的软件具有较多优势。Grasshopper为Rhino内嵌的参数化设计插件,与Rhino的集成关联较好,主要是采用可视化节点编程的方式来实现参数化的过程,对节点程序输入一组数据即可实现批量数据的处理,该过程不涉及编写代码,非程序设计人员学习成本较低。除Grasshopper以外,土木建筑工程设计中常用的可视化节点编程工具还有Revit平台下的Dynamo插件,但是该插件目前的研究及应用范围主要是参数化建模,很少用于模型数据批量提取。

综上,Rhino Grasshopper几乎是现有处理三维模型软件中自由度最高的参数化工具,具有良好的界面和优秀的拓展性[8]。因此,笔者选择在Rhino Grasshopper平台上进行模型数据批量提取。

2 方 法

2.1 桥梁三维模型数据特征

对于曲面的分段,建筑上通常采用UV分段获得。张慎等[9]在Rhino Grasshopper平台上通过Divide Surface运算器对曲面进行划分获取网架的UV划分节点;詹建文[10]向建筑幕墙曲面输入UV参数进行网格划分并提取节点信息。图1为UV网格划分建筑表皮曲面示意。

图1 UV网格划分建筑表皮曲面示意Fig. 1 Schematic diagram of UV mesh division of building skin curved surface

桥梁为沿路线中心线设计的带状结构物[11],在符合路线大方向的基础上,桥轴线尽量设置为与所跨越河流的水流方向或道路行车方向垂直的直线,以缩短桥长,方便桥下通航(或通车)。桥梁曲面大多沿纵桥向布置,如图2的桁架桥、梁桥等均为沿纵桥向布置及变化的曲面。由于桥梁纵向延伸长度通常远大于其横向宽度,不同于建筑通过UV网格划分曲面,桥梁曲面大多沿着路线方向划分,如图3。

图2 纵向延伸的桥梁曲面Fig. 2 Curved surface of the bridge longitudinally extending

图3 沿路线方向划分桥梁曲面Fig. 3 Dividing the bridge curved surface along the route direction

2.2 数据提取基本方法

景观桥梁三维模型数据提取过程如下:

1)分段。以横隔板位置或小于相邻横隔板距离通过定距等分、定数等分等方式获得沿分段曲线方向布置的多个分段平面,分段平面多为分段曲线的法平面。分段后拟合的模型需满足外观精度要求,误差需控制在原模型外观尺寸的±0.5%范围内。

2)切割。对曲面与分段平面运行相交运算器,获得分段平面处的断面轮廓线。

3)细分。将轮廓线炸开获得轮廓线的控制点,若轮廓线控制点无规律且不足以描述轮廓线形状时,可将轮廓线再进行细分,用细分点来描述曲线轮廓。

4)提取坐标。批量计算出细分点X、Y、Z坐标值,坐标原点位置可通过Plane Coordinates运算器设置。

5)输出数据。可将数据一键批量输出到Excel表格中,Excel表格可置于设计图纸中用以表述三维曲面。

图4为在Grasshopper软件中将原曲面分段-切割-细分的过程。

图4 原曲面分段-切割-细分过程Fig. 4 Segmentation, cutting and subdivision process of the originally curved surface

笔者依托Rhino Grasshopper参数化平台,采用Visual Studio 2022工具,使用C#编程语言进行Grasshopper运算器“GH2CSV”的开发,实现数据信息从Rhino Grasshopper平台到Excel软件的传递。在开发过程中,考虑到数据信息的规模性和易用性,遵循效率优先原则,以“.CSV”文件格式为“GH2CSV”运算器的输出格式,利用System.IO中的“FileStream和StreamWriter类”获取字节信息并重新编码。通过嵌套循环将Grasshopper中的树形数据格式转化为二维数组格式,根据指定的文件路径,完成数据从Grasshopper平台向CSV文件的转化,方便后续通过Excel软件对输出数据的进一步加工处理,实现三维模型和二维信息的快速联动。程序封装电池如图5,部分程序代码如下:

图5 数据输出Excel表格程序封装电池Fig. 5 Packaged battery of the data outputting of Excel table program

private static void SaveCSVData(string fp, GH_Structure Table)

{

string fullPath = fp + "\Data.csv";

System.IO.FileInfo fi = new System.IO.FileInfo(fullPath);

if(!fi.Directory.Exists)

{

fi.Directory.Create();

}

System.IO.FileStream fs = new System.IO.FileStream(fullPath, System.IO.FileMode.Append,

System.IO.FileAccess.Write);

System.IO.StreamWriter sw = new System.IO.StreamWriter(fs, System.Text.Encoding.UTF8);

for (int i = 0; i

{

string data = 1 + i + ",";

for (int j = 0; j

{

string str =Table.Branches[i][j].ToString();

data += str;

if (j

{

data + = ",";

}

}

sw.WriteLine(data);

}

sw.WriteLine("Data results");

sw.Close();

fs.Close();

}

新建Excel表格,提取其路径连接到“保存路径”端,将需要导出的数据连接到“表格数据”端,在“触发”端添加按钮,点击按钮即可完成一键批量输出数据信息,Grasshopper可视化节点程序电池如图6。

2.3 数据提取拓展方法

三维模型数据批量提取应用于桥梁工程时,往往需要在基础模块上进行部分功能拓展。笔者对其常用拓展功能进行了总结。

2.3.1 分段轴线获取

大部分桥梁构件模型是通过中心轴线创建的,而部分桥梁构件模型在创建过程中并没有用到或者生成中心轴线,这种情况下需要对分段轴线进行提取。分段轴线若为模型的边线,则直接从模型提取;若为非模型边线,则需要在Grasshopper中编写程序来获取。例如,对无中心线拱肋模型(图7)的拱肋中心线的提取,可分为4步进行:

图7 无中心线拱肋桥梁模型Fig. 7 Model of arch rib bridge without centerline

1)提取拱肋边线。若模型为Nurbs曲面,则可将模型炸开提取边线;若模型为网格模型,则可应用Lunchbox的Mesh Edges运算器提取边线。

2)将拱肋边线分段并提取其法平面。

3)获得法平面与拱肋模型交线。

4)获得交线的截面形心,将形心点顺次连接获得拱肋的近似拱轴线。

量取拱肋边线与近似拱轴线的最大偏移量,若不满足精度要求,则用近似拱轴线取代拱肋边线重复上述过程,直到满足精度要求为止。

2.3.2 分段点位置确定

桥梁通常以横隔板位置作为分段位置,在分段处以直代曲拟合模型。但当分段轴线的曲率较大时,以横隔板位置作为分段将无法满足外观精度要求,此时需要间距更小的分段。以直代曲拟合的精度与分段数量相关,分段数量越多拟合精度越高,而分段数量越多需要处理的数据量则越多,因此,需要得到满足精度要求的最小分段数量。

Galapagos Evolutionary Solver运算器通过内置的遗传算法可以快速求得在某精度范围内的最小分段数量。编写程序将精度值与拟合前后曲线间最大偏差量的差值关联到运算器的Fitness位置,将曲线分段数量滑块关联到运算器的Genome位置。在程序设置界面将Fitness设置为Minimize,运行程序即可求得指定精度下的曲线最小分段数量。遗传算法计算分段数量节点程序如图8。

2.3.3 数据排序分组

由于桥梁整体通常为带状结构,结构构件沿着桥梁中心线展开,因此数据的排序以桥梁中心线从小桩号到大桩号为基础,并可拓展增加排序参照线,如:拱肋中心线、索塔中心线,或者绘制虚拟参照线等。对于数据的分组,通常按照桥塔数量、拱肋数量及主梁数量等元素进行分组。根据项目需求,数据排序和分组的顺序可先排序再分组,或先分组再排序,也可分组排序交替重复进行。

3 验 证

3.1 桥梁背景

滨河西路景观桥位于西宁市城北区北川河河谷地带,是西宁市北川河综合治理工程的一部分。桥型为空间钢拱桥,分别斜跨北川河内河和外河。结构跨径布置为(95 + 110)m,全长236.5 m,桥面总宽21 m,按整幅桥设计。桥梁效果见图9。

图9 滨河西路桥梁效果Fig. 9 Rendering design sketch of the bridge on Binhe West Road

桥梁平面位于圆曲线上,每跨由2片倾斜钢拱肋组成,2片拱肋在拱顶位置相交汇合形成同一断面,在桥台与桥墩位置分叉为纵向和横向双肢拱。拱轴线为空间样条曲线,拱肋断面为变宽变高变角度的梯形和平行四边形。拱肋平面及立面见图10。

图10 拱肋平面及立面Fig. 10 Plane and elevation of arch rib

桥梁外形最复杂的部分为拱肋,而拱肋尺寸及相关构件的位置关系很难用一个函数关系式来表达,只能通过在三维模型中获取的数据来表达,这需要大量的数据才能描述出拱肋的尺寸及位置,因此,可采取批量提取数据的方法进行辅助设计。

3.2 拱肋数据批量提取

运用数据提取拓展方法中的分段轴线法对拱轴线进行提取,在提取的拱轴线上批量获得等距离分段点。先将距离设置为2 m(即横隔板间距值),求得拱肋拟合边线与原边线的纵向距离最大值为6.5 mm,拱肋设计高度最小值为1.4 m,因此,拟合边线与原边线差值小于拱肋高度的0.5%,满足外观精度要求。

将在分段点处批量获得拱轴线的法平面作为切割平面,用该平面切割拱肋三维模型以获取拱肋断面轮廓线,再将轮廓线炸开以获取平行四边形轮廓的4个角点。

将横隔板沿道路中心线方向排序,由于每片拱肋均包含横向分叉与竖向分叉,因此,首先,将每片拱肋横隔板数据分为横向分叉段1、2,竖向分叉段1、2,及无分叉段共5个组,4片拱肋共20组;然后,将横隔板平行四边形的4个角点按顺时针方向A、B、C、D编号排序,如图11,这样即完成了整个拱肋参数的排序工作;最后,将拱肋数据批量输出到Excel表格中,直接用于施工。除拱肋及隔板外,耳板、锚箱、拉索等构件尺寸及定位数据均按照类似思路在Grasshopper中通过参数化节点程序实现批量输出。

图11 排序方向和断面线编号Fig. 11 Sorting direction and section line numbering

3.3 项目应用小结

通过程序批量提取三维模型几何信息数据可极大提高设计效率。拱肋坐标点数据的提取过程,一方面应用了数据提取基本方法,另一方面应用了拱轴线提取及数据排序分组的拓展方法,同时,须将数据拟合模型与原模型外观尺度精度差值控制在0.5%范围内。图12为整个过程的节点程序及流程。

图12 拱肋模型数据提取流程Fig. 12 Flow chart of data extraction of arch rib model

西宁滨河西路景观桥现已竣工通车,从图13现场照片与BIM模型的对比可知,施工成果对设计成果的还原度很高。

图13 现场航拍照片与BIM模型Fig. 13 On-site aerial photos and BIM model

正向设计一直被认为是BIM技术的初衷之一[12],三维模型数据批量提取是BIM正向设计实现的重要前提,它不仅可以与计算模型结合,同步优化,还可以实现自动出图、图纸与模型相互关联[13]。BIM模型不仅需要具有可视化的属性,满足工程人员对构件更直观的认识,还需要通过三维模型自动获得满足造价计量业务的工程量,实现模型及数据的实时联动,从而提升模型的价值[14]。西宁滨河西路景观桥以BIM模型几何信息的批量提取为基础,通过编写程序,实现了程序批量出图、统计工程量等BIM正向设计应用。

4 结 语

简要介绍了景观桥梁工程项目的特点,提出了基于Rhino Grasshopper平台的三维模型数据提取及处理方法,并将其应用于西宁滨河西路景观桥梁的数据提取,以描述三维空间拱肋复杂的外形。研究表明:该方法可快速提取三维模型尤其是三维异形曲面的几何信息,极大地提高了数据获取的效率;编写的程序算法具有通用性,可应用于其他三维模型,有助于推进BIM正向设计的应用与发展。

猜你喜欢
边线批量轴线
海岸水边线提取方法在GF-2卫星影像中的适应性研究
批量提交在配置分发中的应用
曲轴线工件划伤问题改进研究
基于回归分析的水电机组轴线曲折预判断分析
认识足球(六)
突破矩形上边线买入法(1)
行书章法浅析(十五)书写应把握行轴线
浅议高校网银批量代发
基于AUTOIT3和VBA的POWERPOINT操作题自动批量批改
考虑价差和再制造率的制造/再制造混合系统生产批量研究