后雄斌
(新疆水利水电勘测设计研究院有限责任公司,新疆 乌鲁木齐 830000)
混凝土面板堆石坝具有坝体断面小、便于施工、填筑施工进度快、投资低和安全度高等优点[1],近年来被广泛采用,发展较快。当今在我国以及许多国家,混凝土面板堆石坝已成为一般大中型水利枢纽优先考虑选择的坝型[2]。趾板是面板与河床及岸坡不透水连接的纽带,起到承上启下的作用,既可以作为坝基帷幕灌浆的盖重平台,又可以作为面板滑模施工的起始工作面,同时,作为混凝土面板的支撑底座与坝基帷幕灌浆、混凝土面板通过周边缝连接构成大坝的防渗系统[3]。
趾板空间结构较为复杂,在进行趾板设计时,要充分结合地形地质条件、坝轴线空间走向、大坝面板底坡、防浪墙底部高程等关键影响因素。目前,趾板设计多采用传统二维设计手段,利用AutoCAD软件进行平面设计。对于趾板设计过程繁琐和结构设计中参数过多、不便于准确定位、相邻2段趾板连接点处不连续、趾板变宽变厚处突变、趾板线垂直坝轴线时“X”线不存在的情况下趾板结构体型创建和与相邻标准段趾板结构间的平顺衔接等存在处理难度大、工作效率低下的问题。
Dynamo是一款可视化编程软件,具备了传统编程语言所不具备的特点,包括可视化编程、快速建模、参数化驱动、批量处理数据以及可操作Civil 3D/Revit API。Civil 3D是Autodesk公司推出的一款面向土木工程基础设施行业的三维信息化设计软件[4],包含AutoCAD所有的基本功能。随着Civil 3D软件的不断更新,从2020版开始,Dynamo作为外部参数化插件出现在Civil 3D中,Dynamo可灵活与Civil 3D中的各种对象进行交互操作,还可以将Dynamo对象输出到Civil 3D中。Dynamo与Rhino软件的插件Grasshopper具有类似的功能,可通过逻辑命令流将复杂的设计过程进行模块化参数化处理,最终实现用户需求,这使得Civil 3D在功能上更加的强大。
在总结混凝土面板堆石坝趾板传统设计特点的基础上,本文运用Dynamo可视化编程手段,研究将趾板结构模型创建参数化,编写趾板结构快速建模Dynamo功能节点,旨在提高趾板结构体型设计的准确性和效率,加快面板坝在建基面以上混凝土趾板结构体型三维参数化模型的创建,达到全数据相关、全尺寸约束、用参数驱动设计结果修改的目的,对混凝土面板堆石坝设计具有很大的工程实用价值。
Dynamo起初在建筑行业应用较多,如张玮[5]通过Dynamo读取Excel中桥梁模型参数,利用Dynamo强大的建模功能批量生成桥梁参数化构件;王松[6]采用Dynamo进行异形建筑物的参数化创建和批量自动放置建筑构件;张柳柳[7]建立了基于Dynamo底层技术的桥梁路线建模方法,并基于该方法开发出了桥梁BIM快速建模方法和相应OppenDesigner软件。
近些年来,随着水利工程BIM设计的不断深入推进,水利行业部分设计人员逐步开始探索Dynamo在水利工程参数化设计中的应用,如杨铁增[8]等通过Civil 3D软件,结合部件编辑器和Dynamo探索了水利工程面板堆石坝的三维正向设计BIM解决方案;朱茜[9]等利用Revit+Dynamo建立了拱坝参数化族库,依托Autodesk系列软件成功解决了拱坝初步设计中体型优化、枢纽布置、施工图生成、工程量概算以及监测信息可视化等重要问题;宋丹[10]采用Dynamo参数化编程建立了双曲拱坝模型,同时读取Excel格式的开挖地形数据,通过自定义节点创建地形网格曲面,最终与拱坝实体结合;王宁[11]等研究了Dynamo参数化建模技术以及与Revit之间的数据交互方式,并在实际工程中得到了广泛应用,取得了良好效果;周为[12]等利用Dynamo对水电站厂房异形结构进行了参数化设计。
2.1.1操作过程的便捷性
在趾板传统设计过程中,需要事先在坝址区原始平面地形图上获取拟定坝轴线与趾板线各控制点的大地坐标(X坐标,Y坐标),将各控制点坐标以及面板顶高程、面板内坡、面板顶部厚度、面板厚度增量与趾板体型控制等不可或缺基本参数输入到Excel表格中,通过计算得到趾板线控制点高程、每段趾板线在坝轴线方向上的投影长度、趾板线与坝轴线夹角、面板外坡角度等趾板结构体型设计参数,整个操作过程极为繁琐且容易出错,效率低下。
2.1.2“X”线设计时趾板结构体型的完全参数可控
趾板设计时,趾板基准线可以是“X”线,也可以是“Y”线。趾板“X”线为面板底面延长面和趾板设计建基面的交线,而“Y”线为面板底面与趾板下游面的交线。在我国面板坝的设计过程中,一般选取“X”线作为趾板设计的轴线,同时趾板“X”线也是趾板开挖或模板架设的施工放样线。但当岸坡坡度较陡,甚至趾板走向与坝轴线大角度相交或者垂直时,“X”线就会偏离至趾板建基面以外,或者根本不存在“X”线,这使得趾板结构体型参数化构建存在着一定的局限性。
2.1.3趾板结构体型过渡段处理
(1)相邻2段趾板线连接点处的结构体型过渡
SL 228—2013《混凝土面板堆石坝设计规范》第7.0.1条指出,混凝土趾板的布置有3种方式:①趾板面等高线垂直于趾板基准线;②趾板面等高线垂直于坝轴线;③趾板面等高线适应开挖以后的岩面;SL 228—2013第7.0.1条建议宜优先选用第1种布置方式,经调查统计我国面板坝设计普遍采用第1种布置方式。
当采用趾板面等高线垂直于趾板基准线布置方式时,由于任意2段相邻趾板线与坝轴线空间位置关系的不同,会造成相邻2段趾板面在连接点处的几何不统一,并且会随着转折点处相邻2段趾板线夹角情况的不同,使得趾板结构体型在空间上呈现出错台、侵入、缺口等不连续情况(如图1所示),这种情况是工程设计中不允许发生的。趾板作为面板坝防渗系统中的核心组件,不仅作为建基面以下固结灌浆和帷幕灌浆的作业平台以及面板浇筑施工滑模的起点支撑,而且通过周边缝与面板的可靠连接形成建基面以上的防渗体系,起到承上启下的作用。因此,处理好相邻2段趾板连接点处趾板结构体型的不连续问题就显得尤为关键。
图1 相邻两段趾板在连接点处趾板结构体型的不连续状态
(2)同一段趾板线上变宽变厚点处的结构体型过渡
根据SL 228—2013第7.0.4条、第7.0.5条规定,结合以往工程经验表明,左右岸趾板宽度和厚度在同一高程范围往往是相互对应的,且趾板宽度和厚度变化位置一般位于远离趾板线转折点的中间位置,在这种情况下趾板变宽变厚时高程分界点位置就会出现因趾板长度和厚度不一致形成的台阶,如图2所示。
2.1.4参数化驱动模型
由坝轴线、趾板线以及不可或缺基本输入参数动态控制生成面板坝趾板结构造型,当改变任何一个不可或缺基本参数或者调整趾板线和坝轴线平面位置时,如何使趾板模型发生实时动态响应,是较难实现的。
本文以面板底面延长面与趾板设计建基面的交线(即“X”线)作为趾板设计时的基准线,混凝土趾板的布置方式为趾板面等高线垂直于趾板基准线。主要适用于依据地形地质条件结合坝轴线进行趾板线的动态选择,实现趾板结构参数模型的快速创建。
采用Dynamo可视化编程插件进行水工结构体型参数化设计的一般流程[11]如图3所示。
图3 水工结构体型Dynamo参数化设计一般流程
Dynamo与Civil 3D交互,主要有2种方式:①从当前打开Civil 3D文档中选择Civil 3D对象或者AutoCAD对象;②由在Dynamo中生成的几何图形对象创建AutoCAD对象,这种方式可以将Dynamo几何图形原坐标导入到当前打开的Civil 3D文档中,2种方式所对应的Dynamo原生节点依次如图4—5所示。
图4 从AutoCAD中选择对象
图5 由Dynamo几何对象创建AutoCAD对象
在Dynamo中选择使用特定功能节点或者开发的自定义节点,以定义关系和构成自定义算法处理各种应用程序,可供重复使用,达到解决特定问题(从处理数据到生成几何图形)的目的。Dynamo具有强大的数据组织方式,通过列表的操作,可实现数据重构、生成特定序列、构成复杂逻辑关系,如图6所示的面板坝趾板结构参数化建模Dynamo自定义算法操作序列。
用户可以通过在“Dynamo自定义节点”内嵌套其他节点来构建自定义节点,借助此过程,自定义节点可让Dynamo用户设计清晰且直观的图形,如图7所示面板坝趾板结构参数化建模自定义节点。
图7 趾板结构体型参数化设计自定义节点
在Civil 3D软件中打开已经选定好的面板坝趾板线图形文档,启动Dynamo可视化编程插件,打开编写好的Dynamo可视化程序文件“趾板结构体型参数化设计.dyn”。
分别点击Dynamo“拾取坝轴线、趾板线”节点界面中的“选择”按钮,在Civil 3D中依次拾取坝轴线、趾板线,选择成功后,“拾取坝轴线、趾板线”节点界面由橙黄色变为灰色。在“基本参数输入”代码块中,按照工程经验结合设计规程规范输入相应基本参数,参数输入完成后点击Dynamo视图左下角“运行”按钮,程序将执行“趾板结构体型参数化设计”节点。当Dynamo视图左下角“运行”按钮右侧出现“运行完成”提示时,查看Civil 3D当前打开活动文档,趾板结构体型参数化模型已经生成,生成的模型可导出为“*.sat”文件,导入到大体积配筋软件进行配筋。
(1)调整趾板线拐点前后渐变段长度
在Dynamo中通过调整基本参数输入代码块中的“//拐点前偏移距离”提示语下的具体参数,可实现趾板线拐点前趾板模型渐变段长度的动态变更;同样,当在Dynamo中通过调整基本参数输入代码块中的“//拐点后偏移距离”提示语下的具体参数,可实现趾板线拐点后趾板模型渐变段长度的动态变更。与此同时,当趾板拐点渐变段长度发生变化时,相应的相邻2段趾板在连接点处的异形过渡趾板结构也会自动调整,如图9所示。
图9 相邻两段趾板在连接点处的异形过渡趾板结构
(2)调整趾板变宽变厚过渡段长度
本文在确定趾板变宽变厚位置点时,按照一般情况,即趾板变宽变厚位置处于趾板中间部分,趾板宽度和厚度变化一一对应,不考虑趾板在拐点处的宽度和厚度的变化,且左右岸趾板宽度和厚度变化位置处于同一高程位置处。依据规程规范,结合工程经验,将确定好的趾板变宽变厚位置高程点输入到代码块“//趾板变宽变厚点高程[输入浮点数]”提示的下一行中即可完成趾板变宽变厚位置点的确定。按照确定的趾板变宽变厚位置点,在代码块相应位置输入趾板宽度和对应的趾板厚度数据。当在Dynamo中通过调整基本参数输入代码块中的“//趾板宽度变化渐变长度”提示语下的长度数据时,可实现趾板变宽变厚位置点趾板模型渐变段长度的动态变更。趾板变宽变厚位置点的异形过渡趾板结构如图10所示。
当岸坡坡度较陡,甚至趾板走向与坝轴线大角度相交或者垂直时,通过编写的特定算法可以有效解决当趾板“X”线垂直坝轴线时无法正常生成趾板结构体型参数化模型的问题,同时还可以达到与相邻段标准段趾板结构平顺过渡的目的。趾板走向与坝轴线大角度相交或者垂直时趾板结构体型,如图11所示。
图11 趾板走向与坝轴线大角度相交或者垂直时趾板结构体型
趾板结构体型参数化设计Dynamo功能节点可实现模型随基本输入参数的变化发生相应动态调整,可根据实际情况调整坝轴线、趾板线平面位置以及面板坝设计基本参数,从而实现快速动态变更模型的目的。
本文借助Dynamo中的几何图元和逻辑计算模块,编写趾板结构体型参数化设计特定算法,极大简化了趾板设计过程,给出了趾板结构体型出现不连续情况下的解决方案,有效解决了当趾板“X”线垂直坝轴线时无法正常生成趾板结构参数化模型的问题,实现了参数快速驱动趾板结构模型更新的目的,取得了良好的效果,对混凝土面板堆石坝设计具有很大的工程实用价值。