我是Python的新手。我试图通过运行以下Python脚本为Abaqus中的某些集合分配一些边界条件。不幸的是,我遇到以下错误:
TypeError: unsupported operand types(s) for +: 'Assembly' and 'int', line 26, in <module> region = a.sets['layer-1' + '-' + str(a+1)]
任何人,请在这方面帮助我......
# Do not delete the following import lines
from abaqus import *
from abaqusConstants import *
import __main__
import section
import regionToolset
import displayGroupMdbToolset as dgm
import part
import material
import assembly
import step
import interaction
import load
import mesh
import job
import sketch
import visualization
import xyPlot
import displayGroupOdbToolset as dgo
import connectorBehavior
a = 1
for i in range(13):
session.viewports['Viewport: 1'].assemblyDisplay.setValues(step='Step-1')
a = mdb.models['NodeSet'].rootAssembly
region = a.sets['layer-1' + '-' + str(a+1)]
mdb.models['NodeSet'].TemperatureBC(name='BC' + '-' + str(a+1), createStepName='Step-1',
region=region, fixed=OFF, distributionType=UNIFORM, fieldName='',
magnitude=1.0, amplitude='Amp' + '-' + str(a+1))
a= a + 1
答案 0 :(得分:0)
我无法运行您的示例代码,因为from abaqus import *
会引发错误。
但问题是您似乎想要使用a
作为迭代计数器。但是在循环中,您编写a = mdb.models['NodeSet'].rootAssembly
,然后将汇编对象分配给变量a
。您无法向装配对象添加数字,因此会收到错误。
因此,只需将assmebly对象的变量名称更改为a
以外的任何名称,例如Assm
a = 1
for i in range(13):
session.viewports['Viewport: 1'].assemblyDisplay.setValues(step='Step-1')
Assm = mdb.models['NodeSet'].rootAssembly
region = Assm.sets['layer-1' + '-' + str(a+1)]
mdb.models['NodeSet'].TemperatureBC(name='BC' + '-' + str(a+1), createStepName='Step-1',
region=region, fixed=OFF, distributionType=UNIFORM, fieldName='',
magnitude=1.0, amplitude='Amp' + '-' + str(a+1))
a = a + 1