在Midascivil模型里批量添加桩基土弹簧

在用midascivil做计算的时候,有些模型需要建立桩基础来考虑桩土效应,手动添加土弹簧是一件很繁琐的事情。为提高工作效率,基于python写了一个脚本,能直接把excel表格计算的土弹簧批量地添加到midas模型里面。

Python程序代码

运行脚本后会生成一个mct脚本文件,在midascivil软件的mct命令窗口打开,然后运行就可以了,需要先计算好土弹簧参数放入相应的excel表格,代码部分土弹簧参数根据自己使用的midas版本进行调整。代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import pandas as pd
import subprocess

def run_midas_script(script_path):
subprocess.run(['midas_civil_path', '-run', script_path], check=True)

def generate_midas_script(df, output_script_path):
with open(output_script_path, 'w') as f:
for index, row in df.iterrows():
node_id = row['NodeID']
stiffness_x = row['SpringStiffnessX']
stiffness_y = row['SpringStiffnessY']
stiffness_z = row['SpringStiffnessZ']

command = f"""
*SPRING
{node_id}, LINEAR,NO, NO, NO, NO, NO, NO, {stiffness_x}, {stiffness_y}, {stiffness_z}, 0, 0, 0, NO, 0, 0, 0, 0, 0, 0, 边界组, 0, 0, 0, 0, 0
"""
f.write(command)

def main():
excel_file = 'soil_spring_data.xlsx'
output_script_path = 'add_soil_springs.mct'

df = pd.read_excel(excel_file)
generate_midas_script(df, output_script_path)
run_midas_script(output_script_path)

if __name__ == "__main__":
main()

excel表格土弹簧数据

导入mct脚本运行后结果
-------------本文结束感谢您的阅读-------------
请我一杯咖啡吧!
郭志良 微信 微信
郭志良 支付宝 支付宝
欢迎关注我的其它发布渠道