# -*- coding: utf-8 -*- from odbAccess import * import os odb_folder_path = '' # 替换为你的文件夹路径 # 获取文件夹内所有ODB文件 odb_files = [file for file in os.listdir(odb_folder_path) if file.endswith('.odb')] print("scrpit begin") # 遍历文件夹中的每个ODB文件 for odb_file in odb_files: # 构建完整的ODB文件路径 odb_path = os.path.join(odb_folder_path, odb_file) # 尝试打开ODB文件 try: odb = openOdb(path=odb_path) except Exception as e: print("An error occurred while opening ODB file {}: {}".format(odb_file, e)) continue # 访问part-1-1部件 part_instance = odb.rootAssembly.instances['PART-1-1']#这里的部件名字可以替换为自己的 # 获取分析步骤'step-1'的最后一帧 last_frame = odb.steps['Step-1'].frames[-1]#一般需要的都是分析步最后一帧 # 检索位移数据 displacement = last_frame.fieldOutputs['U'] # 检索应力数据 stress = last_frame.fieldOutputs['S'] #如果获取应力数据 for element in part_instance.elements: # 获取该单元的应力数据 stress_at_element = stress.getSubset(region=element).values # 计算单元的平均应力 avg_stress = sum([value.data for value in stress_at_element]) / len(stress_at_element) # 写入单元的平均应力数据到文件 f.write("Element Label: {}, Average Stress: {}\n".format(element.label, avg_stress)) # 关闭ODB文件 odb.close()
使用abaqus脚本批量处理odb文件
于 2024-06-16 15:24:26 首次发布