在 Abaqus 中分配 BC

Assigning BC in Abaqus

我是 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

我无法 运行 你的示例代码,因为 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

.