一个金属长方体,我们需要对其做拉伸的加载约束示意图如图1,并在完成后采用Python命令流读取参考点的位移、体积、应变随加载时间的变化情况。
图1 金属长方体约束加载示意图
01
Python库导入声明
对于图上的命令流,我们分为几部分拆开研究,首先是下面第一部分需要在Abaqus导入相关Python库的代码,比如matplotlib库、numpy库、xlwt库和math库。
#! /user/bin/python
# -*- coding:UTF-8 -*-
import matplotlib.pyplot as plt
import numpy as np
from visualization import *
from odbAccess import *
import xlwt
import math第3行导入Python经常用于绘图的matplotlib库;
第4行导入Python处理数组矩阵的numpy库;
第5行和第6行用于导入Abaqus的后处理功能,即visualization和odbAccess;
第7行用于导入Python与excel进行交互的xlwt库;
第8行用于导入Python的math库。
在利用Python生成excel数据之前,先采用一个getInputs函数(代码如下)生成图2所示的对话框与用户进行交互,需要用户在在其中输入模型的名字(model name),部件例子的名字(instance name)以及后处理odb的名字(odbname)。这样做有个好处,每次都可以根据不同模型、不同部件实例和相应的后处理odb名字进行相应结果提取。
modelName,instanceName,odbname= getInputs(
fields=(('Model Name:', 'Test'),('Instance Name:', 'Part-2-1'),('odbname:', 'TEST.odb')),
label='Enter information', dialogTitle='Enter information.')
图2 getInputs函数生成的对话框
02
计算初始边长
node = mdb.models[modelName].rootAssembly.instances[instanceName].nodes
Xmin = 9999
Xmax = -9999
Ymin = 9999
Ymax =