问题描述
我想通过脚本实现压力。在我的代码中,我根据特定点定义了张量。我的代码适用于节点。在用户脚本中,我发现,如果要将张量添加到字段中,则位置必须为INTEGRATION_POINT。
odbname = 'D:/Abaqus-Workspace/010-Team_uhl/010-uhl/010-Wellenbohrungen/006-AnpassungvonODB/25mmkleinRead'
odb = openOdb(odbname + '.odb',readOnly=False)
odbWrite=openOdb(path="D:/Abaqus-Workspace/010-Team_uhl/010-uhl/010-Wellenbohrungen/006-AnpassungvonODB/25mmkleinWrite.odb",readOnly=False)
steptoread=odb.steps['Step-1']
frametoread=steptoread.frames[0]
odbSelectResults=frametoread.fieldOutputs['S']
t = odbSelectResults
position = frametoread.fieldOutputs['COORD']
myInstance = odb.rootAssembly.instances[('PART-1-1')]
newDataSet = odbSelectResults
newResultsstep = odbWrite.Step(name='TestStep19',description = 'user defined',domain=TIME,timePeriod = 0)
newResultsFrame = newResultsstep.Frame(incrementNumber=0,frameValue=0.0)
newResultsField = newResultsFrame.FieldOutput(name='S',description='Stress',type = TENSOR_3D_FULL,componentLabels= ('S11','S22','S33','S12','S13','S23'),validInvariants=(MISES,)) #User Script 187
newResultsField.addData(field=newDataSet)
odbWrite.save()
numNodes = len(myInstance.nodes)
nodePosition = []
stress = []
nodeLabel = []
for i in range (0,numNodes):
#print('hallo ',i,numNodes)
Position=position.values[i].data
nodePosition.append(Position)
a = abst(nodePosition[i][0],nodePosition[i][1],nodePosition[i][2])
Sxx = 5/a
Syy = 1/a
Szz = 1000/pow(a,2)
Sxy = 8/a
Sxz = 1/pow(a,0.5)
Syz = 1/math.log(2,a)
stress.append((Sxx,Syy,Szz,Sxy,Sxz,Syz))
nodeLabel.append(i+1)
stress = tuple(stress)
nodelabel = tuple(nodeLabel)
newResultsFrame=newResultsstep.Frame(incrementNumber=1,frameValue=1.0)
newResultsField=newResultsFrame.FieldOutput(name='S',description='user def',type=TENSOR_3D_FULL)
newResultsField.addData(position=INTEGRATION_POINT,instance=myInstance,labels=nodeLabel,data=stress)
odbWrite.save()
print
print '-------------------------------------------'
odb.save()
odb.close()
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)