混凝土拱坝浇筑进度的模拟动画的制作方法由坝体模型的建立方式来决定,以坝段为基本单元建立的拱坝模型可以使用上面介绍的土石坝填筑过程模拟的方法,依据浇筑进度计划对每个柱状块设置布尔运算动画,来实现建筑进度的模拟。而以分层分块方式建立的拱坝模型,由于模型单元过多,用手动方式设置关键帧显然不太现实,借助3DS Max三维动画制作软件的Maxscript脚本程序,可以快速精确地设置拱坝施工进度模拟的关键帧,完成拱坝浇筑施工进度模拟动画的制作。这里以第五章第一节所建立的溪落渡双曲拱坝的分层分块模型为实例,介绍借助Maxscript脚本程序实现拱坝浇筑进度模拟动画的制作方法。
拱坝的分层分块模型是根据进度仿真计算结果中的筑块几何信息而建立的,仿真计算的结果通常以数据库的形式存储。由于3DS Max的Maxscript脚本程序不支持与数据库文件的接口,只支持外部文本文件的读取,因此,首先应将数据库中的筑块的浇筑时间信息导出,并转换为动画关键帧位置,以TXT文本文件存储,假定大坝开始浇筑时刻的关键帧为200,则可按以下格式存储:
将第五章建立的DXF格式拱坝三维模型导入到3DS Max中,导入时选择按层导入几何体,由于DXF文件的筑块是分层存储的,层的命名与筑块编号一致,因此,可以保证文本文件中的筑块编号与3DS Max中的拱坝模型的组成筑块编号一致,如图7-6所示。这里说的一致不代表完全相同,在转换过程中筑块名称可能稍有变化,例如,VIFS01代表编号为01号的筑块,依此类推。
图7-6 拱坝三维模型DXF格式文件导入界面
使用Maxscript脚本程序的方式制作拱坝浇筑模拟动画与上节介绍的布尔运算方式不同,这里通过修改对象的Visibility属性并以动画形式记录来实现的,对象属性对话框如图7-7所示。
图7-7 对象属性对话框
Maxscript脚本程序中对文本文件的读写是通过openfile方法来实现的,程序首先设置自动动画为开启状态(相当于打开界面中的AutoKey按钮),然后以只读方式打开筑块进度文本文件block_schedule.txt,对文件进行EOF(文件结束标志)判断并执行循环,在循环体内首先执行整行读取,提取字符串中的筑块编号和关键帧位置,分别存储到s1和s2字符串中,获得编号为s1的筑块后,对其执行Visibility属性的初始化,原则是:对于第0帧,Visibility属性设为0;对于开始浇筑关键帧位置,Visibility属性设为0;对于s2关键帧位置,Visibility属性设为1,即完成编号为s1的筑块“从无到有”的浇筑过程模拟。所有循环执行完后就形成拱坝整体的浇筑模拟动画,图7-8为某一时刻的拱坝浇筑形象。(www.xing528.com)
完整的Maxscript脚本程序代码如下:
图7-8 溪落渡拱坝某时刻的浇筑形象渲染图
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。