Skip to content

Latest commit

 

History

History
74 lines (56 loc) · 2.93 KB

快速开始.md

File metadata and controls

74 lines (56 loc) · 2.93 KB

项目效果

本项目利用python控制Abaqus2021对「钢管混凝土(CFST)」进行建模(用于批量建模、批量提交)。

本项目研究「钢管混凝土」有如下特性

  • 研究方形、矩形截面形状的钢管混凝土柱。
  • 柱两端由刚性板进行加载,刚性板与加载点进行绑定。(加载点可自由设置加载位置、加载转角、加载位移)
  • 钢管混凝土内部可设置约束拉杆

项目结构

  • abaqus_modeling.py——Abaqus可以运行的脚本(python2.7)
    • 读取参数,并根据参数进行建模
  • task_item.py——辅助生成参数的模块(python3.6+)
  • result_reader.py——辅助批量读取结果的模块(python3.6+)
  • utils.py——通用工具函数库(非开发者可忽略)(python3.6+)
  • materlib——材料数据库(非开发者可忽略)(python3.6+)

使用例

  • pipconda安装numpy
    • 比如,在cmd中执行pip install numpy
  • 下载并解压本仓库
    • 注意:请解压到纯英文路径(建议只包含英文、数字、下划线)
  • readme.md所在文件夹
    • 新建一个temporary.py
    • 写入以下代码(注意:请修改ABAQUS_RUNFOLDER的值)
    • 运行代码
import task_item as ti
from pathlib import Path

ABAQUS_RUNFOLDER = r"D:\Environment\Appdata\AbaqusData\Temp"  # TODO: 请将该路径修改为ABAQUS的运行路径(可以在ABAQUS CAE的 "文件" -> "设置工作目录..." 中找到)
TASK_FOLDER = Path(ABAQUS_RUNFOLDER) / "tasks"

for e in [0.133, 0.233, 0.333]:
    task_params: dict = ti.AbaqusData.get_ecc_cfst_alpha_template()  # 生成「快速初始化参数模板」
    print(task_params)

    task_params["e"] = e  # 对「快速初始化参数模板」进行修改, 此处修改偏心距

    abadata = ti.AbaqusData.init_ecc_cfst_alpha(
        task_params
    )  # 利用「快速初始化参数模板」快速实例化AbaqusData

    abadata.gene_task_folder(TASK_FOLDER)  # 生成任务文件夹
  • 打开ABAQUS CAE
    • 点击「运行脚本」或「文件->运行脚本...
    • 找到本文件夹中的「abaqus_modeling.py」并运行
    • 等待运行完成
  • 获取结果
    • ABAQUS_RUNFOLDER路径中找到tasks文件夹,所有任务数据存放于此
    • result_reader.py可以辅助读取任务数据
import result_reader as rr
from pathlib import Path

ABAQUS_RUNFOLDER = r"D:\Environment\Appdata\AbaqusData\Temp"  # TODO: 请将该路径修改为ABAQUS的运行路径(可以在ABAQUS CAE的 "文件" -> "设置工作目录..." 中找到)
TASK_FOLDER = Path(ABAQUS_RUNFOLDER) / "tasks"

seq_of_tasks = rr.TaskFolderList(ABAQUS_RUNFOLDER)
for task in seq_of_tasks:
    task: rr.TaskFolder
    print(task)
    print("用户数据摘要\n\n", task.task_params_abstract_1)
    print("odb导出数据\n\n", task.odb_extract)
    print("柱顶部中点位移数据\n\n", task.get_endpoint_displacement(0.5, 0.5, "top"))